1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ToscaでSAP FioriのTileアクセス権限テストを自動化してみた

Posted at

背景

SAP Fioriの環境では、ユーザーやロールごとに表示されるTile(タイル)が異なります。
そのため、権限設定ミスやロール不整合によって「特定のユーザーに特定のタイルが見えない/見えてはいけない」問題が起こることがあります。

実際のプロジェクトの開始前のテストや運用時の大規模組織変更などではこうした権限のテストが重要になる事があります。

今回は Tricentis Tosca を使って、この Tileアクセス権限の検証 を自動化する手順を紹介します。
マニュアル確認ではなく、Fiori Launchpadの画面を自動走査し、ログインしたユーザーにTileの可視性を検証するアプローチです。


この記事の構成

  1. SAP FioriのTileアクセスモジュールの作成
  2. 作成したモジュールの動作検証
  3. Test Case Designを利用したテストパターンの一括作成
  4. 作成したモジュールとテストパターンの紐づけと実行

第1章:SAP FioriのTileアクセスモジュールの作成

まずはFiori Launchpad上でTile要素を識別し、ToscaのModuleとして定義します。
ここではToscaのXScanを利用して、Tile名やリンク先(Intent)をキャプチャします。

手順

  1. Tosca Commanderを起動
  2. 新しいModuleフォルダを作成し「Fiori_Tiles」などの名前を付与
  3. XScanを起動し、ブラウザ上でFiori Launchpadをスキャン
  4. 各Tile要素(例:Create Purchase Requisition)を選択してモジュール化
  5. モジュール名を更新し汎用的な名前に変更

ここでは1~3はToscaの基本的な操作なので、4, 5のステップの詳細を説明します。

Fiori Launchpad のスキャン

Scan画面にてAdvancedモードに変更
image.png

Filtered Itemsのスライダーを右端から2番目あたりに設定(実際の画面Scanにより調整)
image.png

任意のタイルを1つ一覧から選択しボタン, タイルの名前, サブタイル名のコンテナを選択します。
image.png

各要素Propertyの設定
ここから、選択したタイルを汎用的につかえるようにPropertyを調整します。

タイルボタン :ApiType, Tagを選択
image.png

タイル名: ClassName, Tagを選択
image.png

サブタイル名: ClassName, Tagを選択
image.png

ここまで設定したらScan画面にてSaveしモジュールを保存します。

モジュール名の更新
保存した段階では、下記のような画面で選択したタイル名に固定されていますが汎用的な名前に変更します。
image.png

ここではそれぞれ以下のように変更します。
image.png

元の名前 新しい名前
Create Purchase Requisition Tile Button
Create Purchase Requisition Tile Name
Advanced Sub Title

ここまでで、Moduleの準備が完了です。

第2章:サンプルテストケースの作成と動作確認

次に先ほど作成したModuleが動作するか、サンプルTestCaseを手動で作成し、
Tileアクセスの検証ロジックが正しく動作するかを確認します。
このステップにより、モジュールと変数の動作が期待通りであることを早期に確認できます。


手順

  1. Tosca Commanderで「TestCase」を作成し「Fiori_Tiles」モジュールをドラッグ&ドロップ
  2. TestStep Valueを設定
  3. ScratchBook実行

TestStep Valueの設定

このModuleを利用する際には、Tile Name, Sub Titleの箇所を検索したいタイル名等の値で入力しConstraintを利用することで該当のタイルを選択し処理できるようになります。

またタイルの存在を確認するためEnabled プロパティのTrue/False判定をしています。

ここではCreate Sales Orders (VA01)のタイルが画面に存在するかを確認していきます。
image.png

Name Value ActionMode
Tile Button .Enabled== True Verify
Tile Name .InnerText==Create Sales Orders Constraint
Sub Title .InnerText==VA01 Constraint

実際に実行してみると成功しました。
image.png


💡 ポイント

  • 動作確認用TestCaseは、パターン自動生成前に必ず作成しておくと、
    モジュールやオブジェクトの誤認識、ログイン制御の不備を早期発見できます。
  • 一度動作を確認したTestCaseをテンプレート化し、後続のTest Case Designと紐づけることで、 大量の権限テストを効率的に生成できます。

第3章:Test Case Designを利用したテストパターンの一括作成

ここまでで、タイル存在確認のModule作成が完了しました。
ここからはデータパターンを組み替えたTestCaseの作成を行います。

手順

  1. Tosca CommanderでTestCaseDesignフォルダを作成
  2. 「Tile」「Sub Tile」などのAttributeを作成
  3. Complete Instancesを利用して組み合わせ生成

ここではTestCaseDesignの利用方法説明は割愛します。
ユーザーに依存しない設定を行う場合は、以下のようにTileとSub Tileの組み合わせリストを作成する事になります。

image.png


🧷 第4章:モジュールとテストパターンの紐づけと実行

最後に、モジュールで作成したTile検証ロジックをTestCaseDesignで生成したパターンに紐づけます。

手順

  1. 2章で作成したTestCaseをコピーし別名保存。Template化する。
  2. TestCaseDesignで生成されたパラメータ(User, ExpectedTile)を変数としてバインド
  3. Test
  4. 結果はExecutionListに自動記録され、可視化レポートとして出力可能

別名保存したTestCaseを右クリックメニューにてConvert to Templateを選択
image.png

作成されたTemplate上にTestCaseDesign SheetをDrag&Dropし紐づけを行います。
その後に、{XL[Attribute名]}でTestCaseDesignの値を読み込むように設定します。
image.png

Template上にてInstantiateボタンを押下します。
image.png

以下画面のように、各タイルに対する検証用のTestCaseが一括生成されます。
image.png

💡 Tips:
TestCase名が分かりづらくなる場合はTemplateのPropertyにあるInstanceNameプロパティにタイル名などを指定すると運用・管理しやすくなります。
image.png

Scratchbookで実行するとログイン中のユーザーの画面確認が機械的に高速で確認できます。
image.png

本記事での紹介はここまでにとどめます。
実際のテストではユーザーのログイン処理・ログアウト処理や、どのユーザーがどのメニューにアクセスできるかのSecurity Matrixに基づいたTestCaseDesignが必要になってきますので
各環境で調整いただければと思います。


🧭 まとめ

本記事では、SAP FioriのTile権限テストをToscaで自動化する一連の手順を紹介しました。

このアプローチにより、ユーザー権限ごとのTile表示確認を自動化でき、
人的な確認工数を大幅に削減することが可能です。

実際の利用にあたってはSecurity Matrixの管理なども必要にはなりますが
事前にスクリプトを用意しておくことで
Go Live前や組織改編時などの多忙時に、ユーザー権限のテスト工数が簡略化できるのは
実際の工数削減以上に、リソースを自由に使えるというメリットがあると思います。

また今回はTestCaseDesignを利用した構築を行いましたが
Tosca ServerのTestDataManagement機能を利用したTestStepの作成など
異なるアプローチも可能です。

実環境に合わせて管理・運用が容易な方法でお試しいただければと思います。


🔗 参考リンク


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?