循环如何影响虚拟用户的状态

如果验证点在运行期间意外失败,那么原因可能是循环中的虚拟用户没有维持其原始状态。要使每个虚拟用户能够在原始状态中进入循环,可以修改测试的 HTTP 选项或添加定制代码。

关于此任务

缺省情况下,在测试运行期间不会重置虚拟用户的 cookie 高速缓存。这与浏览器的行为一致。如果测试或调度包含循环,并且 Web 服务器在循环的第一个迭代期间设置 cookie,那么在后续迭代时会“记住”该 cookie。

但是,在某些实例中,您可能希望清除为特定虚拟用户高速缓存的所有 cookie。例如,如果您希望循环的每个迭代都显示为新用户,那么必须重置高速缓存。如果不重置,那么尽管测试完成,在测试中所设置的验证点仍然可能失败。

重置 cookie 高速缓存有两种方法,每种方法具有不同效果。

要在调度中进行循环时或在调度中一个测试接着另一个测试时重置 cookie 高速缓存,请使用以下方法。只要进入了测试,此方法便会重置高速缓存。即使测试不循环,如果运行的是一个接一个的测试或 Siebel 测试,也请使用此方法。

  1. 在“测试导航器”中,浏览以找到测试并双击该测试。测试将打开。
  2. 在“HTTP 选项”页面上,选择测试启动时清除 cookie 高速缓存

过程

如果对测试的整个内容进行循环,而该循环目前正在测试中进行,要在前后两次循环迭代之间重置 cookie 高速缓存,请向测试中添加定制代码并调用 API,如下所示:

  1. 运行测试或调度以将当前 Java™ 库添加到类路径。
  2. 打开测试并选择位于要重置 cookie 高速缓存的位置的测试元素。通常,这位于循环的结尾。
  3. 单击添加插入并选择定制代码 添加会将定制代码附加到所选元素(测试或测试页面)的底部。插入会将定制代码添加到所选页面或页面请求的上方。
  4. 添加以下 Java 导入语句: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;
	}
 }

反馈