我注意到当使用JMeter进行负载测试时,如果我进行单循环,我的测试平均时间相当长。如果我说Loop Count为10,我的平均时间会在早期达到峰值,然后会下降。例如,如果我使用以下设置对页面的简单get请求设置测试:
Number of Threads (users): 500
Ramp-up Period(in seconds): 5
Loop Count: 1
我的平均时间约为4秒。如果我将其更改为10个循环:
Number of Threads (users): 500
Ramp-up Period(in seconds): 5
Loop Count: 10
我的平均时间为1.4秒。
Apache的文档说明循环计数是:
此控制器的子元素的次数 每次通过测试运行迭代。
这是否可能意味着第一个请求实际上会在服务器上执行某些操作,而后续的9个请求将从缓存中提取?
Loop Count
究竟是如何使用会导致我看到的结果?
答案 0 :(得分:0)
是的,剩余的9个请求必须从缓存中提取。
循环控制器是简单的循环执行器,内部没有任何魔法 改进的性能是因为在服务器上使用缓存结果。
如果您想要尝试一件事,请使用循环控制器,但使用不同的替换参数
时间不同的请求将被发送到服务器(我知道循环控制器用于重复相同的值,但这只是为了确认缓存的效果)。
然后比较结果。
我希望这可以解决疑问:)