【发布时间】:2015-04-28 16:43:11
【问题描述】:
所以在我的测试计划中,我在我的线程组中设置了一个 Cookie 管理器,它为 1 个 Cookie 设置了一个特定的 Cookie 值。我们称之为MYID。我试图找出一种方法来验证这个特定的 Cookie 的值是否用于完成这个 HTTP 请求,因为如果我将我的 MYID 设置为一个特定的值 *(这实际上告诉了要转到哪个 Web 服务器) ,对 “Server1” 说,但 Server1 已关闭、不可用等... HAProxy 应该更改此设置并将您发送到 Server2 em>。
所以基本上我想尝试确保 Cookie MYID 等于 "Server1" all通过 HTTP 请求的方式。
我正在尝试在请求运行后使用 BeanShell PostProcessor 来验证 Cookie 的值,但是当我尝试使用我在 PreProcessor 中的一些代码时,该代码在我的不同测试计划中设置了一个 cookie,我收到一条错误消息:
错误信息:
类型变量声明:尝试解析方法:getCookieManager() 未定义变量或类名:sampler
下面是我在另一个测试计划中从 BeanShell 预处理器略微修改的代码......
代码:
import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.control.CookieManager;
CookieManager manager = sampler.getCookieManager();
for (int i = 0; i < manager.getCookieCount(); i++) {
Cookie cookie = manager.get(i);
if (cookie.getName().equals("MYID")) {
if (cookie.getValue().equals("Server1")) {
log.info("OK: The Cookie contained the Correct Server Number...");
} else {
log.info("ERROR: The Cookie did NOT contain the Correct Server Number...");
}
break;
}
}
对于这个错误,我认为“采样器”对象不再可用,因为请求已经运行,或者类似的东西,但我不确定......
或者,我应该使用另一个 JMeter 对象而不是“BeanShell PostProcessor”来验证 Cookie 的值是否正确..?
任何想法或建议将不胜感激!
提前致谢,
马特
【问题讨论】: