イメージ バリデーション(使用)#2

前回の投稿記事、「イメージ バリデーション(概要)#1」では、イメージバリデーションの概要について触れ、類似度を指標に画像の比較が行われることや、 ContainsImage と、CompareImage の2種類の比較方法があることについて説明しました。本記事では、これらの比較方法の使い方について説明したいと思います。
事前準備
ContainsImage と、CompareImage を使用する上で、共通作業として、画像を比較したい対象オブジェクトに対して、期待する画像(画像を比較した際に正となる画像)を用意する必要があります。期待する画像は、テスト対象アプリケーションの画面にて対象オブジェクトからスクリーンショットとして画像を用意する方法と、外部ファイルとして画像を用意する方法があります。
オブジェクトからスクリーンショットとして画像を用意する方法
オブジェクトから取得したスクリーンショットは、ソリューション内にバイナリデータとして保存されます。そのためスクリーンショットの画像を確認したい場合は、Ranorex Studio にて、対象ソリューションを開き確認するか、外部ファイルに保存しておく必要があります。
1.テスト対象アプリケーションにて、対象オブジェクトが確認できる画面を表示します。またオブジェクトの画像は、期待する画像である必要があります。

2.Ranorex Studio にて、対象ソリューションを開き、リポジトリにある対象オブジェクトを右クリックし、ショートカットメニューから、 バリデーション スクリーンショットの追加 を選択します。

表示しているテスト対象アプリケーションの画面において、オブジェクトのスクリーンショットが取得され、リポジトリにある対象リポジトリアイテム配下に追加されます。なお1つのオブジェクトに対してスクリーンショットは複数追加できます。また取得したスクリーンショットを右クリックし、ショートカットメニューから、スクリーンショットの保存 を選択することで、外部ファイルとして保存することができます。

外部ファイルとして画像を用意する方法
外部ファイルとして画像を用意する場合は、PNGまたは、BMP形式の画像ファイルであれば、他のキャプチャツールを使用することも可能です。本記事では、Ranorex Spyを使用する方法を説明します。
1.Ranorex Spyにて、対象オブジェクトをトラックします。

2.対象オブジェクトが表示されるサムネイル上で、右クリックし、ショートカットメニューから、画像を名前を付けて保存 を選択し、ファイルとして保存します。

またツリー要素にて、対象オブジェクトを右クリックし、ショートカットメニューから、スクリーンショットのキャプチャ を選択することでも画像ファイルとして保存できます。

この方法では、キャプチャした画像に対して、選択された範囲のみを画像ファイルとして保存することもできます。ContainsImage で使用する画像(期待する画像)を用意したい場合に有効です。

※通常、 イメージ バリデーション では、テストの度に期待する画像を動的に切り替えることはできません。(期待する画像を動的に切り替える方法として、ユーザーコード (プログラミング)を使用する方法があります。ユーザーコードについては、別の記事で触れていきたいと思います)
ContainsImageの使い方
テスト対象アプリケーションのあるオブジェクト(画像)に対して、期待する画像が含まれているかを検証したい場合は、ContainsImage を使用します。
1.Ranorex Studioにて、対象レコーディングモジュールを開き、リポジトリから対象レコーディングモジュールをアクションテーブルの適切な箇所にドラッグアンドドロップします。ドラッグアンドドロップ後、アクションメニューが表示されますので、バリデーション(Validation) を選択します。

2.アクションテーブルに追加した、バリデーション アクションを選択し、Action のプルダウンメニューから、ContainsImage を選択します。

3.Screenshot name の参照(…)をクリックし、イメージバリデーションの編集 画面を開きます。

4.イメージバリデーションの編集 画面にて、期待する画像となるスクリーンショットを選択します。また外部ファイルの画像を使用する場合は、 ファイルからスクリーンショットを開くのアイコン(カメラのアイコン)をクリックし、選択します。

5.画面中央に表示された期待する画像に対し、検証したい箇所を選択(矩形選択)します。(マウスの右クリックをドラッグすることで選択できます)選択された箇所は、ピンク色の枠で囲まれます。正しく設定できたら、OKをクリックします。

CompareImage の使い方
テスト対象アプリケーションのあるオブジェクト(画像)に対して、期待する画像と一致するかを一致するかを検証したい場合は、CompareImage を使用します。
1.Ranorex Studioにて、対象レコーディングモジュールを開き、リポジトリから対象レコーディングモジュールをアクションテーブルの適切な箇所にドラッグアンドドロップします。ドラッグアンドドロップ後、アクションメニューが表示されますので、バリデーション(Validation) を選択します。

2.アクションテーブルに追加した、バリデーション アクションを選択し、Action のプルダウンメニューから、ContainsImage を選択します。

3.Screenshot name の参照(…)をクリックし、イメージバリデーションの編集 画面を開きます。

4.イメージバリデーションの編集 画面にて、期待する画像となるスクリーンショットを選択します。また外部ファイルの画像を使用する場合は、 ファイルからスクリーンショットを開くのアイコン(カメラのアイコン)をクリックし、選択します。選択後、OKをクリックします。

5.画面中央に表示された期待する画像に対し、検証したい箇所を選択(矩形選択)します。(マウスの右クリックをドラッグすることで選択できます)選択された箇所は、ピンク色の枠で囲まれます。正しく設定できたら、OKをクリックします。

本記事では、イメージ バリデーション における、ContainsImageと、CompareImage を使用した画像比較の方法ついて説明しました。次回は、イメージ バリデーション を使用する際の 勘所 ついて説明したいと思います。