我们的应用中有一个简单的性能测试流程。
- 登录
- 基于一些条件进行搜索
- 针对不同参数重复搜索。
我们使用 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. 如果我以10秒的逐渐增加时间运行2个线程(这意味着每个线程都有时间来结束自己),那么它们都能成功运行。
根据我的理解,每个线程都会登录到应用程序中,由于Cookie管理器在线程级别上,因此值将分别维护每个线程的会话ID?但是是什么导致了会话ID值之间的覆盖?
任何帮助将不胜感激。