【问题标题】:JMeter - Verify a Specific Cookie Value was Used?JMeter - 验证是否使用了特定的 Cookie 值?
【发布时间】: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 的值是否正确..?

任何想法或建议将不胜感激!

提前致谢,
马特

【问题讨论】:

    标签: cookies jmeter beanshell


    【解决方案1】:

    如果您尝试从 Beanshell PostProcessor 中的父采样器获取 cookie 管理器 - 您需要使用 ctx.getCurrentSampler(),而不是“采样器”未暴露在脚本变量中。

    所以只要改变这一行:

    CookieManager manager = sampler.getCookieManager();
    

     CookieManager manager = ctx.getCurrentSampler().getCookieManager();
    

    您的脚本应该开始按预期工作。

    ctxJMeterContext 实例的简写,getCurrentSampler() 方法名称是不言自明的。

    有关 Beanshell 脚本的更多信息,请查看 How to use BeanShell: JMeter's favorite built-in component 指南。

    【讨论】:

    • 谢谢 Dmitri,我会试一试!
    • 工作就像一个魅力!再次感谢德米特里!!
    猜你喜欢
    • 2015-12-02
    • 2018-01-14
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 2015-03-01
    • 2015-12-11
    • 2021-01-04
    • 2020-10-30
    相关资源
    最近更新 更多