qtp tutorial 18 data driven
私たちは、で派生する方法を理解することを通して私たちの方法を取り組んでいます 自動化フレームワーク これは、特定のテストプロジェクトに最適であり、すでに存在する特定のフレームワークを定義しています。
で使用していた例 以前のQTPフレームワークの記事 新しいGmailアカウントを作成していました。
まず、直線的に記録して再生するだけで、新しいアカウントの作成シナリオをコーディングしました。モジュール性、読みやすさ、再利用性がどのように欠けているかを見て、今後はキーワードとして参照される関数に分解しました。
=> QTPトレーニングチュートリアルシリーズについては、ここをクリックしてください
この方法でモジュール性、可読性、再利用性を実現しましたが、スクリプト自体を変更せずにさまざまな値のセットを取得できるように、プログラムをさらに堅牢にする必要がありました。
これはまさに、テストを推進するデータによって達成しようとしていることです。
学習内容:
QTPを使用したデータ駆動型自動化フレームワーク
複数のGoogleユーザーアカウントを作成することは、このフレームワークを使用して達成しようとするタスクです。
前の例では、アカウントを作成するときに、名、姓、ユーザーIDの詳細などをコードにハードコーディングしました。このスクリプトのデータ駆動の側面を実現する必要がある場合は、コードをデータから分離する必要があります。
データは、プログラム自体ではないソースから取得する必要があります。
通常、データ入力は次のいずれかになります。
- MSExcelファイル
- データベース
- テキストファイル
- XMLファイル….etc。
Excelファイルは最も頻繁に使用されるファイルです。 QTPの各アクションが独自のデータシートと統合されているという事実こそが、その理由を説明しています。
配列を取るjavaメソッド
1つのスクリプトに1つ以上のデータソースを使用できます。アクションに付属のExcelシートを使用することも、外部のExcelシートを使用することもできます。基本的に、データシートは関連する任意の外部ファイルにすることができます。
例えば、
これは、データドライブに必要なコードです。
Browser('Gmail: Email from Google').Page('GoogleAccounts').WebEdit('FirstName').Set 'swati' Browser('Gmail: Email from Google').Page('Google Accounts').WebEdit('LastName').Set 's' Browser('Gmail: Email from Google').Page('Google Accounts').WebEdit('GmailAddress').Set 'test'
現在、すべてのデータはハードコーディングされています。次に、データシートからこれらの値を取得する方法を見てみましょう。
QTPのステートメントのエキスパートビューに移動し、ステップの値列をクリックします。次のウィンドウが開きます。
パラメータオプションを選択し、パラメータの名前(これはデータシートの列名になります)を選択し、グローバルシートとローカルシートのどちらを使用するかを選択します(グローバルシートはテストのすべてのアクションで使用できますが、ローカルシートは現在のアクションに固有です)。
画面の「名前」フィールドには、QTPがデフォルト値を提供します。ユーザーには、同じままにするか、変更するかを選択できます。
(OK)をクリックすると、データテーブルに新しい列が作成されます。
名、姓、アカウントIDの3つのセットを含むデータシートは次のようになります。
パラメータ化されると、コードは次のようになります。
Browser('Gmail: Email from Google').Page('Google Accounts').WebEdit('FirstName').Set DataTable('G_First_Name', dtGlobalSheet) Browser('Gmail: Email from Google').Page('Google Accounts').WebEdit('LastName').Set DataTable('G_Last_Name', dtGlobalSheet) Browser('Gmail: Email from Google').Page('Google Accounts').WebEdit('GmailAddress').Set DataTable('gmail_address', dtGlobalSheet)
シートのデータを使用してこれらの3つのユーザーIDを作成する必要がある場合は、3回繰り返す必要があります。 反復はテスト実行に他なりません。
データが設定されたら、このコードを実行する必要がある回数、または反復回数をQTPに指示する必要があります。
これが私たちのやり方です:に行く ファイル->設定と実行 (画像をクリックすると拡大します)
LinuxがWindowsより速いのはなぜですか
上記の画面で、必要に応じて反復プロパティを設定します。
または、プログラムで反復についてQTPに指示することもできます。いつものように、これにより、より多くの制御とプログラミングスキルが可能になります。したがって、これらの方法のいずれかを選択するのは、実際にはテスターの快適レベル次第です。
データ駆動型フレームワークのコンポーネントは次のとおりです。
- テストスクリプト
- データファイル
- 共有関数型ライブラリ(存在する場合、または線形計画法である可能性がある場合)
- オブジェクトリポジトリ(ここでも、記述的プログラミングを使用してオブジェクトを作成した場合、このコンポーネントは存在しません)
テスト結果には、テストの実行ごとに「合格」または「不合格」のステータスが表示されます。
デフォルトで提供されるデータテーブルとは別に、任意の外部Excelファイルを入力シートとして使用できます。
ハイブリッドフレームワーク
上記の例では、キーワード(ユーザーが作成した関数の名前)を使用し、データ駆動型のテストを行って、異なるユーザーが同時に作成されていることを確認しました。これはハイブリッドフレームワークに他なりません。
これまでに説明した2つ以上のフレームワークの組み合わせは、ハイブリッドフレームワークです。
私の経験では、特定のプロジェクトで効果的に機能するフレームワークはありません。ハイブリッドフレームワークは、最も頻繁に使用されるものです。
フレームワークに関するいくつかの重要なポイント:
- フレームワークは、特定の状況で最適に機能するソリューションにすぎませんが、確実に従う必要のある一連のルールとして解釈されるべきではありません。それはガイドラインのようなものとして見られるべきです。
- 他にも多くのフレームワークが使用されている可能性があります。一般的なフレームワークのみをリストして説明しました。
- 命名法–さまざまな人々がさまざまな名前でフレームワークに取り組んでいます。したがって、名前がアプリケーションごとにわずかに異なる場合、それは正常です。
- ほとんどのフレームワークは、いずれか1つでもテストの目標に総合的なソリューションを提供できない場合に、互いに組み合わせて使用できます。
結論
わかりやすくするために、ここではフレームワークの概念を実際に簡略化しました。これらの記事でカバーされていない、直面しているフレームワーク関連の問題がある場合は、お知らせください。私たちは間違いなくあなたの質問に答えようとします。お気軽にご質問ください。
=> QTPトレーニングチュートリアルシリーズについては、こちらをご覧ください
推奨読書
- QTPフレームワーク-テスト自動化フレームワーク-キーワード駆動型および線形フレームワークの例-QTPチュートリアル#17
- データ駆動型テストのしくみ(QTPとSeleniumの例)
- ApachePOIを使用したSeleniumWebDriverのデータ駆動型フレームワーク
- SpockFrameworkを使用したデータ駆動型またはパラメーター化されたテスト
- TestCompleteツールを使用してデータ駆動型テストを実行する方法
- QTPチュートリアル-25以上のMicroFocus Quick Test Professional(QTP)トレーニングチュートリアル
- データマイニング:データ分析におけるプロセス、技術、および主要な問題
- 例で説明されたQTPのパラメータ化(パート1)-QTPチュートリアル#19