QTP-仮想オブジェクト
仮想オブジェクトとは何ですか?
テスト対象のアプリケーションに標準のウィンドウオブジェクトが含まれていても、QTPで認識されない場合があります。このような状況では、オブジェクトをボタンやリンクなどのタイプの仮想オブジェクト(VO)として定義できるため、実行中に仮想オブジェクトでユーザーアクションをシミュレートできます。
例
MicrosoftWordでシナリオを自動化しているとしましょう。MS Wordアプリケーションをアクティブにして、リボンのアイコンをクリックしました。たとえば、リボンで[挿入]タブをクリックしてから、ユーザーが[画像]ボタンをクリックします。ボタンはWinObjectとして認識されます。したがって、仮想オブジェクトの重要性が顕著になります。
Window("Microsoft Word").WinObject("Ribbon").Click 145,45
Window("Microsoft Word").WinObject("Ribbon").WinObject("Picture...").Click
170,104
仮想オブジェクトの作成
Step 1 −このようなシナリオでは、仮想オブジェクトは、[ツール] >> [仮想オブジェクト] >> [新しい仮想オブジェクト]から仮想オブジェクトマネージャーまたは新しい仮想オブジェクトを使用して作成し、[次へ]ボタンをクリックします。

Step 2 −オブジェクトをクラスタイプに対してマップし、[次へ]をクリックします。

Step 3−「オブジェクトのマーク」ボタンをクリックします。十字カーソルが表示され、マップするオブジェクトにマークを付けて、[次へ]をクリックします。

Step 4 −仮想オブジェクトの親を選択し、[次へ]をクリックします。

Step 5 −仮想オブジェクトを保存するコレクションに名前を付け、[完了]をクリックします。

仮想オブジェクトマネージャー
仮想オブジェクトマネージャは、仮想オブジェクトのコレクションを管理します。テスターは、仮想オブジェクトマネージャーから仮想オブジェクトを追加または削除できます。
仮想オブジェクトマネージャーへのナビゲーション:以下に示すように、「ツール」>>「仮想オブジェクトマネージャー」-

仮想オブジェクトの使用
仮想オブジェクトを作成した後、作成したオブジェクトは次のように使用できます-
Window("Microsoft Word").WinObject("Ribbon").VirtualButton("button").Click
仮想オブジェクトの制限
QTPは、アナログまたは低レベルの記録用の仮想オブジェクトをサポートしていません。
仮想オブジェクトにチェックポイントを追加することはできません。
仮想オブジェクトは、オブジェクトリポジトリによって制御されません。
オブジェクトを特定のクラス(ボタンまたはリスト)にマップしますが、ネイティブオブジェクトのすべてのメソッドが仮想オブジェクトでサポートされているわけではありません。
オブジェクトスパイは仮想オブジェクトでは使用できません。
座標の変更に伴って画面の解像度が変わると、テストの実行は失敗します。
仮想オブジェクトが正しくキャプチャされるように、アプリケーションウィンドウは同じ画面サイズである必要があります。