Concurrency JMeter:为单个用户触发多个并发HTTP请求

Concurrency JMeter:为单个用户触发多个并发HTTP请求,concurrency,automated-tests,jmeter,session-cookies,Concurrency,Automated Tests,Jmeter,Session Cookies,我有一个带有线程组和Cookie管理器的JMeter负载测试脚本 线程组中的用户首先使用HTTP采样器登录以获取cookie 然后,循环控制器触发一个交织取样器,该取样器在向服务器发出查询的两个HTTP取样器之间交替进行 现在,我希望interleave控制器的其中一个选项能够为同一用户触发两个或三个并发请求,在每个请求中发送相同的cookie。 我该怎么做呢?我们最终做了什么: beanshell采样器在登录请求之后从cookie管理器检索sessionID cookie值,并将其设置在变量

我有一个带有线程组和Cookie管理器的JMeter负载测试脚本

线程组中的用户首先使用HTTP采样器登录以获取cookie

然后,循环控制器触发一个交织取样器,该取样器在向服务器发出查询的两个HTTP取样器之间交替进行

现在,我希望interleave控制器的其中一个选项能够为同一用户触发两个或三个并发请求,在每个请求中发送相同的cookie。

我该怎么做呢?

我们最终做了什么:

  • beanshell采样器在登录请求之后从cookie管理器检索sessionID cookie值,并将其设置在变量中
  • 另一个beanshell采样器作为子级添加到交错采样器。此beanshell采样器从变量中检索cookie。然后为每个请求启动一个新线程,该线程使用cookie值触发HTTP请求,并检查结果。原始beanshell线程连接所有启动的线程并合并结果

这对于编写代码来说相当麻烦。你能想出一个更好的方法吗?

如果你需要同时下载一个页面的资源,那么在http采样器gui的底部有相应的复选框。但我想你已经知道了,所以你所做的似乎很好

更好的性能变体是使用Groovy+JSR223(添加缓存键以便编译只发生一次)


是模拟Ajax调用还是其他什么?

我知道资源检索,是的,甚至考虑过下载一个带有img标记的查询的假html页面,这样下载页面就会触发同步查询:)我们在数据检索服务上模拟富客户端-服务器和服务器对服务器的调用。感谢您提供使用groovy的提示,请看!奖励赏金以感谢深思熟虑的回应。谢谢,尽管你至少应得一半的赏金:)