Eggplant FunctionalのUIテストでCompare Screenを使用する
Eggplant Functionalの比較画面機能は、アプリケーションの画面またはウィンドウのレイアウトまたは外観の変更を検出します。この機能は、アプリケーションの使用可能性や企業の視覚ガイドラインとの適合性に影響を及ぼす可能性のある変更に警告します。
比較画面は、新たな要素や欠落した要素についても警告することができ、これは機能テストを追加、変更、または削除する必要性を示すことがあります。比較画面は、アプリケーションの機能をテストしたり、それと何らかの形で対話したりすることはありません
。
比較画面の基本
Eggplant FunctionalのUI検証機能は、SenseTalkのCompareScreen
コマンドに基づいており、これは現在のSUT画面を基準画像と比較します。通常、このコマンドは、アクションが新しい画面またはアプリケーションのテスト中のウィンドウへの遷移を引き起こした直後、つまりレイアウトのバリエーションを確認したい新しい画面を表示した直後にスクリプトで使用します。
比較が元の画像と画面の現在の状態との間に違いがあることを示す場合、それらの変更が重要で、追跡する必要があるのか、それとも予想されるまたは許容可能な変更で、今後の比較で無視すべきものなのかを判断できます。比較では次の要素を探します:
- 新しい要素: 現在の画面にはあるが、基準画像にはないもの
- 欠落した要素: 基準画像にはあったが、現在の画面にはないもの
- 移 動した要素: 基準画像の元の位置と現在の画面の位置が異なるもの
- #differences
- 画面の変更: 他のタイプとして識別されなかった任意の非特定の変更
この比較はOCRを活用しているため、テキストの変更だけでなく、画像の変更についてもこれらのカテゴリごとに違いを報告します。
CompareScreenコマンドの使用
CompareScreen
コマンドは、UI比較を行いたい場所でいつでもSenseTalkスクリプトで使用できます。コマンドは比較の基準画像となる画像名を必須パラメータとして取ります。
CompareScreen
は関数としても呼び出すことができます。CompareScreen
を関数として使用する情報については、CompareScreen Command or Functionを参照してください。
デフォルトでは、CompareScreen
はSUT画面全体をキャプチャします。しかし、デスクトップアプリケーションの場合、通常は画面全体ではなく、単一のウィンドウの内容だけを比較したいと思うでしょう。したがって、特定のアプリケーションウィンドウのような画面の一部だけをキャプチャするために、オプションの矩形パラメータを渡すことができます。rectangle
(またはrect
)パラメータ名を使用し、座標または2つの対角のコーナーを指定する画像で矩形を定義することができます:
CompareScreen name: "tutorialSut_menu", rectangle: (22,575,415,640)
CompareScreen "calcHist", rect:("Calculator_A","Calculator_B")
SenseTalkで矩形を定義する方法 については、The Set Rectangle and Generate Code Dialog Boxを参照してください。
ベストプラクティスとして、比較に焦点を当てるアプリケーションウィンドウまたは画面の領域を指定する矩形を指定することをお勧めします。適切な場合は全画面比較を行うこともできます。しかし、比較をテストに関連するものだけに制約することで、最良のパフォーマンスを得ることができます。
CompareScreen
が実行されると、スクリプトはスイートのImagesフォルダ内の特別な[Baseline_Screens]フォルダ(またはアクティブなヘルパースイート)でベースライン画像を探します。その名前の画像が見つからない場合、初期のベースライン画像が自動的にキャプチャされて保存され、スクリプトはそれ以上のアクションなしに進行します。
[Baseline_Screens]フォルダは、スイートで初めてCompareScreen
を実行するときに自動的に作成されます。このフォルダを自分で作成する必要はありません。
既存のベースライン画像が存在する場合、その画像は現在のSUT画面(またはSUT画面の指定された矩形)と比較されます。比較は、ベースライン画像の検索基準(例えば、検索タイプ、許容範囲)を使用して行われます。スイートのImagesペインからベースライン画像を開き、これらのプロパティを必要に応じて調整することができることに注意してください。これは、将来の比較に影響を与えます。
比較後の動作は、以下で説明するCompare Screen Actionモードによって制御されます。通常、違いが検出されると、Compare Screenパネルを開いて変更を確認し、さらなるアクションを取るかどうかを決定することができます。
CompareScreen
に関する詳細情報、コード例を含むSenseTalkについては、CompareScreen Command or Functionを参照してください。