AI ベースのテスト・オブジェクトの認識の改善
GUI UFT Mobile および Web テストのみ
このトピックでは、UFT One の人工知能(AI)機能がアプリケーション内のオブジェクトを一意に識別できるようにするために使用するいくつかの要素について説明します。
UFT One の AI ベースのテストのサポート
次の表は、UFT One の各バージョンで提供される AI ベースのテストのサポート・レベルを示しています。
UFT One のバージョン | モバイル・アプリ | デスクトップ Web |
---|---|---|
15.0 | サポート対象 | サポート対象外 |
15.0.1 | サポート対象 | テクニカル・プレビュー |
15.0.2 | サポート対象 | サポート対象 |
テキストとオブジェクトの関連付け
オブジェクトに関連付けられたテキストは、オブジェクトを一意に識別するのに役立ちます。例:
AIUtil("input", "USER NAME").Type "admin"
このステップでは USER NAME というテキストを使用してオブジェクトを記述することで、正しいフィールドに確実に入力できるようにしています。
アプリケーション内のオブジェクトを検出する際に、フィールドの周囲に複数のラベルがある場合、UFT One はオブジェクトの認識に最も理にかなっていると考えられるラベルを使用します。
ただし、オブジェクトの記述で別のラベルを使用する場合でも、UFT One はこのオブジェクトを識別します。
例: アプリケーション内のオブジェクトを検出する際に、ボタンはボタン上のテキストに関連付けられますが、フィールドは内容ではなくラベルに関連付けられます。
フィールドに複数のラベルがあり、UFT One が検出でいずれかのラベルを選択する場合、フィールドの記述に別のラベルを使用したテスト・ステップを実行する場合でも、UFT One はこのフィールドを正しく識別します。
場合によっては、UFT AI は、互いに近くにある複数のテキスト文字列を 1 つのテキスト文字列に結合して、1 つのオブジェクトを認識します。
UFT Oneバージョン 15.0-15.0.1:オブジェクトの認識には、完全に結合された文字列を使用する必要があります。
UFT Oneバージョン 15.0.2 以降:結合された文字列を編集して、オブジェクトの認識に使用する文字列を 1 つだけ残すことができます。文字列の一部ではなく、文字列全体を削除してください。
例:
以下のテキスト・ボックスの場合、UFT AI は Password と Forgot? を 1 つの文字列に結合してオブジェクトを認識し、次のステップ・コードをテスト・スクリプトに追加します。
AIUtil("text_box", "Password Forgot?").Type
UFT One バージョン 15.0.2 以降では、スクリプトから 1 つの文字列全体を削除し、コードを次のように変更してもテストに失敗することはありません。
AIUtil("text_box", "Password").Type
テスト認識オプションの構成
UFT One バージョン 15.0.2 以降でサポート
これらのテキスト認識オプションをカスタマイズして、アプリケーションで最適なテキスト認識を実現します。
複数の言語でのテキスト認識
UFT One の AI 機能が英語以外の言語のテキストを認識できるようにするには、[ツール]>[オプション]>[GUI テスト]>[AI]で関連する OCR 言語を選択します。「[AI]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)」を参照してください。
AI を使用したオブジェクト認識時の正確なテキスト・マッチング
AI ベースのオブジェクトの認識では、テキスト・マッチングに AI アルゴリズムを使用します。AI によるテキスト・マッチングでは、スペルのバリエーションや意味の似た単語が一致と見なされる場合があります。
必要に応じて、AI テスト・オブジェクトを認識するときに、指定したテキストを正確に検出するように UFT One に一時的に指示できます。
AI の実行を設定するステップをテストに追加して、テキストの一致方法を設定します。この設定は、設定を変更するか、テスト実行が終了するまで有効です。詳細については、『UFT One Object Model Reference for GUI Testing』の「AIRunSettings Object」を参照してください。
注意:
- アプリケーションのテキストは、OCR を使用して認識されます。OCR が不正確な場合、AI によるテキスト・マッチングの方が、正確なテキスト・マッチングよりも成功率が高くなる可能性があります。
- 正確なテキスト・マッチングでは大文字と小文字は区別されません。
UFT One のテキスト認識設定の使用
UFT One のテキスト認識設定を使用するように AI に指示します。UFT One の設定に応じて、Google または Baidu OCR クラウド・サービスまたはその他の UFT One OCR エンジンを使用できます。「[AI]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)」を参照してください。
相対的な位置でのオブジェクトの識別
オブジェクトに対するステップを実行するには、UFT One でオブジェクトが一意に識別される必要があります。複数のオブジェクトがオブジェクトの記述と一致する場合は、オブジェクトの位置を追加して一意に識別することができます。位置は、アプリケーション内の類似オブジェクトに関連して序数にすることも、アンカと見なされる別の AI オブジェクトに関連して近位にすることもできます。
AIUtil オブジェクト認識メソッドは、location および locationData 引数を使用するようになりました。この引数で、オブジェクトの位置に関する情報を提供できます。「AIObject」、「FindText」、「FindTextBlock」を参照してください。
オブジェクトの序数位置を記述するには
次の内容を指定します。
オブジェクトの occurrence(それが 1 番目の出現か、2 番目か、3 番目かなど)。
その orientation(出現をカウントする方向):
FromLeft
、FromRight
、FromTop
、FromBottom
。
たとえば、AIUtil("button", "ON", "FromLeft", 2).Click
は、アプリケーション内の左から 2 番目の ON
ボタンをクリックします。
別の AI オブジェクトに近接するオブジェクトの位置を記述するには
UFT One バージョン 15.0.1 以降でサポート
次の内容を指定します。
アンカ・オブジェクトの記述。
アンカは、記述するオブジェクトと同じコンテキストに属する AI オブジェクトである必要があります。
アンカは、その位置によって記述することもできます。
記述するオブジェクトと比較したアンカ・オブジェクトの方向:
WithAnchorOnLeft
,WithAnchorOnRight
,WithAnchorAbove
,WithAnchorBelow
.
UFT One は、記述に一致し、アンカに最も近く、指定された方向に並んでいる AI オブジェクトを返します。
たとえば、このテストでは、Linux テキストの右にあり、Latest Edition テキスト・ブロックの下にある download ボタンをクリックします。
Set latestEdition = AIUtil.FindTextBlock("Latest Edition") Set linuxUnderLatestEdition = AIUtil.FindText ("Linux", micWithAnchorAbove, latestEdition) AIUtil("button", "download", micWithAnchorOnLeft, linuxUnderLatestEdition).Click
画像を使用したコントロールの記述
AI 識別でサポートされていないコントロール・タイプがアプリケーションに含まれている場合は、UFT One がコントロールの識別に使用できるコントロールの画像を提供できます。UFT One でこのコントロール・タイプに使用するクラス名をカスタム・クラスとして登録することによって指定します。
AIUtil.RegisterCustomClass "door", "door.PNG"
AIUtil("door").Click
詳細については、『UFT One Object Model Reference for GUI Testing』の「AIUtil.RegisterCustomClass method」を参照してください。
カスタム・クラスを登録すると、AIUtil ステップでそれをコントロール・タイプとして使用できます。
AIUtil("<Myclass>")
AIUtil("<Myclass>", micAnyText, micFromTop, 1)
AIUtil("<Myclass>", micAnyText, micWithAnchorOnLeft, AIUtil("Profile"))
これを使用してアンカ・オブジェクトを記述することもできます。アンカ・オブジェクトは、近くにある他のオブジェクトを識別するために使用されます。
AIUtil("profile", micAnyText, micWithAnchorOnLeft, AIUtil("<Myclass>") )
注意:
- 登録済みクラスをアンカとして使用して、近接性によって別の登録済みクラスを識別することはできません。
- コントロールを記述するために使用する画像は、コントロールと正確に一致している必要があります。
自動スクロール
テストの実行時にオブジェクトがアプリケーションに表示されていない場合、Web ページまたはモバイル・アプリのスクロールが可能なときは、UFT One がオブジェクトを検出するために自動的にスクロールします。記述と一致するオブジェクトが識別されると、それ以上スクロールは実行されません。後続のアプリケーション・ページまたは画面に表示されている同じオブジェクトは見つかりません。
UFT One は、チェックポイントの実行時に、アプリケーションに表示されていないオブジェクトが必要になった場合も同様にスクロールします。チェックポイントは、次のページまたは画面までスクロールしてもオブジェクトが見つからない場合にのみ成功となります。
標準設定では、UFT One は 2 回下にスクロールします。必要に応じて、スクロールの方向と実行するスクロールの最大数をカスタマイズするか、スクロールを無効にすることができます。
- [ツール]>[オプション]>[GUI テスト]>[AI]を使用するか、UFT One のオートメーション・スクリプトを使用して、スクロールをグローバルにカスタマイズします。「[AI]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)」を参照してください。
- AIUtil.RunSettings オブジェクトを使用して、テスト実行内で一時的にスクロールをカスタマイズします。『UFT One Object Model Reference for GUI Testing』の「AIRunSettings Object」を参照してください。
その他の参照項目: