【UFT】ユーティリティまとめ ~画像比較~


テスト自動化ツールである、UFT(Unified Functional Testing)

今回は UFTでの画像比較について、
公式リファレンスを参考にしながら使い方などをまとめたいと思います。

※公式リファレンスは英語のみです。日本語記事がないので、作成をしてみました。

画像比較(BitmapCheckPoint)

画像比較にはBitmapCheckPointを使用して実装します。
下記に手順とサンプルコードを記述しますので参考にしてみてください。

画像比較
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Method        : CheckPoint
' Description   : オブジェクトリポジトリにBitmapCheckPointを登録し画像比較する
' example       : hoge.Check ckeckpoint("name")
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

' 手順1.記録(F6)を押下。記録モードを起動させる。
' 手順2.ツールバー右側にある「虫眼鏡」のアイコンを押下。
' 手順3.リストから「ビットマップチェックポイント」を押下
' 手順4.画像比較したい画像ないしオブジェクトをクリック
' 手順5.[ビットマップチェックポイント]ダイアログが表示されるので、取得対象を選択しOKを押下
' 手順6.[ビットマップチェックポイントのプロパティ]が表示されるので、下記の項目を確認しOKを押下
'   ・名前 に任意の名称を付ける
'   ・選択領域と実行時のビットアップを比較する にチェック
'   ・画像が正しいことを確認する(領域選択可能)
' 手順7.Action内にコードが生成されるので確認する(下記のようなコードが表示されます)

' 手順4で選択したbitmapが存在するか10秒間探す。なければFailedとなる。
WpfWindow("Micro Focus MyFlight Sample").WpfImage("image2").Check CheckPoint("image2")

Insight Objectを使った画像比較(非推奨)

Insight Objectの説明

UFTでは、テスト対象の画面上の要素(オブジェクト)をオブジェクトリポジトリに登録し、オブジェクトを使って自動操作を行います。
しかしテスト対象によっては画面上の要素(オブジェクト)が取得できない場合があります。
そういった場合にUFTでは画面上に表示されている情報(画像)を要素(オブジェクト)として登録・使用することができるInsightという機能があります。

Insight Objectを使った画像比較の実装方法

Insight Objectは本来、画面上の要素(オブジェクト)が取得できない場合に要素を画像として扱い自動化を実現する機能です。
そのため画像比較として使うことを筆者としては推奨いたしません。
しかし「Insightを使って画像比較をしたい」という人や実際に画像比較を用いてテストをしている現場もあることもあることから、実装方法について簡単に解説をいたします。

なおここで説明する画像比較は以下のテストケースを想定しています。
「Insight Objectに登録されている画像が表示されているかどうか」
1.比較対象の画像をInsight Objectとしてオブジェクトリポジトリに登録する
2.VBScriptのif文を使い、画像が表示されているのかをExistsメソッドを使い確認する

画像比較

' ■ 画像が表示されているかを確認する
'Insight Objectで取得した画像が存在するか10秒間探し、表示されていなかったらレポートにエラーを出す。
if hoge.InsightObject("画像").Exists(10) Then
    Reporter.ReportEvent micPass ,  "Pass"  , "画像が表示されていることを確認"
Else
    Reporter.ReportEvent micFail ,  "Fail"  , "画像が表示されていません"
End If

おわりに

UFTに同梱されているサンプルアプリケーションを使いデモ動画を作成しました。
上述した手順に沿って動画を作成をしているので参考にしてみてください。

OS Windows 10
UFT Ver.15.01
システム Flight GUI

参考

・Bitmap checkpoints
https://admhelp.microfocus.com/uft/en/15.0-15.0.1/UFT_Help/Content/User_Guide/About_Checking_Bitmaps.htm