UIA Pro アドイン

関連:GUI テストおよびコンポーネント

このトピックでは,UIA Pro を使用して,Microsoft UI Automation パターンを実装するアプリケーションをテストする方法について説明します。OpenText Functional Testing の通常のオブジェクト認識サポートではニーズを十分に満たせない場合,UIA Pro を使用してアプリケーション内のオブジェクトを識別することができます。

UIA Pro を使用するには,UIA Pro アドインをインストールしてロードする必要があります。

このアドインの機能拡張バージョンがベータ版として利用可能です。このバージョンを使用するには,明示的にアクティブ化する必要があります。

UIA Pro モードでのオブジェクトのスパイ

オブジェクト・スパイとオブジェクト認識センターには,UIA Pro オブジェクト認識のための独立したモードが用意されています。このモードを使用して,UI Automation プロパティに基づいてオブジェクトを認識し,UIA Pro テスト・オブジェクトを作成します。

UIA Pro モードでオブジェクトをスパイするには

次のいずれかを実行します。

  • オブジェクト・スパイで,指差しアイコンのドロップダウン矢印をクリックし,[UIA Pro]を選択し,ボタンをクリックして UIA Pro モードでオブジェクトをスパイします。

  • オブジェクト認識センターで[UIA Pro]ボタンをクリックして,UIA Pro モードでオブジェクトをスパイします。

UIA Pro モードでは,オブジェクトのプロパティを表示したり,スパイしたオブジェクトをローカル・リポジトリまたは共有リポジトリに追加したり,テストにドラッグしてステップを作成したりできます。詳細については, オブジェクト・スパイの使用およびオブジェクト認識センターの使用を参照してください。

オブジェクトのプロパティは,ネイティブ・テクノロジではなく UI Automation を使用して認識されるように表示されます。

先頭に戻る

UIAPro テスト・ステップを作成する

オブジェクト・スパイまたはオブジェクト認識センターから,オブジェクトを作成してテストに追加できます。

各テスト・オブジェクトは,次のタイプのメソッドをサポートしています。

  • OpenText Functional Testing の共通メソッドとプロパティ

  • Click メソッドと Type メソッド。

  • コントロール・タイプのサポート対象パターンに応じたメソッド。supportedpatterns 記述プロパティを使用すると,オブジェクトがサポートするパターンを確認できます。

  • 一部のテスト・オブジェクトでは,オブジェクト固有のテスト・オブジェクト・メソッドが使用可能。

これらのテスト・オブジェクト・メソッドの詳細については,『Object Model Reference』の「UIA Pro」セクションを参照してください。

注: 使用可能なテスト・オブジェクトとメソッドは,アプリケーション内で実装されているプロパティとパターンに完全に依存します。お使いのアプリケーションのオブジェクトのプロパティ(特にコントロール・タイプ ID とサポートされるパターン)について理解し,使用できるテスト・オブジェクトとメソッドを把握しておくことをお勧めします。

先頭に戻る

機能拡張されたベータ版 UIA Pro アドインの活用

UIA Pro アドインの機能拡張バージョンがベータ版として利用可能です。このバージョンを使用するには,機能拡張されたベータ版 UIA Pro アドインのアクティブ化の説明に従って,明示的にアクティブ化する必要があります。

このセクションでは,この機能拡張バージョンによって提供される利点について説明します。

注: Object Model Reference の変更により,従来の UIA Pro アドインと機能拡張されたベータ版アドインを切り替える際に,テストの調整が必要になる場合があります。

領域 機能拡張
パフォーマンスと安定性

アドインのベータ版では以下が提供されます。 

  • パフォーマンスの大幅な向上

  • テストの安定性の向上

オブジェクトの階層構造:テスト・オブジェクト・ツリーのナビゲーション

UI Automation アプリケーションには,深いオブジェクト階層構造が存在することがよくあります。機能拡張されたアドインは,階層内のすべてのオブジェクトへの完全なアクセスと操作をサポートします。

新しいメソッドにより,テスト・オブジェクト・ツリーの包括的かつ柔軟なスキャンが可能です。

  • すべてのレベルから子オブジェクトまたは親オブジェクトを取得したり,取得するオブジェクトのレベル数を指定したりできます。

  • 取得する子オブジェクトまたは親オブジェクトのタイプの記述を指定することもできます。

詳細については,『Object Model Reference』の「UIA Pro」セクションにある次のメソッドを参照してください。

GetAncestorsGetChildrenGetDescendantsGetParent。後方互換性のために ChildObjects メソッドも引き続きサポートされていますが,ChildObjects メソッドではなくこれらのメソッドを使用してください。

オブジェクトの階層構造:スパイ オブジェクト認識センターには,スパイした UIA Pro オブジェクトの完全な階層構造が表示されます。テスト・オブジェクトをオブジェクト・リポジトリに追加すると,その最も重要な祖先のみが含められます。
オブジェクトの階層構造:共通メソッドとプロパティ

