java - Apache JMeter 中的 session /cookie 管理

标签 java session cookies jmeter session-cookies

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

  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 管理器。

当我运行一个线程时,它运行良好并且完成得很好。当我将它扩展到多个线程时,一旦下一个线程开始,最后一个线程的 session 就会失效。由于新生成的线程,这会导致所有已经运行的线程都失败。

我通过观察得出了这个结果:
1.如果我运行多个线程,则只有最后一个线程在结果摘要树中得到有效响应
2.如果我运行 2 个线程,加速周期为 10 秒,这意味着每个线程都有时间完成自己,那么它们都运行成功。

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

任何帮助将不胜感激。

最佳答案

复制自 jmeter 文档:

The last element is a HTTP Cookie Manager . A Cookie Manager should be added to all web tests - otherwise JMeter will ignore cookies. By adding it at the Thread Group level, we ensure that all HTTP requests will share the same cookies.

来自 http://jmeter.apache.org/usermanual/test_plan.html 中的“4.2.2 逻辑 Controller ”一章.

编辑:我猜你应该使用 http://jmeter.apache.org/usermanual/component_reference.html#Simple_Controller将您的请求与 Cookie 管理器组合在一起。

关于java - Apache JMeter 中的 session /cookie 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1389464/

相关文章:

java - Java中的每个方法都可以重写吗

java - 使用适用于 Amazon S3 存储桶的 Java 开发工具包下载大量文件

PHP session 未设置或 PHP session 销毁

javascript - 如何设置带有过期时间的 cookie?

asp.net-mvc - 保护默认 MVC 5 应用程序的 Cookie

java - 我如何限制我的客户使用类里面选定的方法?

java - 如何处理缓存未命中 : NotFoundException, contains() 或 `if (null == result)` ?

javascript - 如何在javascript中访问存储在 session 中的hashmap?

mysql - 如何将新项目插入 session 而不覆盖以前的值 ASP/VB.NET

cookies - 像 quora 这样的网站如何在没有 cookie 的情况下跟踪用户?