清除在 jmeter 中为循环控制器的每次迭代创建的会话

clear sessions created in jmeter for each iternation of the loop controller

我有一个如下所示的 jmeter 树。

ThreadGroup(20users,1 loop count)
cookie manager
launch
login
Loop controller(30times)
    https request1
          sessionID-1
    https request2
          sessionID-2   
    https request2

Cookie 管理器在每次用户迭代之前清除 cookie 值(线程循环计数值)(- 如果我错了请纠正我),而不是 jmeter 中循环控制器元素每次迭代期间的 cookie 值。

因此我的要求是,我想在进入下一次迭代之前清除循环控制器组件每次迭代期间创建的所有会话。

更新:我只想清除在循环内创建的那些会话 controller.not 在循环控制器(启动和登录)之上创建的会话应该在 https request1 中使用。

并且在 https 请求 1 中创建的会话用于在同一个循环控制器中的 https 请求 4。

  1. JSR223 PreProcessor 添加为 https request1
  2. 的子项
  3. 将以下代码放入"Script"区域:

    sampler.getCookieManager().clear()
    
  4. 就是这样,您将在每个 Loop Controller 的迭代中获得清晰的会话。

您可能还对 Modifying Cookies in JMeter with Groovy 文章感兴趣,以了解使用 Groovy 脚本

还可以对 cookie 做些什么

您可以在 运行 time.But 期间清除本地存储的会话值,除非您终止连接,否则您实际上无法断开与数据库的连接(例如)。如果您使用上述答案清除会话,这些会话将在设置的超时之前打开,但是您将无法访问这些会话,因为您已从本地存储中清除。

所以当您从应用程序注销时,您必须找到会话关闭请求。您可以使用该请求并在末尾包含在您的 jmeter 脚本中。