実行セッション中に GetCell メソッドなどで取得されたオブジェクトでは,共通メソッドとプロパティがサポートされます。

新たにサポートされるメソッドは,ExistGetROPropertyGetTOPropertySetTOPropertyHighlightRefreshObjectToStringCheckPropertyWaitProperty です。

これにより,実行時にアプリケーションのオブジェクト階層内で検出されたオブジェクトを操作できる堅牢なテストが可能になります。

たとえば,次のステートメントは機能拡張されたベータ版アドインではサポートされていますが,従来のアドインではサポートされていません。 

UIAProDataGrid("dataGrid").GridPattern.GetCell(1,1).Highlight

より特化したオブジェクトの記述

補足プロパティがサポートされており,最適化されたテスト・オブジェクトの記述を作成できます。

従来の UIA Pro アドインでは,すべてのオブジェクト認識プロパティがすべての UIA Pro テスト・オブジェクトの記述に含まれています。

ベータ版アドインでは,[オブジェクトの認識]ダイアログ・ボックスで,各タイプの UIA Pro テスト・オブジェクトに対して考慮されるプロパティを確認できます。詳細については,テスト・オブジェクト・クラスに対するオブジェクト認識の設定を参照してください。

現在,このプロパティのリストは編集できませんが,テスト・オブジェクトをオブジェクト・リポジトリに追加した後で,その記述を編集し,テスト・オブジェクトの認識に使用されるプロパティのリストとその値を変更できます。

修正された既知の不具合

以下の既知の問題が修正されました。

  • アプリケーション内でオブジェクトを一意に識別するためのオブジェクト・インデックスが正しく使用されていませんでした。

  • HighlightGetROPropertyRefreshObject などの一部のステップが実行結果レポートに含まれていませんでした。

  • アプリケーション内で一時的にアクセスできなくなっていたオブジェクトが再び利用可能になったときに,そのオブジェクトに対するテスト・ステップが失敗していました。

  • 一部の状況で,OpenText Functional Testing が応答しなくなることがありました。これらのケースの一部では,お客様がいくつかのレジストリ・キーを再適用する必要がありました。

  • 一部のケースで,オブジェクト・リポジトリのオブジェクトの強調表示が機能しないことがありました。

  • OpenText Functional Testing のユーザ・インタフェースで,テスト実行のステップごとの進行状況が明確に表示されず,停止したように見えることがありました。

  • オブジェクトが識別できない場合,ステップは失敗し,見つからなかったオブジェクトがレポートに示されます。一部のケースで,レポートにテスト・オブジェクトの階層内のオブジェクトの 1 つが示されているものの,見つからないオブジェクトが示されていないことがありました。

Object Model Reference の変更

Object Model Reference の次の変更により,従来の UIA Pro アドインと機能拡張されたベータ版アドインを切り替える際に,テストの調整が必要になる場合があります。

機能拡張されたベータ版アドイン:

  • WaitForInputIdle メソッドが,ウィンドウがアイドル状態であるか,またはタイムアウトが経過したかを示すブール値を返します。従来のアドインでは,このメソッドは値を返しませんでした。

  • GetSupportedPatterns メソッドが,配列ではなくパターンのコレクションを返します。したがって,スクリプトで UBound(<戻り値>) を使用していた場合は,<戻り値>.Count に置き換えてください。

  • ToString メソッドが,従来のアドインとは若干異なる値を返す場合があります。

    たとえば, UIAProProgressBar.ToString メソッドが文字列 ProgressBarTO progressbar を返しますが,従来のアドインでは,追加のスペースを含む文字列  ProgressBarTO progress bar を返します。

  • 次のメソッドが列挙文字列を返しますが,従来のアドインでは数値を返します。

    GetExpandCollapseStateGetRoleGetStateGetPrimaryTraversalDirectionGetSupportedSelectionModeGetToggleStateGetWindowInteractionStateGetWindowVisualState

    詳細については,『Object Model Reference』の「UIA Pro」セクションを参照してください。

  • Activate および ActivateCell メソッドの代わりに,DoubleClick および DoubleClickCell メソッドを使用できます。Activate メソッドは,後方互換性のために引き続きサポートされています。

  • アプリケーションから取得したプロパティ値の先頭と末尾のスペースは切り捨てられなくなりました。これは,オブジェクトをスパイする場合や,テスト・オブジェクト・メソッドを使用してプロパティを取得する場合に当てはまります。

    テスト・オブジェクトがオブジェクト・リポジトリに追加された場合は,必須プロパティの先頭と末尾のスペースは引き続き切り捨てられることに注意してください。

  • ツールヒント・オブジェクトは,UIAProToolTip テスト・オブジェクトとして正しく識別されます。従来の UIA Pro では,これらは一般的な UIAProObject として識別されていました。

