Apache JMeter中的会话/ cookie管理


问题内容

我们在应用程序中有一个简单的性能测试流程。

  1. 我们登录
  2. 根据某些条件进行搜索
  3. 重复搜索不同的参数。

我们正在使用Jmeter进行性能测试。我们需要运行多个线程以可伸缩的方式对此进行测试。

我们目前安排的方式是:

-Test Plan
  - Thread Group
      - Cookie Manager
      - Login To application
      - Search on param 1
      - Search on param 2
  - results summary table
  - Summary report

因此,基本上,我们在计划级别存在摘要返回表和报告,而在线程组级别存在cookie管理器。

当我运行一个线程时,它运行良好且运行良好。当我将其扩展到多个线程时,下一个线程启动时,最后一个线程的会话将失效。由于新产生的线程,这将导致所有已经在运行的线程失败。

我观察到了以下结果:
1.如果运行多个线程,则结果摘要树中只有最后一个线程得到有效的响应
。2.如果运行2个线程的启动时间为10秒,这意味着每个线程都有时间完成本身,然后它们都成功运行。

据我了解,每个线程都已登录到应用程序,并且由于cookie管理器处于线程级别,因此将分别维护每个线程的会话ID的值?但是,是什么导致线程之间的会话ID值被覆盖?

任何帮助都感激不尽。


问题答案:

从jmeter文档复制:

最后一个元素是HTTP Cookie Manager。Cookie管理器应添加到所有Web测试中-否则JMeter将忽略cookie。
通过在线程组级别添加它,我们确保所有HTTP请求将共享相同的cookie。

http://jmeter.apache.org/usermanual/test_plan.html中的
“ 4.2.2逻辑控制器”一章中。

编辑
:我想您应该使用http://jmeter.apache.org/usermanual/component_reference.html#Simple_Controller将您的请求与Cookie
Manager一起分组。