qtp tutorial 23 qtp smart object identification
このQTPチュートリアルでは、スマートオブジェクトの識別、同期ポイントの追加、テストの実行と結果の表示、およびサイレントテストランナーについて学習します。
=> QTPトレーニングチュートリアルシリーズについては、ここをクリックしてください
実行時にオブジェクトが一致しない、または複数のオブジェクトがオブジェクトの記録された説明と一致する状況を想定すると、QTPはそれをどのように処理しますか?
学習内容:
スマート識別
QTPには、まさにこのような場合に対応するメカニズムがあります。記録された説明でQTPがステップで指定されたオブジェクトを識別できず、オブジェクトのスマート識別定義が定義(および有効化)されている場合、QTPは「スマート識別」を使用してオブジェクトを識別しようとします。
これがどのように機能するかをいくつかの例で見てみましょう。すべてのオブジェクトには、プライマリプロパティとセカンダリプロパティがあります。
例1: 説明が記録されているオブジェクトが見つかりません。
ページにはボタンがあり、以下はプロパティです。
- プライマリ:名前
- 二次:腹筋x、y
「名前」プロパティを記録している間、「ログインID」でした。アプリケーションの変更により、「Name」プロパティが「UserID」に変更されました。この場合、QTPは異なる説明のボタンを検出し、プライマリプロパティのみを考慮した場合は失敗するはずです。
ただし、このような場合、プライマリプロパティが一致しない場合は、セカンダリプロパティがチェックされ、一致する場合はオブジェクトが認識されます。この場合、ボタンはX座標とY座標で認識されます。
例2: QTPはページXを見つけることになっていて、同様のブラウザ設定を持つ2つのページがあります。
この場合も、「名前」またはその他のプロパティを使用して適切なページを見つけようとし、それに応じて機能します。
上記の2つは、QTPがスマート識別メカニズムを使用する場合の例です。
- テスト結果は、ステップが正常に実行されるためにスマート識別を採用したかどうかも示します。
- スマート識別にもかかわらずQTPがオブジェクトを見つけることができない場合、テストは失敗します。
ほとんどのオブジェクトについて、QTPはデフォルトのベースフィルタープロパティ(プライマリ)とオプションのフィルタープロパティ(セカンダリ)を提供し、それらに対してスマート識別を有効にするかどうかをチェックします。ユーザーには、検討するプロパティを編集するオプションもあります。これを行うには、に移動します 「」 ツール->オブジェクトの識別 「」 。
ドロップダウンから関連する環境を選択し、オブジェクトクラスを選択します。選択したら、「スマートIDを有効にする」にチェックを入れ、「構成」をクリックします。
[追加または削除]をクリックします
必要に応じてプロパティを選択します。
c ++の日付と時刻
選択を行い、完了したら[OK]をクリックします。
上記のプロセスにより、次にこのクラスのオブジェクトを識別するのが困難になったときに、スマート識別を使用して識別できるようになります。
また、ほとんどのオブジェクトで「スマート識別」はデフォルトでオンになっています。オブジェクトプロパティの「追加の詳細」部分にあるORでオブジェクトにアクセスすると、特定のオブジェクトがどこに当てはまるかを確認できます。
有効にすると「True」に設定され、無効にすると「False」に設定されます。
テスト実行のためにスマートIDを完全に有効または無効にすることもできます。選択 「」 [ファイル]-> [設定]-> [実行]->実行セッション中にスマートIDを無効にする 「」 オプション。
同期ポイント
このプログラムを検討してください、
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Email').Set 'swatiseela' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Passwd').SetSecure 'sfgs686898' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click
理想的な世界では、Gmailのログインページで[サインイン]ボタンを押すとすぐに、[受信トレイ]が遅滞なく表示されます。つまり、アプリケーションの状態は、この例の最後のステートメントが実行された直後に実行される準備ができていることを意味します。
ただし、リアルタイムでは、さまざまな理由により、アプリケーションが常に同じペースで読み込まれるとは限りません。 QTPに、先に進む前に一定の待機を指示しない場合。より具体的には、オブジェクトが特定の状態に達するまで。
同期ポイントは、特定のオブジェクトプロパティが指定された値に達するまで待機するようにQTPに指示するために使用されます。
同期点を挿入すると、「待機プロパティ」ステートメントがテストに挿入されます。
Browser('Gmail: Email from Google').Page('Gmail - Inbox'). Link('Sign out').WaitProperty “Visibile”,true,20
したがって、新しいプログラムは次のようになります:(以下の6行目)
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Email').Set 'swatiseela' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Passwd').SetSecure 'sfgs686898' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox'). Link('Sign out').WaitProperty “Visible”,true,1000 Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click
メニューオプションを使用して録音中に挿入できます 「」 挿入->同期ポイント 「」 。同期点を挿入するオブジェクトを選択します。
必要に応じて値を入力します。
これは挿入されるステートメントです:
Browser('Gmail - Inbox').Page('Gmail - Inbox').Link('Sign out').WaitProperty 'visible', true, 10000
テストの実行
#1) Automation-> RunまたはF5は通常、テスト全体を実行します。
#二) を選択すると、テストの一部を実行できます 「自動化->現在のアクションの実行」 オプション
#3) テストの特定のポイントからテストを実行するには、 「」 自動化->ステップから実行 「」 オプション。
#4) 上記の方法のいずれかを選択してテストを実行するとすぐに、テスト結果を保存する場所を選択するように求められます。最初のオプションを選択してフォルダーを選択できます。その場合、テスト実行のすべてのインスタンスの結果が保存されます。
ただし、次のオプションである一時フォルダーを選択すると、結果が上書きされ、選択したフォルダーに最新のテスト実行結果のみが保存されます。メモリに関しては、QTPテストをテストするときに2番目のオプションを使用することをお勧めします。すべてのテスト実行結果が必要な場合を除いて、最初のオプションは明らかに多くのスペースを消費するため、選択しないでください。
#5) 入力パラメーター:テスト入力パラメーターがこのテスト用に定義されている場合、このタブはそれらを指定する場所です。
#6) いくつかのテストを一度にまとめて実行することもできます。 QTPには「バッチランナー」ツールがあります。これは、前述の「パスワードエンコーダツール」と同じように外部ツールでもあります。
# 7) 起動するには、「 プログラム> QuickTestProfessional>ツール>テストバッチランナー 」。を使用してバッチ(.mtb)を作成します
#8) リストの作成が完了したら、を使用してバッチを実行します アイコン。バッチ実行が完了すると、デフォルトのテスト結果フォルダーで各テストの結果を表示できます( res# report )。
試験結果
これまでの記事では、話し合っているかどうか データテーブルの反復 、 チェックポイント 、スマート識別、または一般にテストステップの実行では、テスト結果は、何かが成功したかどうかを確認するための場所です。
上記とは別に、テスト結果には、障害が発生したときのAUTのスクリーンショットを保持できます。これはの設定によって異なります 「」 ファイル->設定->実行 」。
テスターは、テスト結果を印刷およびエクスポートできます。
データウェアハウジングのメタデータとは
テスト結果をより理解しやすくするために、ユーザーは自分のコメントをテスト結果に書き込むことができます。
例えば、 テストで特定の条件が失敗した場合は、「値Xでは機能しませんでした」というテスト結果を書き込むことをお勧めします。これを行うには、「reporter.reportevent」ステートメントを使用します。構文は次のとおりです。
Reporter.Reportevent(イベントステータス、レポーターステップ名、詳細)
イベントステータス:MicPass、MicFail、MicWarning、MicDetail、次の2つのパラメーターは、詳細を含めるのに役立つ任意のテキストにすることができます。
これが私のステートメントであり、私がそれを実行する場合:
reporter.ReportEvent micPass、「スワティの最初のステップ」、「合格したcoz合格するように言った…」
テスト結果は次のようになります。 (クリックすると画像が拡大します)
トランザクション
これはあまり広く使用されていない機能なので、ここで高レベルの紹介を行います。
通常、テストの特定のセクションを実行するのにかかる時間を測定する必要がある場合、テストはトランザクションに分割されます。
また、QTPテストをLoadRunnerまたはBusinessProcessMonitorで使用する場合にも使用されます。これらのいずれの場合でも、テストはトランザクションの観点から記録する必要があり、それ以外のものはすべて無視されます。
を使用してQTPからトランザクションを開始できます 「」 挿入->トランザクションの開始 「」 。名前を付け、現在のステップの前か後かを選択して、[OK]を選択します。
Services.StartTransaction「TransactionTest」 –挿入されます。次に、Gmail.comへのログインを記録します。
録音が終わったら。選択 「」 挿入->トランザクションの終了 「」 。 [OK]をクリックします。
Services.EndTransaction「TransactionTest」 –挿入されます。
これはコードです:
次に、このテストを実行します。テスト結果がどのように見えるか見てみましょう。結果には、トランザクションの完了にかかった時間に関する要約が表示されます。
LinuxがWindowsより速いのはなぜですか
サイレントテストランナー
QTPが提供するもう1つのツールは、サイレントテストランナーです。これにより、テスターはQTPを起動せずにテストを実行できます。また、ロードランナーからのQTP実行をシミュレートし、同じものとの互換性を検証するのにも役立ちます。
QTPがすでに開いていて、それを介して別のテストが実行されている場合は機能しません。
使用する 開始 >> プログラム >> QuickTest Professional >> ツール >> サイレントテストランナー それを呼び出すためのメニューコマンド。テストを選択し、「テストの実行」をクリックします
これは、テストの実行中の外観です。
完了したら:
テスト実行ログ:
テストに少なくとも1つのトランザクションが含まれている場合、「トランザクションの概要」がアクティブになります。
これで、このチュートリアルの終わりに到達し、ここでかなりの数のその他のQTPトピックを取り上げました。これが皆さんのお役に立てば幸いです。
コメントや質問はお気軽に投稿してください。
=> QTPトレーニングチュートリアルシリーズについては、こちらをご覧ください
推奨読書
- QTPのオブジェクトリポジトリ-チュートリアル#22
- QTPチュートリアル#7-QTPのオブジェクト識別パラダイム-QTPがオブジェクトを一意に識別する方法
- QTPチュートリアル#8-QTP記録モード、オブジェクトスパイ、オブジェクトリポジトリについて学ぶ
- QTPのパラメータ化(パート2)-QTPチュートリアル#20
- QTPチュートリアル#18 –QTPの例で説明されたデータ駆動型およびハイブリッドフレームワーク
- 例で説明されたQTPのパラメータ化(パート1)-QTPチュートリアル#19
- QTPチュートリアル-25以上のMicroFocus Quick Test Professional(QTP)トレーニングチュートリアル
- QTPチュートリアル#6 –最初のテストのQTPレコードと実行設定を理解する