我在 jMeter 中模拟了以下场景:
100 个用户登录一次,每 30 秒进行一次搜索,思考时间为 5 秒。
我该如何实施?
现在我有这样的事情:
ThreadGroup(100usrs)
+-- OnceOnlyController(LogIn)
+-- LoopControler(Search)
+-- Timer(5s)
但我不知道如何在 Search 实例之间延迟 30 秒。
甚至有可能还是我必须使用一些解决方法?
任何帮助表示赞赏。
我在 jMeter 中模拟了以下场景:
100 个用户登录一次,每 30 秒进行一次搜索,思考时间为 5 秒。
我该如何实施?
现在我有这样的事情:
ThreadGroup(100usrs)
+-- OnceOnlyController(LogIn)
+-- LoopControler(Search)
+-- Timer(5s)
但我不知道如何在 Search 实例之间延迟 30 秒。
甚至有可能还是我必须使用一些解决方法?
任何帮助表示赞赏。
我认为您必须添加另一个计时器作为 LoopController 的子项:Timer(30)。您的搜索请求在该控制器的范围内,您的 30 秒计时器也应该在那里。
http://jmeter.apache.org/usermanual/component_reference.html#timers
如果您想在搜索样本之间有一个固定的延迟,无论样本的响应时间是多少,那么 Orkito 解决方案都不是正确的。
他的解决方案将在搜索样本之前添加 30 秒的延迟,因此如果搜索花费的时间比预期的多,您的请求将每 30 秒 + 搜索样本所用的时间运行一次。
如果您想在搜索样本之间有一个固定的延迟,无论样本的响应时间如何,这里都描述了解决方案:
它是法语的,但有截图和翻译服务应该可以完成这项工作。
另一个需要注意的重要点:
请注意,计时器在找到它们的范围内的每个采样器之前处理;如果同一范围内有多个定时器,则所有定时器都将在每个采样器之前处理。定时器仅与采样器一起处理。与采样器不在同一范围内的计时器根本不会被处理。要将计时器应用于单个采样器,请将计时器添加为采样器的子元素。计时器将在采样器执行之前应用。要在采样器之后应用计时器,请将其添加到下一个采样器,或者将其添加为测试操作采样器的子代。
而不是使用 Constant Timer 您应该使用Constant Throughput Timer,因为该计时器还考虑了采样时间(即每个采样的执行时间)。如果您使用常量计时器,您将在每次执行示例时产生延迟