Advanced image-based automation | Ranorex
Help CenterUser GuideRanorex Studio advanced

より高度なイメージベース オートメーション

イメージベース オートメーションが、今回のテスト課題に対する基本的な解決方法とはなりますが、より詳細な設定が必要です。

例えば、識別されるイメージがグラフィカルに変更されると、デフォルトの設定では、イメージベースオートメーションは失敗します。これは例えば、スクリーンの有効化 (=ハイライト) や、他のグラフィカルな変更によって発生します。他の課題として、参照しているイメージが一意ではなく、他の誤ったイメージが認識されることが挙げられます。

このセクションでは、イメージベース オートメーションが継続して動作するようにする設定について説明します。テキストベース オートメーションはシンプルで分かりやすいですが、イメージベース オートメーションでは、課題を解決するために創造力や知識が必要になる場合もあります。

イメージが見つからない場合の対応

場合によっては、背景やフォントの色の違いなどの UI 要素の微妙な変更が、テストの失敗に繋がります。この課題は、グラフィカル表現の微妙な変更とは関係なく、UI 要素を正しく識別する必要があることです。この章では、その概要と対応方法について説明します。

サンプルのレコーディング

以下の手順で、結果がエラーとなるテストを作成します。

Image not found - test example preparation

Image not found – test example preparation

レコーディングを開始し、イメージベース オートメーションを有効にします。
カレンダー ビューで、任意の日付をトラッキングします。
アクション テーブルで、記録されたアクションを確認します。

テストの実行結果

通常のテスト結果と、対象の UI 要素のグラフィックが微妙に変更されている場合のテスト結果を、それぞれ確認してみましょう。

Image not found - test run

Image not found – test run

成功する場合

  • テストは、期待通りに成功します。
  • テスト レポートでは、UI 要素が正常に識別されていることが確認できます。

失敗する場合

  • 日付のクリックによって背景色がグレーに変更されています。
  • UI 要素が、元々識別したものとは異なるため、テストの実行が失敗します。
  • デフォルトのイメージベースの設定では、このように変更された UI 要素を識別できません。
Initially tracked & identified UI-element and changed UI-element

Initially tracked & identified UI-element and changed UI-element

レポートの失敗メッセージ

  • 背景色がグレーに変更されているイメージが見つけられていません。
  • テストは中断されています。

解決方法

この問題を解決するには、イメージベースの設定を変更する必要があります。アクションのプロパティを開いて、以下の設定をおこないます。

Opening and changing image-based property settings

Opening and changing image-based property settings

アクション アイテムを選択して、F4 を押下しプロパティを開きます。
Image-based プロパティのドロップダウンを開きます。

Seeting image-based properties

Seeting image-based properties

Pre-processing options

  • Pre-processing オプションは、いくつかのグラフィック フィルターを適用します。
  • これらのフィルターを適用すると、色、シャープネス、およびその他のグラフィックの変化に対応できます。
  • 選択可能なフィルターは、上図で示したものです。

Similarity factor

  • Pre-processing オプションで、いくつかのイメージの差異が取り除かれますが、すべてを取り除くことはできません。
  • このような場合、デフォルトの類似度 100% 一致の設定を変更する必要があります。
  • 図で示すように、類似度 (Similarity) を変更します。

参照

類似度やグラフィック フィルターなどの各種のイメージベース プロパティについては、Ranorex Studio アドバンスト > イメージベース オートメーション > ⇢ イメージベース プロパティ を参照してください。

改善後のテストの実行

再度テストを実行し、テストが成功することを確認します。

Improved test run with successful test report

Improved test run with successful test report

日付の背景色が変更されているカレンダー
UI 要素が正常に識別され、テストが成功

誤ったイメージが検出される場合の対応

場合によっては、イメージベース オートメーションが意図しない結果になる場合があります。そのうちの 1 つの解決方法をここで説明します。

テストの準備とレコーディング

デモ アプリのカレンダー ビューで、日付のトラッキングをおこないます。さらに、最初にトラッキングし記録された UI 要素が見つからず、代わりに、誤った別の UI 要素が識別される例を考えます。

Wrong image found - test example preparation

Wrong image found – test example preparation

デモ アプリのカレンダー ビューで、日付をトラッキングします。
イメージベースで、日付がピンク色の枠で識別されることを確認します。
アクション テーブルに記録されたアクションを確認します。

テストの実行結果

最初に記録された UI 要素が、テスト実行中に識別された UI 要素とは別のものであったとします。

Wrong image found - test run

Wrong image found – test run

May 7th は、カレンダー ビューで最初にトラッキングして識別された UI 要素です。レコーディング時と比べると、背景色がグレーになっているため、Ranorex で識別できません。
その代わりに、Ranorex は類似の UI 要素を検索し、カレンダー ビューの下部にある、Today: 5/7/2018 部分に、それを見つけます。

解決方法:

この問題の解決方法は、イメージベースのオブジェクトの選択範囲を変更することです。これは、組み込みのイメージ エディターを使用しておこないます。

Image-based object selection refinement

Image-based object selection refinement

デフォルトの選択範囲: メージベースのデフォルトの選択範囲は、オブジェクトの周辺の狭い範囲で設定されます。これにより、別のものがマッチします。
変更した選択範囲:イメージベースの選択範囲を手動で変更することで、目的のオブジェクトが認識され、別の類似のオブジェクトが認識されなくなるようにします。

イメージ エディター

イメージベースの選択範囲は、組み込みのエディターを使用して、手動で設定します。

Image-based selection refinement with image editor

Image-based selection refinement with image editor

アクション アイテムを選択し、イメージ エディターを開くボタンをクリックします。
イメージベースの選択範囲を手動で変更します。
選択範囲を確認して、OK をクリックします。

推奨事項

テキストやその他の検証可能な属性による UI 要素の検出をベースとした自動化テストはシンプルである一方、イメージベースは実験的であり、直面する課題を解決するために、多くの経験、知識、創造性を必要としますが、以下に挙げるいくつかの推奨事項に従うことでよりうまく機能します。

Uniqueness

可能な限り、他にマッチする候補がない、固有のイメージを識別してください。

Size

対象のイメージを、可能な限り小さくしつつ、必要に応じて大きくしてください。これには、何度かの試行が必要な場合があります。

Similarity

完全に一致することをテストの目的としていない限り、類似度 (Similarity) を 1.0 にしないでください。必要に応じて、0.95 から、なるべく 0.99 に近い値を設定してください。0.98 または 0.99 の設定で、ほとんどのテストで動作するはずです。

Preprocessing properties

必要に応じて、Pre-processing プロパティを使用してください。

参照

Pre-processing プロパティについては、Ranorex Studio アドバンスト > イメージベース オートメーション > ⇢ イメージベース プロパティ を参照してください。