はじめに
みなさん、こんにちわ!
UiPath Test Suiteは多くの自動テストの専門家が工夫し、組み上げてきた最適なテスト環境をパッケージ化したオールインワンソリューションです!
加えて、もっともお金をかけて開発したGUIテストの自動化ツールだとも言えます!(笑)
今回は、そのUiPath Test Suiteでイメージバリデーションは出来るの?と聞かれることが多くなってきたので、記事を書くことにしました。
UiPath.Testing.Activitiesには入っていませんが、UiPathマーケットプレースのコンポーネントを活用することで、勿論、出来ます!
これを実現するテンプレートをUiPathマーケットプレースに公開しましたので、合わせてご利用ください!
#1.概要
UiPath Test Suiteのイメージバリデーションを実現するための、テンプレートです。
このテンプレートは、Webアプリケーション「UiBank」を使用していますので、これをベースにテスト対象のアプリケーション向けにカスタマイズして使用してください。
依存関係
・UiPathTeam.ImageComparison.Activities 2.1.0
互換性
・UiPath.Studio Pro 20.10.2
#2.テンプレート実行手順
###(1) Data-Driven Loan.xamlを開きます。
###(2) デザインメニューの「Debug File」>「Run file with data variations」をクリックします。
###(5)ImageDataフォルダにイメージデータファイルが格納されています。
###(6) (2)の手順から再度、実行してください。実行が終了するとOutputパネルに検証結果が全て成功で表示されています。
###(7) Loan Quotes.xlsxを開き、セルのC3の値を10なら3、3なら10に変更して保存します。
###(8) Data-Driven Loan.xamlを選択し、右クリックでメニューを開き、「Remove Test Data」を選択します。
###(9) Data-Driven Loan.xamlを選択し、右クリックでメニューを開き、「AddTest Data」を選択します。
###(10) Variation Fileの「Loan Quotes.xlsx」を再度セットします。
###(11) (2)の手順から再実行してください。実行が終了するとOutputパネルに失敗が1つ表示されます。
###(12) ImageDataフォルダにExpectedImage2_NG.pngが格納されています。
###(13) ExpectedImage2_NG.pngを開きます。
差異のある部分を赤で強調された画像が保存されています。
#3.解説
###(2) Variation File「Loan Quotes.xlsx」の説明
LoanEmail、LoanAmount、LoanTerm、LoanIncome、LoanAgeは、登録データです。
LoanGrantedは登録の結果です。ワークフローではローン承認の結果の分岐で使用しています。
ExpectedImagePathは、期待画像のファイルパスを入れます。
###(3) 検証処理の説明
引き渡されたデータのLoanGrantedがNoの場合は、ローンの承認ができない画面が表示されます。
期待画像と比較する要素の画像をイメージバリデーション機能のサブワークフローに渡して検証します。
※比較する画像はスクリーン全体ではなく、必要な部分に絞った要素にしておくことをお勧めします。
引き渡されたデータのLoanGrantedがYesの場合は、ローンの承認の画面が表示されます。
期待画像と比較する要素の画像をイメージバリデーション機能のサブワークフローに渡して検証します。ただし、ローンIDが動的に生成/表示されるため、この部分は事前にマスクしておきます。
###(4) イメージバリデーション機能の説明
期待画像のファイルが見つからない場合は、引き渡されてきた画像データを次回実行時に比較する期待画像として保存します。
初回は保存された期待画像の目視確認は必要ですが、一度、実行すれば期待画像を自動的に取得し保存する便利な仕組みです。期待画像ファイルを削除しておくと、期待画像の取り直しが可能となります。
「Compare Two Image Files Using Threshold」アクティビティで引き渡されてきた画像データと期待画像を比較します。ピクセル単位の比較では、スクリーンショットの1ピクセルの差異で失敗し、検証が安定しないケースが多いため、閾値が指定できる本アクティビティを利用しています。差異部分を強調する画像出力も可能になっています。
※閾値や検証アクティビティでDistortionと比較している値は必要であれば調整してください。
まとめ
UiPath.Testing.Activitiesに検証アクティビティはありますが2020.10.2の時点で検証機能は入ってません。ただUiPathマーケットプレースには検証機能の作成で有用なコンポーネントがいくつもあります!
例えば、Webアプリの文字の色やボタンの背景色を検証したりとか、色々(笑)!
今回は、テスト自動化で誰もが実現を検討するイメージバリデーションの対応策をご紹介させて頂きました!
UiPath Test Suiteによるアプリケーションテスト自動化については、下記コラムもご参考に!