2013-03-16 100 views
3

我有一个带线程组和Cookie管理器的JMeter加载测试脚本。JMeter:为单个用户触发多个并发HTTP请求

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

然后一个循环控制器触发一个交错采样器,它交替在将查询发送到服务器的几个HTTP采样器之间交替。

现在我希望交错控制器的一个选项为同一用户发出两个或三个并发请求,并在每个请求中发送相同的cookie。
我该怎么做?

回答

1

我们最终什么事做:

  • 一个BeanShell的采样器检索来自登录请求后cookie管理器的SessionID cookie值,并将其设置在一个变量。
  • 另一个beanshell采样器作为一个孩子添加到交错采样器。这个beanshell采样器从变量中获取cookie。然后它为每个请求启动一个新线程,该线程使用cookie值触发HTTP请求,并检查结果。原始的beanshell线程加入所有已启动的线程并合并结果。

这对代码来说很麻烦。你能想到一个更好的方法来做到这一点?

2

如果你需要同时下载一个页面的资源,那么在http sampler gui底部有这个复选框。但我认为你已经知道,所以你做的似乎很好。

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

是模拟Ajax调用还是其他?

+0

我知道资源检索,是的,甚至考虑使用img标签中的查询下载伪造的html页面,以便下载页面将触发同时查询:)我们正在模拟富客户机 - 服务器和服务器到服务器调用数据检索服务。感谢您使用groovy的提示,将看看! – flup 2013-03-21 07:31:34

+0

通过深思熟虑的回应,感谢赏金。 – flup 2013-03-25 17:51:38

+0

谢谢,尽管你至少有一半是应得的:) – 2013-03-25 20:10:20