テストを実行する際、サーバーの負荷が予期したとおりでなかったり、データベースが予期したとおり更新されていないことに気付く場合があります。これらの問題は、不完全なデータ相関や誤ったデータ相関によって引き起こされる可能性があります。
データ相関の問題を識別するには、次のようにできます。
- エラー、障害、および警告の「ロギング・レベル」を「すべて」に設定し、テストを個別に、またはスケジュールに合わせて実行します。
- テストを実行したら、『テスト・ログの表示』での説明に従ってテスト・ログを開きます。
- 『プロトコル・データ・ビューでのテスト・ログの詳細の検査』での説明に従って、サーバーへの各呼び出しにより、予想したデータが戻されていることを確認します。
テスト生成中に使用されるデータ相関アルゴリズムは既知のベスト・プラクティスに基づいています。ただし、これらのベスト・プラクティスは絶えず進化しているため、自動データ相関中には、以下のようなさまざまなタイプのエラーが発生する可能性があります。
- 不十分な相関: 相関させる必要のあるテスト値が相関されていない。以下のような原因が考えられます。
- 相関させる必要のある 2 つのパラメーターの名前が異なっている。
- 値を直前の値と相関させる必要があったが、直前の値が予期していたロケーションで発生しなかった。
- パラメーターまたは値を直前のパラメーターまたは値と相関させる必要があったが、直前の値が計算された値であるために、テストで発生しなかった。
- 不必要な相関: 関連しないテスト値が相関されています。
- 誤った相関: 相関させる必要のあるテスト値が、誤って相関されています。
不十分な相関: パラメーターが異なる名前を保有しているか、予期しないロケーションで発生する
相関させる必要のある 2 つのパラメーターが異なる名前を保有する場合、自動データ相関はそれら 2 つのパラメーターが関係していることを認識しません。例えば、この要求 http://madeupsite.ibm.com?id=12345 について考えます。この要求を、id=12345 ではなく、customer_id=12345 を含むサーバー要求と相関させる必要があるとします。この場合、id パラメーターは customer_id と相関させる必要があります。
通常、データ相関はサーバーから戻された応答値を後続の要求値にリンクします。自動相関アルゴリズムは、URL および POST データ内を検索して潜在的な一致を探します。しかし、パラメーターを戻す他のスキームも使用可能です。例えば、この要求 http://madeupsite.ibm.com?id=12345 について考えます。この要求を、id=12345 ではなく名前とエンティティーのペア href name="customer_id" entity="12345" を含むサーバー応答に相関させる必要があるとします。この場合は、id パラメーターを name="customer_id" と、値 12345 を entity="12345" と相関させる必要があります。
以下に、不十分な相関の原因をさらにいくつか示します。
- Siebel が星形配列形式を使用している。標準の相関アルゴリズムでは、この形式から取得することも、この形式に置換することもできません。
- SOAP が外部の XML ファイル内の相関パラメーターを指定している。相関アルゴリズムは、外部ファイル内の相関パラメーターをテスト内のパラメーターに相関させることができません。
このような場合にデータを手動で相関させるには、以下のようにします。
- テスト・エディターで、検索またはブラウズを使用して、相関させる 2 つのパラメーターを見つけます。
- テスト内で後に出現する方のパラメーターにナビゲートして、そのパラメーターを選択します。これが置換サイトです。
- 「テスト・データ・ソース」ウィンドウで「参照」タブをクリックします。
- 参照として使用するデータ・ソースを選択し、「置換」をクリックします。
不十分な相関: パラメーターに名前がない
パラメーターまたは値を、例えば JavaScript プログラムなどで計算されるためにテストでは名前が付いていない、以前のパラメーターや値と相関させる必要が生じる場合があります。
この場合、データを正確に相関させるには、そのパラメーターまたは値を計算する方法と場所を理解し、カスタム・コード・ブロックを使用する必要があります。カスタム・コードについて詳しくは、『カスタム・コードによるテストの実行の拡張』を参照してください。
例えば、Web アドレス http://www.madeupsite.com?login_stamp=12345_Apr_11_07 を考えてみます。ここで、login_timestamp の値はログイン ID と現在の日付を連結したものです。この場合、ログイン ID と日付を連結するカスタム・コードが必要です。
別の例として、サーバーがログイン ID と日付を別のエンティティー href "customer_id=12345" Date="Apr_11_07" として戻す場合を想定します。この場合、これらのパラメーターを別の参照に置き、カスタマー ID と日付を使用する次の要求で、個別に置換することができます。
不必要な相関
自動データ相関はパターン・マッチングに基づいています。パラメーターまたはパラメーターの値は、正確に同じ、または似ている名前を持つ後続のパラメーターやパラメーターの値に相関します。しかし、パラメーターの名前が正確に同じ、またはよく似ていても、実際にはまったく関係ない場合があります。この場合最良のケースでは、不要な相関が存在してもほとんど影響がない、または不適切な負荷が多少かかる程度です。しかし最悪の場合、アプリケーションは相関を予期していないため、再生中に問題が発生します。
不必要なデータ相関を除去するには以下のようにします。
- テスト・エディターで、検索またはブラウズを使用して、相関してはならない置換サイトを見つけます。デフォルトでは、相関済みデータは紫の文字で示されています。
- 置換サイトを右クリックします。
- 「置換の除去」をクリックします。
誤った相関
データ相関を必要とするパラメーターは、テスト中に数多く現れます。例えば、ユーザーのログイン時に最初に使用されるセッション ID パラメーターは、後続のすべての要求でも使用される可能性があります。テスト内のパラメーターの複数のインスタンスが同一でない場合は、相関アルゴリズムが誤ったインスタンスを使用する可能性があります。
「HTTP テスト生成」設定では、自動データ相関の正確性と効率を最適化することができます。
- 「正確性」: パラメーターの各オカレンスは、直前のオカレンスと相関されます。これはデフォルトです。
- 「効率」: パラメーターの各オカレンスは、直前の単一のオカレンスと相関されます。
注: HTTP 要求ヘッダーの「Referer」フィールドに相関を手動で適用しない場合、「Referer」フィールドは必要に応じて自動的に相関されます。HTTP 要求ヘッダーの「Referer」フィールドに相関を手動で適用する場合、自動相関は実行されません。
「実行用の自動データ相関の最適化」が
「効率」に設定されていると、誤った相関が発生しやすくなります。誤った相関を修正するには、以下のようにします。
- テスト・エディターで、検索またはブラウズを使用して、誤って相関された値を見つけます。
- 置換サイトを右クリックします。
- 「置換の除去」をクリックします。
- 置換サイトをもう一度右クリックします。
- 「置換」をクリックし、正しいパラメーターを選択します。