QTPチュートリアル#18–データ駆動型およびハイブリッドフレームワークはQTPの例で説明
私たちは、特定のテストプロジェクトに最適な自動化フレームワークを導出する方法を考え出すと、また、すでに存在する特定のフレームワークを定義することによって、我々の方法を働いています。
前のQTPフレームワークの記事で使用していた例は、新しいGmailアカウントを作成していました。
まず、新しいアカウントの作成シナリオを記録して再生するだけで線形にコード化しました。 モジュール性、可読性、再利用性にどれだけ欠けているかを見て、私たちはそれをキーワードとして参照される関数に分解しました。
=> QTPトレーニングチュートリアルシリーズはこちら
この方法でモジュール性、可読性、再利用性を達成しましたが、スクリプト自体を変更することなく異なる値のセットを取ることがで
それはまさに私たちがテストを駆動するデータによって達成しようとしているものです。
QTPを使用したデータ駆動型自動化フレームワーク
複数のGoogleユーザーアカウントを作成することは、このフレームワークを使用して達成しようとする作業です。
前の例では、名、姓、ユーザー idの詳細などをハードコーディングしました。 アカウントを作成しようとしている間に私たちのコードに。 このスクリプトのデータ駆動の側面を達成する必要がある場合は、コードをデータから分離する必要があります。
データは、プログラム自体ではないソースから取得する必要があります。
通常、データ入力は何でもかまいません:
- MS Excelファイル
- データベース
- テキストファイル
- XMLファイル….など。
Excelファイルは、最も頻繁に使用されるものです。 QTPの各アクションが独自のデータシートと統合されているという事実は、なぜそうなのかを説明しています。
単一のスクリプトに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に指示する必要があります。
ここでは、それを行う方法です:ファイル->設定に移動し、実行します
上記の画面で、必要に応じて反復プロパティを設定します。
または、プログラムで反復についてQTPに指示することもできます。 いつものように、これはより多くの制御だけでなく、プログラミングのスキルを可能にします。 従ってこれらの方法のどちらかを選ぶことはテスターの慰めのレベルまで実際にあります。
データ駆動型フレームワークのコンポーネントは次のとおりです:
- テストスクリプト
- データファイル
- 共有機能ライブラリ(線形プログラムが存在する場合、または線形プログラムである可能性がある場合)。
- オブジェクトリポジトリ(オブジェクトの作成に記述プログラミングを使用した場合は、このコンポーネントは存在しません)。
テスト結果には、各テスト実行の”合格”または”失敗”ステータスが表示されます。
デフォルトで提供されるデータテーブルとは別に、外部excelファイルを入力シートとして使用できます。
Hybrid Framework
上記の例では、キーワード(ユーザーが作成した関数の名前)を使用し、データ駆動型のテストを使用して、異なるユーザーが同時に作成されることを確認しました。 これはハイブリッドフレームワークに過ぎません。
これまで議論してきた二つ以上のフレームワークの組み合わせは、ハイブリッドフレームワークです。 私の経験では、特定のプロジェクトで効果的に機能するフレームワークはありません。 ハイブリッドフレームワークは、最も頻繁に使用されるものです。
フレームワークについてのいくつかの重要なポイント:
- フレームワークは、特定の状況で最もよく機能する単なる解決策ですが、確実に従うべき一連のルールとして解釈されるべきではありません。 これは、より多くのガイドラインのように見られるべきである。
- 使用されている他の多くのフレームワークがあるかもしれませんが、私たちは一般的なものだけをリストして説明しました。
- 命名法–異なる人々が異なる名前で彼らのフレームワークに対処します。 したがって、名前があるアプリケーションから別のアプリケーションにわずかに異なる場合、それは正常です。
- ほとんどのフレームワークは、いずれかがテスト目標に万能なソリューションを提供できない場合に、互いに組み合わせて使用できます。
結論
理解を容易にするために、ここではフレームワークの概念を本当に単純化しました。
あなたが直面しているフレームワーク関連の問題があるが、これらの記事ではカバーされていない場合は、私たちに知らせてください。 私たちはあなたの質問に最も間違いなく答えようとします。 あなたの質問を投稿すること自由に感じます。
=> QTPトレーニングチュートリアルシリーズ
最終更新日:2021年11月29日