ベストプラクティス|スキャニング|識別子

技術的な詳細について少し見ていきましょう。アプリケーションをスキャンしてモジュールを作成する際、画面要素の識別子を選択します。これらの画面要素はコントロールと呼ばれます。実行時に、Toscaは選択した識別子を使用して、テストするコントロールを見つけます。このトピックではさまざまな識別方法とそれらを使用すべき状況について説明します。また、テスト全体で識別子を一意に保ち、安定させるためのヒントやコツも紹介します。

識別方法

Toscaはコントロールを識別するためのさまざまな方法を提供しています。

  • プロパティによる識別: アプリケーションコードのテクニカルプロパティでコントロールを識別します。通常、プロパティはコントロールを特定するための最も速く、かつ簡単な方法です。常にまずはこの方法を試してみることをお勧めします。

  • インデックスによる識別: ページのインデックス内の位置によってコントロールを識別します。同じ画面上の複数の位置に存在するコントロールに適した方法です。

  • アンカーによる識別: 他のコントロール(「アンカー」)との相対的な位置関係でコントロールを識別します。アンカーはWebアプリケーション以外にのみ使用することをお勧めします。現代のWeb環境では、一貫して安定したアンカーを見つけるのが難しい場合があります。

  • 画像による識別: 1つ以上のスクリーンショットでコントロールを識別します。他の方法ではうまくいかない場合、この方法を使用することをお勧めします。

ヒントとコツ

いずれの識別方法でも、すべての識別子が以下を満たしていなければなりません。

  • 識別子がコントロールに対して一意であること。一意でない場合、Toscaは実行時に正しいコントロールを見つけられず、操作することもできません。

  • 識別子が安定であること。安定でない場合、Toscaはコントロールを見つけられる場合もありますが、すべてのテストランで見つけられる保証はありません。最悪の場合、識別子はスキャンの間ただ一度しか機能しません。結果的に、不安定なコントロールは不安定なテストおよび結果をもたらします。

コントロールを一意にする

コントロールを一意なものにするには、以下の方法を試してみてください。

  • 複数のプロパティを選択して、コントロールに固有の組み合わせを作成します。

  • 実行可能なプロパティの組み合わせが見つからない場合、識別のために親コントロールを使用します。親ノードが一意なIDを持つ場合、コントロール自体も一意なものとなります。はじめに親を選択し、次に目的のコントロールを選択してください。

    また、正しい親は、階層の真上にあるコントロールであるとは限りません。正しい親を見つけるには、 XScan の「 Advanced View 」で「 Highlight Selection 」をオンにし、スキャンウィンドウ内で親を探します。XScan はアプリケーション内でそれぞれのセクションをハイライトします。

  • アプリケーションがページの一部としてポップアップを読み込む場合、親を使用して識別しなければならない場合があります。例えば、Salesforceの埋め込みポップアップが良い例です。ポップアップのコントロールは、ポップアップ自体の中では一意であっても、画面全体では一意でない場合があります。この場合、ポップアップのトップレベルコンテナを識別に使用します。例えば、 ClassName プロパティや InnerText プロパティを使用します。

  • 画像による識別では、コントロールを識別するために複数のスクリーンショットを使用します。これは、コントロールが常に同じ見た目でない場合に特に重要です。例えば、内容が変化するテキストボックスなどがそれにあたります。テキストボックスに静的なラベルがある場合は、必ずラベルのスクリーンショットを追加してください。トグルボタンも例に挙げられます。オンオフ両方の状態のスクリーンショットを追加して、Toscaがオンオフの両方でコントロールを認識できるようにします。

コントロールを安定させる

コントロールを安定させるには、以下の方法を試してみてください。

  • 動的な値に注意し、それらを * ワイルドカードで固定します。あるプロパティが Example property value_20 のようにその値の末尾にヒットカウンターを追加するとします。このプロパティ値は、現在のセッションに対してのみ有効になります。実行時、ヒットカウンターは 21 以上になりますが、Toscaは 20 のコントロールを探しています。これを避けるために、プロパティ値を Example property value* に変更します。

    よくある問題のひとつに、 Caption プロパティに数字や検索語など、セッションベースの情報がしばしば含まれていることがあります。ワイルドカードで固定しない場合、Toscaはウィンドウやタブを見つけることができません。

  • ユーザーの権限を再確認してください。一部のユーザーには、高い権限のために他のユーザーにはないコントロールやプロパティが表示される場合があります。Toscaがテストを実行するWindowsユーザーが、アプリケーションをスキャンしたユーザーと同じ権限を持っていることを確認してください。

  • インデックスおよび画像による識別については、実装の状態を考慮してください。また、どれだけの変化が予想されるかを確認してください。

    コントロールのインスタンスを追加あるいは削除すると、インデックスが変更されます。スキャン後にインデックスが変更された場合、Toscaは実行時に正しいインスタンスを見つけることができません。

    また、スキャン後にデザインを変更した場合、Toscaは識別子として使用するスクリーンショットとの一致を見つけることができません。

  • 画像による識別では、画面の解像度、色深度、およびスクロールを考慮します。Toscaがテストを実行するWindowsユーザーが、アプリケーションをスキャンしたユーザーと同じ設定になっていることを確認してください。また、さまざまな解像度あるいは色深度のスクリーンショットを複数追加することもできますが、テストの実行に要する時間は増加します。実行時に、Toscaは最初のスクリーンショットの一致を探します。もしToscaが一致を見つけられなかった場合、次のスクリーンショットに進み、再び見つけられなかった場合、さらに次のスクリーンショットに進みます。

次の記事

まだの場合は、他のベストプラクティス記事をご覧ください。