jmeter - Cookies不会在JMeter的 'Loop Controller'的迭代中重置吗?

标签 jmeter

使用Jmeter 2.12,是什么导致JMeter Loop Controller期间cookie重置失败?我已经尝试了所有可以想到的方法,但是每次循环时,仍然保留以前登录的cookie之一。它似乎并没有真正清除cookie。

这是我组合循环的方式:

Thread Group 1
  -- Loop Controller (3x)
    -- Simple Controller
      -- HTTP Header Manager
      -- HTTP Cookie Manger (with 'Clear cookies each iteration?' enabled)
      -- BeanShell sampler - with code that tries to clear all cookies
      -- HTTP /login (gets cookies and auth headers)
      -- ... various HTTP Samplers ...
      -- HTTP /logout

我尝试使用此代码添加一个Beanshell采样器(如上所示),但它似乎无能为力:
import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.HeaderManager;

CookieManager cManager = sampler.getCookieManager();
cManager.clear();
HeaderManager hManager = sampler.getHeaderManager();
hManager.clear();

最佳答案

  • 循环 Controller 不增加迭代次数。您可以通过评估vars.getIteration() Beanshell代码行对其进行测试。迭代在线程组级别上增加。要覆盖它,您可以在任何启用了Beanshell的测试元素(采样器,前置/后处理器,断言等)中调用vars.incIteration()方法
  • 用于清除cookie的Beanshell代码实际上没有任何作用,因为cManager实例未传递回采样器。您需要按以下方式修改代码:
    CookieManager cManager = sampler.getCookieManager();
    cManager.clear();
    sampler.setCookieManager(cManager);
    

    因此,sampler可能具有已清除Cookie的“cManager”实例

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

    关于jmeter - Cookies不会在JMeter的 'Loop Controller'的迭代中重置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748321/

    相关文章:

    JMeter-在每次迭代中触发不同的请求

    jmeter - 如何使用开源工具捕获进程cpu、内存利用率

    java - 参数化 JMeter HTTP 请求路径

    ssl - 无法使用 SSL RMI 启动 JMeter 4.0 客户端

    ios - JMeter - 如何将代理与安全移动页面一起使用?

    maven - JMeter 使用什么 Maven 插件? jmeter-maven-plugin 还是 chronos-jmeter-maven-plugin?

    java - Jmeter 上传录音报错

    jmeter - 找不到 JMeter html 生成的报告

    testing - 使用csv文件参数化时JMeter测试不执行脚本

    jmeter - 是否有可能获得 JMeter 中变量的平均响应时间?