Cookies JMeter-验证是否使用了特定的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

所以在我的测试计划中,我在我的线程组中设置了一个Cookie管理器,它为1个Cookie设置了一个特定的Cookie值。我们把它叫做,MYID。我正试图找出一种方法来验证这个特定Cookie的值是否用于完成这个HTTP请求,因为如果我将MYID设置为一个特定的值*(这实际上告诉了要转到哪个web服务器),比如说“Server1”,但Server1已关闭、不可用等。。。HAProxy应更改此设置并将您发送到服务器2

因此,基本上我想尝试确保CookieMYID在整个HTTP请求过程中都等于“Server1”

我尝试在请求运行后使用BeanShell后处理器验证Cookie的值,但当我尝试使用预处理器中的一些代码,该预处理器在我的不同测试计划中设置Cookie时,我收到一个错误消息:

错误消息:

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脚本的更多信息,请参阅《指南》

谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!谢谢你,德米特里,我要试一试!工作得很有魅力!再次感谢德米特里!!