仮想ユーザーの状態に対するループの影響

実行中に予期しない状態で検査ポイントの不合格が発生した場合、この原因としてはループ内の仮想ユーザーの元の状態が維持されていないことが考えられます。 各仮想ユーザーが元の状態でループに入るようにするには、テストの HTTP オプションを変更するか、カスタム・コードを追加します。

このタスクについて

デフォルトでは、仮想ユーザーの Cookie キャッシュはテスト実行中にはリセットされません。 これは、ブラウザーの動作と一貫しています。 テストまたはスケジュールにループが含まれており、Web サーバーが 1 回目のループ反復時に Cookie を設定した場合、Cookie は後続の反復時に「記憶」されます。

ただし、特定のインスタンスでは、特定の仮想ユーザー用にキャッシュされたすべての Cookie をクリアする場合もあります。 例えば、ループの各反復を新規ユーザーとして表示する場合、キャッシュをリセットする必要があります。 このようにしないと、テストが完了しても、テスト中に設定した検査ポイントが不合格になることがあります。

Cookie キャッシュをリセットするには 2 つの方法があり、それぞれの方法で影響が異なります。

スケジュール内でのループ時、またはスケジュール内でテストの後に別のテストを実行する場合に Cookie キャッシュをリセットするには、以下の方法を使用します。 これにより、テストが入力されると常にキャッシュがリセットされます。 テストがループしない場合でも、バックツーバック・テストや Siebel テストを実行している場合はこの方法を使用してください。

  1. テスト・ナビゲーターで、テストを参照し、ダブルクリックします。 テストが開きます。
  2. 「HTTP オプション」ページで、「テスト開始時に Cookie キャッシュをクリア」を選択します。

手順

テストの全コンテンツにわたってループを設定していてループがテスト内にある場合に、あるループ反復から次のループ反復までの Cookie キャッシュをリセットするには、以下の手順でテストにカスタム・コードを追加し、API を呼び出します。

  1. 最新 Java™ ライブラリーをクラスパスに追加するテストまたはスケジュールを実行します。
  2. テストを開き、Cookie キャッシュをリセットする時点に位置するテスト・エレメントを選択します。 一般に、これはループの終わりです。
  3. 「追加」または「挿入」をクリックして、「カスタム・コード」を選択します。 「追加」は、選択したエレメント (テストまたはテスト・ページ) の最下部にカスタム・コードを追加します。 「挿入」は、選択したページまたはページ要求の上にカスタム・コードを追加します。
  4. 以下の Java import 文 Import com.ibm.rational.test.lt.execution.http.util.CookieCacheUtil; を追加します。
  5. exec メソッド内部に Java コード CookieCacheUtil.clearCookieCache(tes); を追加します。

Cookie キャッシュをリセットする追加カスタム・コードを以下の例に示します。 生成されたカスタム・コード・テンプレートに追加する行は太字で示されています。
注: Cookie の設定とクリアを行う別のカスタム・コードの例については、『仮想ユーザーに対する Cookie の設定とクリア』を参照してください。
package test;

import com.ibm.rational.test.lt.execution.http.util.CookieCacheUtil;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;

public class Class1131739398417 implements
		com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
		
	public Class1131739398417() {
	}
	public String exec(ITestExecutionServices tes, String[] args) {
		CookieCacheUtil.clearCookieCache(tes);
		return null;
	}
 }

フィードバック