QTP/UFT 自動化フレームワーク:データ駆動型、キーワード型、ハイブリッド型
⚡ スマートサマリー
自動化フレームワーク QTP/UFT テストスクリプト、データ、再利用可能な関数を整理することで、1つのテストで多くのケースを網羅できます。データ駆動型、キーワード駆動型、ハイブリッド型といった設計は、それぞれ異なる入力と再利用可能なロジックの組み合わせに適しています。
データ駆動型フレームワーク
データ駆動型フレームワークとは、入力データと出力データのさまざまな組み合わせによって駆動されるフレームワークのことです。
さまざまなデータの組み合わせを渡す方法の1つは、 パラメータ化この方法では、 QTP.
ただし、DDF では、パラメータ化を行うためにスクリプトが作成されます。この種のフレームワークは、AUT の機能を複数の入力でテストし、それぞれの出力をキャプチャする必要がある場合に役立ちます。これらの入力は、データベース、Excel、 Outlookテキストファイルなど、それぞれの出力は、以下に示すように、対応する外部ソースに書き戻されます。
データ駆動型フレームワークにおける一般的な手順は以下のとおりです。
- 準備する テストケース テスト対象アプリケーションの場合
- AUT から OR へのオブジェクトの追加
- テストケースに基づいてスクリプトを作成します
この中の UFT チュートリアルテストデータの外部ソースとしてExcelを使用し、サンプルテストケースのデータ駆動型フレームワーク設計を開発します。
ステップ1)テスト対象アプリケーションのテストケースを準備する
テストケース: 注文番号を開き、その注文の顧客名を取得します。異なる注文番号に対して同じプロセスを繰り返します。
外部ソース:エクセルファイル
このサンプルの外部ソースは Excel ファイルです。VB スクリプトは OpenText 機能テスト(UFT 1つは、以前はマイクロフォーカスでした。 UFTテストデータを読み取るために、Excelファイルを開くためのコードを記述する必要があります。これは階層的な方法で実現できます。
1. Excel ファイルは最初にアプリケーションとして開かれます。
2. 次に、指定された場所からワークブックを開く必要があります。
3. テストデータが存在するシート。
4. 最後に、セルを読み取る必要があります。
ステップ2)AUTからORにオブジェクトを追加する
テスト ケースの準備ができたら、必要なすべてのオブジェクトをリポジトリに追加し始めます。 このテストケースでは、追加する必要があるオブジェクトは次のとおりです。
1. 「フォルダを開く」アイコン 航空券予約申し込み:
2. 「フォルダーを開く」アイコンをクリックすると表示される「注文番号」チェックボックス:
3. 注文番号のWinEditボックス(番号を入力する場所):
4. OKボタン:
5. 「名前」フィールドはWinEditボックスです。このフィールドには、特定の注文番号に対して「OK」ボタンをクリックすると名前が入力されます。
必要なオブジェクトをすべて追加すると、オブジェクト リポジトリが次のように表示されます。
ステップ3)テストケースに基づいてスクリプトを作成する
スクリプトを実行する前に、テスト データを含む Excel ファイルが保存され、閉じられていることを確認してください。
以下のスクリプトは、Excel から注文番号を読み取り、変数「vOrder」を通じてアプリケーションに割り当て、変数「vName」を通じてアプリケーションから顧客名を書き込みます。
エクセル名: FlightDDF.xlsx
シート名: シート1
出力
上記のスクリプトを実行すると、次のように Excel から出力を取得できます。
データ駆動型フレームワークは、以下の方法で開発することもできます。 記述的プログラミング.
DDF の外部ソースとしてデータベースを使用する
外部ソースがデータベースの場合、次の手順で同じテストケースを実行できます。
- VBScript を記述してデータベース接続を確立する
- VBScript を使用してレコードセットまたはテーブルを開きます。
- 目的のフィールドを開くための VBScript
- 特定のセルがフィールドから読み取られます。
スクリプト
To Establish a Microsoft Database connection
ドライバー = {Microsoft アクセスドライバー (*.mdb)}; DBQ =
レコードセット名: オープンオーダー
フィールド名: 注文番号、顧客名
PS: Microsoft 以下のスクリプトを使用して Access 2010 に接続できません。
出力
DDFの利点
- XNUMX 回のテストで大量のテスト データを外部ファイルに読み書きできる
- Loop ステートメントは、同じステップを複数回繰り返すために使用されます。 したがって、コーディングの労力が軽減されます
- データは外部ファイルに直接読み書きされるため、使用するためにデータをコピー、貼り付け、エクスポートする必要はありません。
- テストデータは外部ファイルから読み取ることができ、出力は他の外部ファイルに書き込むことができます。
DDFのデメリット
- このフレームワークを開発するにはスクリプトの知識が必要です
- 外部ソース(データベースなど)からのデータの数や組み合わせによっては、処理速度が低下したり、クラッシュしたりすることがあります。 QTP
キーワード駆動フレームワーク
キーワード駆動型フレームワークとは、キーワードがテストを駆動するフレームワークです。 キーワードは ユーザー定義関数。 このフレームワークでは、特定のテスト ステップまたはテスト ケースを実行するためにキーワードが作成されます。 これらのキーワードは、同じテストで複数のテスト ケースを実行するためにドライバー テストに呼び出されます。
一般に、フレームワークはテストを実行するために XNUMX つの方法で開発できます。
- 記録して実行する テスト
- オブジェクトをローカル リポジトリに追加し、すべてのテスト ステップのスクリプトを作成します。
- すべてのテストステップに対して記述的なプログラミングを作成する
このチュートリアルでは、テストを記録して実行することによって KDF を開発します。
私たちの目的は、アプリケーションへのログイン、注文の挿入、注文のオープン、注文の削除、アプリケーションの終了など、XNUMX つの異なるテスト ケースに対して XNUMX つのテストを実行することです。 したがって、これらのテスト ケースのテスト ステップを記録し、キーワード Login、InsertOrder、OpenOrder、DeleteOrder、および CloseApp をそれぞれ使用して関数を作成します。
テスト ケース 1: アプリケーションにログインする
キーワード: ログイン ()
記録されたスクリプト:
テスト ケース 2: 注文の挿入
キーワード:挿入注文()
記録されたスクリプト:
テスト ケース 3: 注文をオープンする
キーワード:OpenOrder()
記録されたスクリプト:
テスト ケース 4: 注文を削除する
キーワード:削除注文()
記録されたスクリプト:
テスト ケース 5: アプリケーションを閉じる
キーワード:CloseApp()
記録されたスクリプト:
さまざまなテスト ケース用に作成された関数は関数ライブラリに保存され、メイン テストに関連付けられます。 メイン テストで必要なテスト ケースのキーワードを呼び出すだけで十分なので、メイン テストのドライバー スクリプトのサイズが削減されます。
この単純なフレームワークのドライバー スクリプトは次のようになります。
上記のスクリプトを実行すると、XNUMX つのテスト ケースすべての実際の結果を XNUMX つのテストから取得できます。
優位性
- それぞれのキーワードを呼び出すだけで、単一のテストでテスト ケースをいくつでも実行できます。
- すべてのWeb/Windowsオブジェクトに対して一般的な記述プログラミングを記述し、それらをキーワードとして呼び出すと、さまざまな動的アプリケーションに対して同じテストを実行するのに役立ちます。
- ドライバースクリプトのサイズを削減します。
デメリット
- 実行するテストケースの数が非常に少ない場合、これらのフレームワークの開発にかかる時間は非常に長くなります。
- 同じテストで多くのアプリケーション向けに KDF を設計する場合、ステップの記録が常に使用されるわけではありません。
ハイブリッドフレームワーク
ハイブリッドフレームワークとは、データ駆動型フレームワーク(DDF)とキーワード駆動型フレームワーク(KDF)を組み合わせたもので、複数の入力を持つ複数のテストケースを同じテスト内で実行できるものです。
この記事では、KDFで使用されているものと同じテストケースを単一のテストで実行します。すべてのテストケースのキーワードとスクリプトはKDFと同じです。ただし、TC3: 注文を開くはパラメータ化されています。そのため、このテストケースのスクリプトは、Excelファイルから注文番号を受け取り、顧客名をExcelファイルに書き込むように記述されています。
テスト ケース 1: アプリケーションにログインする
キーワード: ログイン ()
テスト ケース 2: 注文の挿入
キーワード:挿入注文()
テストケース3: 複数の注文番号の注文を開く
キーワード:OpenOrder()
説明: ここでは、DDF の開発に使用したものと同じスクリプトが使用されており、それによって数回の反復でテスト ケースが達成されます。
スクリプト:
テスト ケース 4: 注文を削除する
キーワード:削除注文()
テスト ケース 5: アプリケーションを閉じる
キーワード:CloseApp()
この簡単な方法に従うことで、TC3 のパラメータ化が実現されます。該当する場合は、他のすべてのテスト ケースも同じテストでパラメータ化できます。
上記の例は、ハイブリッドフレームワークを設計する非常にシンプルな方法です。同じフレームワークは、記述型プログラミングでも実現できます。
優位性
- ハイブリッド フレームワークで設計されたテストの実行にかかる時間は、他のフレームワークに比べて比較的短くなります。
- これは、同じテスト スイート内の特定のテスト ケースに関連付けられたすべてのテスト ケースと入力が必要な場合に使用できます。
不利益
- 異なるフレームワークの組み合わせに関する明確な知識が必要です。




















