Cookies JMeter-验证是否使用了特定的Cookie值?
所以在我的测试计划中,我在我的线程组中设置了一个Cookie管理器,它为1个Cookie设置了一个特定的Cookie值。我们把它叫做,MYID。我正试图找出一种方法来验证这个特定Cookie的值是否用于完成这个HTTP请求,因为如果我将MYID设置为一个特定的值*(这实际上告诉了要转到哪个web服务器),比如说“Server1”,但Server1已关闭、不可用等。。。HAProxy应更改此设置并将您发送到服务器2 因此,基本上我想尝试确保CookieMYID在整个HTTP请求过程中都等于“Server1” 我尝试在请求运行后使用BeanShell后处理器验证Cookie的值,但当我尝试使用预处理器中的一些代码,该预处理器在我的不同测试计划中设置Cookie时,我收到一个错误消息: 错误消息:Cookies JMeter-验证是否使用了特定的Cookie值?,cookies,jmeter,beanshell,Cookies,Jmeter,Beanshell,所以在我的测试计划中,我在我的线程组中设置了一个Cookie管理器,它为1个Cookie设置了一个特定的Cookie值。我们把它叫做,MYID。我正试图找出一种方法来验证这个特定Cookie的值是否用于完成这个HTTP请求,因为如果我将MYID设置为一个特定的值*(这实际上告诉了要转到哪个web服务器),比如说“Server1”,但Server1已关闭、不可用等。。。HAProxy应更改此设置并将您发送到服务器2 因此,基本上我想尝试确保CookieMYID在整个HTTP请求过程中都等于“Ser
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;
}
}
类型化变量声明:尝试解析未定义变量或类名为sampler的方法:getCookieManager()
下面是我在另一个测试计划中从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;
}
}
import org.apache.jmeter.protocol.http.control.Cookie;
导入org.apache.jmeter.protocol.http.control.CookieManager;
CookieManager=sampler.getCookieManager();
for(int i=0;i
对于这个错误,我认为“sampler”对象不再可用,因为请求已经运行了,或者类似的东西,但是我不确定
或者,为了验证Cookie的值是否正确,是否应该使用另一个JMeter对象而不是“BeanShell后处理器”
如有任何想法或建议,将不胜感激
提前感谢,Matt如果您试图从Beanshell后处理器中的父采样器获取cookie manager,则需要使用ctx.getCurrentSampler(),而不是“采样器”,因为它未在脚本变量中公开 所以只要改变这一行:
CookieManager manager = sampler.getCookieManager();
到
您的脚本应该按照预期开始工作
ctx
是实例的缩写,getCurrentSampler()
方法名称是不言自明的
有关Beanshell脚本的更多信息,请参阅《指南》 如果您试图从Beanshell后处理器中的父采样器获取cookie manager-您需要使用ctx.getCurrentSampler(),而不是“采样器”,因为它未在脚本变量中公开 所以只要改变这一行:
CookieManager manager = sampler.getCookieManager();
到
您的脚本应该按照预期开始工作
ctx
是实例的缩写,getCurrentSampler()
方法名称是不言自明的
有关Beanshell脚本的更多信息,请参阅《指南》 如果您试图从Beanshell后处理器中的父采样器获取cookie manager-您需要使用ctx.getCurrentSampler(),而不是“采样器”,因为它未在脚本变量中公开 所以只要改变这一行:
CookieManager manager = sampler.getCookieManager();
到
您的脚本应该按照预期开始工作
ctx
是实例的缩写,getCurrentSampler()
方法名称是不言自明的
有关Beanshell脚本的更多信息,请参阅《指南》 如果您试图从Beanshell后处理器中的父采样器获取cookie manager-您需要使用ctx.getCurrentSampler(),而不是“采样器”,因为它未在脚本变量中公开 所以只要改变这一行:
CookieManager manager = sampler.getCookieManager();
到
您的脚本应该按照预期开始工作
ctx
是实例的缩写,getCurrentSampler()
方法名称是不言自明的
有关Beanshell脚本的更多信息,请参阅《指南》 谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!