GetRoProperty、GetToProperty QTP/UFT 例を挙げて
⚡ スマートサマリー
Object Spy はテスト対象アプリケーション内の任意のコントロールのプロパティとメソッドを明らかにし、GetROProperty、GetTOProperty、SetTOProperty はそれらのプロパティ値を読み取り、書き込みます。 QTP or 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つのステップが必要です。
- GetROProperty を使用するオブジェクトを記録します。 オブジェクトリポジトリ.
- 記録されたオブジェクトは、使用可能な実行時プロパティを識別します。オブジェクトスパイを使用できます。
- GetROProperty メソッドを使用して、識別された実行時プロパティを取得し、その値を変数に格納します。
- この値をさらに控除するために使用してください。
値はライブコントロールから読み取られるため、このコードが実行される時点でアプリケーションが起動しており、オブジェクトが実際に画面上に存在している必要があります。
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 値取得呼び出しは、値が必要なステップのすぐ近くで行われるため、読み取りが行われる時点でオブジェクトはまだ画面上に表示されています。
