GetRoProperty、GetToProperty QTP/UFT 例を挙げて

⚡ スマートサマリー

Object Spy はテスト対象アプリケーション内の任意のコントロールのプロパティとメソッドを明らかにし、GetROProperty、GetTOProperty、SetTOProperty はそれらのプロパティ値を読み取り、書き込みます。 QTP or UFT 実行時に実行されるスクリプトは1つだけです。

  • 🔎 オブジェクトスパイを最初に: コントロールにポインターを合わせると、テストオブジェクトのプロパティ、実行時プロパティ、メソッド、および完全な階層構造が表示されます。
  • ☑️ 2つの物体世界: テストオブジェクトは保存された記述であり、実行時オブジェクトはアプリケーション内の実際の制御要素である。
  • GetROProperty: ライブコントロールから現在の値を読み取るため、アプリケーションが起動していて、オブジェクトが存在している必要があります。
  • 🧪 GetTOProperty: 代わりに保存されている説明を読み込むため、2つのメソッドは異なる値を返す可能性があります。
  • 🛠️ SetTOProperty: この変更は今回の実行時のみ有効で、リポジトリ自体は一切変更されず、変更内容は実行終了時に破棄されます。
  • 📌 SetROProperty がありません: スクリプトはアプリケーションを読み取ることはできますが、プロパティを書き込むことはできません。

オブジェクトスパイとGetROProperty、GetTOProperty、SetTOPropertyメソッド QTP (NAIST) と UFT 1

このチュートリアルでは、 オブジェクトスパイ.

Object Spy は、環境内のオブジェクトに関連付けられた有用なプロパティとメソッドを特定するのに役立ちます。

HP/マイクロフォーカス UFT チュートリアル も説明しています GetROProperty、GetTOProperty、SetTOProperty.

⚠️ バージョンノート: ここで説明するツールは、HP QuickTest Professionalとして出荷され、Micro Focus Unified Functional Testingとなり、現在では OpenText 機能テスト(UFT XNUMX)オブジェクトスパイと、以下の説明どおりに動作する3つのメソッドはすべて、引き続き正常に動作します。

詳しくはこちら こちら ビデオにアクセスできない場合

オブジェクトスパイ

  • オブジェクトスパイは、 QTP これを使用すると、テスト時オブジェクトと実行時オブジェクトの両方のプロパティとメソッドを表示できます。
  • また、選択したメソッドの構文も示します。
  • Object Spyは、選択したオブジェクトの完全な階層構造を表示します。

この階層構造は重要です。なぜなら、オブジェクトスパイからコピーされたプロパティ名は、以下の3つのメソッドが期待する文字列と全く同じだからです。したがって、オブジェクトをスパイすることは、ほぼすべてのプロパティ取得タスクにおける最初のステップとなります。

GetROProperty

  • GetROProperty は、オブジェクトプロパティの実行時値を取得するために使用される組み込みメソッドです。

GetROPropertyを使用するには、次の4つのステップが必要です。

  1. GetROProperty を使用するオブジェクトを記録します。 オブジェクトリポジトリ.
  2. 記録されたオブジェクトは、使用可能な実行時プロパティを識別します。オブジェクトスパイを使用できます。
  3. GetROProperty メソッドを使用して、識別された実行時プロパティを取得し、その値を変数に格納します。
  4. この値をさらに控除するために使用してください。

値はライブコントロールから読み取られるため、このコードが実行される時点でアプリケーションが起動しており、オブジェクトが実際に画面上に存在している必要があります。

SetTOProperty と GetTOProperty

  • オブジェクトリポジトリに保存されているWebボタンを考えてみましょう。
  • テストを実行すると QTP テストオブジェクトと呼ばれるこのオブジェクトのコピーを作成し、それをランタイムオブジェクトと比較します。
  • GetTOPropertyを使用すると、テストオブジェクトのプロパティの値を取得できます。
  • SetTOPropertyを使用すると、テストオブジェクトのプロパティ値を変更できます。
  • テストが完了すると、このテストオブジェクトは破棄され、SetTOProperty を使用してオブジェクトプロパティに加えた変更もすべて破棄されます。
  • テストが再実行されると、オブジェクト リポジトリに保存された元のプロパティ値を使用してテスト オブジェクトの新しいコピーが作成されます。
  • テストスクリプトに複数のコード行があり、環境が不安定な場合は、GetTOPropertyとSetTOPropertyの使用を検討できます。
  • なお、SetROProperty はありません。

構文と例

これら3つのメソッドはすべて、階層構造の末尾にあるテストオブジェクトに対して呼び出され、いずれも文字列として説明プロパティ名を受け取ります。各メソッドのシグネチャは表に示されています。

方法 構文 読み書きする
GetROProperty object.GetROProperty(Property) アプリケーション内のライブコントロールを読み取ります
物件を取得する object.GetTOProperty(Property) 保存されているテストオブジェクトの説明を読み取ります
SetTOプロパティ オブジェクト.SetTOProperty プロパティ、値 この実行専用のテストオブジェクトの説明を書き込みます