先頭に戻る

機能拡張されたベータ版 UIA Pro アドインのアクティブ化

UIA Pro アドインをインストールして有効にした後,機能拡張されたベータ版の機能をアクティブ化または非アクティブ化することができます。

タスク 手順
機能拡張された UIA Pro の機能をアクティブ化するために,標準設定のアドインをオフにする。
  1. OpenText Functional Testing が閉じていることを確認します。

  2. 管理者として,<Installdir>\dat\DisableLegacyUIAPro.bat バッチ・ファイルを実行します。

標準設定の UIA Pro アドインの機能に戻すために,標準設定のアドインをオンにする。

  1. OpenText Functional Testing が閉じていることを確認します。

  2. 管理者として,<Installdir>\dat\EnableLegacyUIAPro.bat バッチ・ファイルを実行します。

先頭に戻る

両方の UIA Pro アドインの使用時に発生する既知の問題

これらの既知の問題は,従来のアドインか機能拡張されたアドインかに関係なく,UIA Pro アドインを使用する際に当てはまります。

既知の問題 説明
記録 UIA Pro ステップの記録はサポートされていません。
パラメータ値の列挙

UIA Pro テスト・ステップでパラメータ値を入力するときは,列挙文字列ではなく整数値を使用してください。

Example: 構文 UIAProPane("Program Manager").Click 10, 10, MouseButton_Right では,列挙文字列を使用する代わりに,整数値を使用して構文を次のように変更します。

UIAProPane("Program Manager").Click 10, 10, 2

サポートされていないプロパティ オブジェクトのネイティブ・メソッドとプロパティにアクセスするために使用される Object プロパティは,UIA Pro ではサポートされていません。

先頭に戻る

従来の UIA Pro アドインの使用時に発生する既知の問題

標準設定では,従来の UIA Pro アドインが使用されます。このアドインを使用する場合,いくつかの既知の問題があります。

既知の問題 説明
オブジェクトの階層構造:スパイ

UI Automation アプリケーションには,深いオブジェクト階層構造が存在することがよくあります。このアドインは,含まれるオブジェクトへのアクセスが制限されています。

オブジェクト認識センターには,スパイした UIA Pro オブジェクトについて限られた階層のみが表示されます。全体の階層を表示するには,オブジェクト・スパイを使用します。

オブジェクトの階層構造:オブジェクトの操作

実行セッション中に取得されたオブジェクトでは,ほとんどの共通メソッドとプロパティがサポートされていません。

補足プロパティ UIA Pro では補足プロパティがサポートされておらず,オブジェクトの記述に含まれるすべてのプロパティは必須とみなされます。

先頭に戻る

機能拡張された UIA Pro アドインの使用時に発生する既知の問題

機能拡張されたベータ版 UIA Pro アドインを使用する場合,いくつかの既知の問題があります。

領域 既知の問題
OIC

OIC では,オブジェクトのスパイ,強調表示,オブジェクト・リポジトリへの追加のみが行えます。

[オブジェクトの認識]ダイアログ・ボックスにリストされているプロパティに基づいて,テスト・オブジェクトの記述が作成されます。ただし,OIC ではどのプロパティが含まれているかは示されず,チェックボックスを使用して選択内容を変更することもできません。

オブジェクト・スパイ

オブジェクト・スパイの使用時には,次の既知の問題が発生します。

  • テストが開かれていないオブジェクトをスパイすると,テスト・オブジェクトのアイコンが表示されない。

  • 比較機能がサポートされていない。

オブジェクト同期化のタイムアウト UIA Pro のステップでは,標準設定のオブジェクト同期化のタイムアウト値(20 秒)が常に使用され,テスト設定で定義された他の値が無視される。
順序識別子 Index 順序識別子はサポートされていますが,場所およびビジュアル関係識別子はまだサポートされていません。
サポートされていないメソッド

次のメソッドは,UIA Pro テスト・オブジェクトではサポートされていません。 

  • CaptureBitmap

  • GetAllROProperties

  • GetAllTOProperties

  • Output

  • SetSecureValue

実行結果レポート

実行結果レポートに関連する既知の問題は次のとおりです。

  • レポート内の画像が現在サポートされていない。

  • エラーが発生すると,CheckProperty および WaitProperty メソッドのレポート・ステップでは,プロパティ値を指定するのではなく,一般的なエラー・メッセージが表示される。

  • GetAncestorsGetChildren,および GetDescendants メソッドのレポート・ステップに,テストで指定されていた場合でも記述引数が含まれていない。

先頭に戻る

その他の参照項目:

  • Microsoft UI Automation パターンの詳細については,MSDN の「UI オートメーションの概要」を参照してください。