API テスト・ステップのイベント・ハンドラ
関連:API テスト のみ
イベント・ハンドラは、テスト・フローの中のあるポイントでトリガするコード・プロセスを定義したものです。API テストでイベント・ハンドラを使用して、テストを変更または拡張します。
各 API テスト・ステップには、テスト実行の特定のポイントで実行されるイベント・ハンドラが事前に設定されています。
このイベント・ハンドラにコードを追加し(テスト・ステップでの通常の実行フローの上下)、プロパティ、パラメータ、変数、プロセスを定義することによって、テスト・フローを操作しやすくします。
注意: UFT One の起動時にアドイン・マネージャでアドインを選択しても、API のテストやイベント/カスタム・コーディングには影響しません。すべての API テスト・イベント・ハンドラは C# コードで記述されています。
テストでイベント・ハンドラを記述する場合には、コーディングの経験や知識が役立ちます。アプリケーションの言語はさまざまですが、API テスト・イベントでは必ず C# 言語と構文が使用されます。C# の詳細については、『Microsoft C# リファレンス』を参照してください。
イベント・ハンドラの使用
アプリケーションの API のテストを実行する場合、またはアプリケーション本体を実行する場合、アプリケーション・コードの定義に基づいて各ビジネス・プロセスが実行されます。
これらのプロセスはそれぞれテストのステップで表されます。アプリケーションおよびテストの機能を拡張するには、アプリケーション・コードにイベントを追加し、テストにイベント・ハンドラを追加します。
例:
Web サービス呼び出し応答を作成した後にイベント・ハンドラを追加して、次のいずれかを実行できます。
- Web サービス応答データのセキュリティを設定する
- Web サービス呼び出し応答に添付を追加する
イベント・ハンドラで使用可能なリソース
イベント・ハンドラは、アプリケーションやテスト・フロー内の特定のポイントで実行するように設計されています。イベント・ハンドラ内で使用するオブジェクト、メソッド、プロパティは、そのアプリケーションまたはテスト・フローで発生するイベントのコンテキストだけに限定されます。
つまり、イベント・ハンドラを使用する場合、プロセスやステップの出力プロパティにはアクセスできません。このような出力プロパティは、まだ実行されていないアプリケーションやテストの一部であるからです。
イベント・ハンドラをコンテキストの範囲外で使用すると、テストが使用しようとするプロパティやメソッドにアクセスできません。
例:
前のステップの応答プロパティに基づいてステップの要求プロパティを設定するには、BeforeExecuteStep という名前のイベント・ハンドラでコードを作成し、テストで使用するプロパティ値を入力します。
使用可能なプロパティとメソッドは、ステップのフローのコンテキストに含まれるオブジェクトと、ステップの直後にあるイベント・ハンドラに限定されます。
これらには、前のステップで使用可能な出力または応答プロパティと、現在のステップの入力または要求プロパティが含まれます。
標準的なイベント・ハンドラ
テスト・ステップの場合、標準的なイベント・ハンドラには、次の 3 つのタイプがあります。
- テスト・ステップの前
- テスト・ステップの後
- テスト・ステップのチェックポイント
Web サービス・ステップと SOAP 要求ステップの場合には、上記に加えて、Web サービス呼び出しのプロセスを模擬するイベント・ハンドラも使用できます。詳細については、「API テスト・イベントの構造」を参照してください。
さらに、テスト・ステップ・フロー全体がイベント・ハンドラの場合、カスタム・コード・ステップを使用できます。詳細については、「カスタム・コード・ステップ」を参照してください。
イベント・ハンドラに関する推奨事項
イベント・ハンドラを使用して、既存のテスト・ステップのすべてのプロパティ値やパラメータ値を設定するのではなく、テスト・ステップの動作を拡張します。
テスト・ステップのプロパティやパラメータ値を定義する場合は、カスタム・コードを使用するのではなく[入力]/[プロパティ]タブ([プロパティ]表示枠)にあるグリッドを使用します。
注意: この機能は、GUI テスト でのコーディングとは対照的です。GUI テストとコンポーネントでは、テストやアクションのフロー全体をコードで記述します。これに対して API のイベント・ハンドラやカスタム・コード・アクティビティは、大きなテスト・フローの一部でしかありません。
イベント・ハンドラのユース・ケースのサンプル
例: ローカル・データベースへの接続
フライト予約サービスでは、顧客情報の入力前に、コンピュータ上にあるローカル・データベースにアプリケーションを接続する必要があります(ローカル・データベースに接続するアプリケーションを模擬)。
ただし、 UFT OneAPI テストの既存の UI フレームワークでは、データベースに接続できません。
データベースにアクセスし、情報をテストにインポートするコードを組み込むには、テスト・ステップの前に実行するように設計されたイベント・ハンドラを使用します。
例: 応答ファイルからの情報の抽出
Web サービスから応答(XML 形式)を受け取った後、応答ファイルから必要な情報を抽出する必要があります。この情報は、別のテスト・ステップの入力データとして使用されます。
この場合、テスト・ステップの後にイベント・ハンドラを実行し、XML ファイルに格納されている情報の読み取りと抽出を行うように記述します。