実行時値の読み取りは単一のステートメントです。この例は、 公式の取得および設定値のリファレンス実行セッション中にリンクのターゲットアドレスを取得します。

link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")

テストオブジェクトのプロパティを書き込んでから読み取るのも同じくらい簡単です。以下のコードは、送信ボタンの名前を「my button」に設定し、同じ値をそのまま読み取っています。

Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").SetTOProperty "Name", "my button"
ButtonName = Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")

一般的な検証では、この2つの考え方を組み合わせます。GetROPropertyを使用して実行時の値を読み取り、それをテストが期待する値と比較します。

strValue = Browser("Welcome").Page("Find a Flight").WebList("fromPort").GetROProperty("selection")
If strValue = "Acapulco" Then
    Reporter.ReportEvent micPass, "Default city", "Default city is correct"
Else
    Reporter.ReportEvent micFail, "Default city", "Unexpected value: " & strValue
End If

GetROPropertyとGetTOPropertyの違い

この2つの名称は1文字しか違わず、ツール内で最も紛らわしい組み合わせです。ROはランタイムオブジェクト、TOはテストオブジェクトを表し、それぞれ異なる場所からデータを読み取ります。

比較のポイント GetROProperty 物件を取得する
価値の源泉 実行中のアプリケーションでのライブ制御 テストオブジェクトに保存されている説明
申請は公開されている必要があります はい いいえ
SetTOPropertyの変更を検出します いいえ はい、現在の実行では
典型的な使用 ユーザーが実際に見ているものを検証する オブジェクトがどのように識別されているかを確認またはデバッグする
マッチングセッター なし — SetROProperty は存在しません SetTOプロパティ

実際に比較してみると、その違いが明らかになります。リストにHTML IDが設定されていない場合、そのリストにHTML IDを設定し、両方の方法で読み取ってみてください。GetROPropertyはアプリケーションが変更されていないため空の文字列を返しますが、GetTOPropertyは説明に書き込まれたばかりの値を返します。

よくあるエラーとその修正方法

プロパティの取得が失敗する原因は、ごく少数で予測可能なものに限られます。以下の表は、テスターが最も頻繁に遭遇する原因を示しています。

症状 原因となる 修正する
この呼び出しは空の文字列を返します プロパティ名が間違っているか、オブジェクトがそれを公開していません。 オブジェクトを再度スパイし、リストされているとおりにプロパティ名を正確にコピーします。
GetROProperty 行でオブジェクトが見つかりませんでした コントロールはまだレンダリングされていません 読み取りの前に同期ステップを追加する
GetROProperty は SetTOProperty の変更を無視します これら2つの方法は、設計上、異なる対象物を対象としている。 変更内容を読み取るには、代わりにGetTOPropertyを使用してください。
SetTOPropertyの変更が消える テストオブジェクトの編集は、現在の実行時のみ有効です。 リポジトリ内のオブジェクトを編集するか、 記述的プログラミング
SetROProperty で構文エラーが発生します そのような方法は存在しません アプリケーションを「設定」や「クリック」などの通常の手順で実行します。

2つの習慣がこれらのほとんどを防いでくれます。プロパティ名を推測するのではなく、行を書く前にコントロールを調べ、 VBScript 値取得呼び出しは、値が必要なステップのすぐ近くで行われるため、読み取りが行われる時点でオブジェクトはまだ画面上に表示されています。

よくあるご質問

Object Spyは、ツールがそのクラスに対して保持する識別プロパティに加え、ブラウザによって公開されるネイティブプロパティを一覧表示します。属性値とスタイル値は、プロパティ文字列内の属性およびスタイル接頭辞を使用して取得できます。

実行時オブジェクトはテストではなくアプリケーションに属するため、ツールはそこに書き込みを行いません。アプリケーションの内容を変更するには、設定、選択、クリックなどの通常の手順でコントロールを操作してください。

いいえ。一時的なテストオブジェクトは実行終了時に破棄され、次回実行時にはリポジトリから新しいコピーが作成されます。永続的な変更はオブジェクトリポジトリ自体に保存されます。

はい。インラインで構築された記述オブジェクトは同じ呼び出しを受け入れるため、GetROProperty は 記述的プログラミング また、GetTOProperty は、保存されたエントリからではなく、インラインの説明から値を返します。

AIを活用した物件検索ツールは、同じ管理区域内の複数の候補物件をランク付けし、属性が変更された際に不備のある説明文を修復します。これにより、手作業による物件調査の手間が軽減されますが、提案された物件については依然として人間の確認が必要です。

Copilotは、ファイル内に類似した行がいくつか見つかると、階層構造とメソッド呼び出しを完了します。ただし、実際のオブジェクト名やコントロールが公開するプロパティは認識できないため、生成された文字列はすべてObject Spyで検証してください。

Object Spyは、スクリプト作成中に値を表示する検査ツールです。チェックポイントはテスト内で実行されるステップであり、保存された期待値と比較して合格か不合格かを報告します。

オブジェクトがアプリケーション内にまだ存在する場合に限ります。レンダリングされていないコントロール、またはページから削除されたコントロールは、空の値を返すのではなく、「オブジェクトが見つかりません」エラーを発生させます。