我正在努力了解JMeter的基础知识。我有一个“plus1”Java servlet,它在请求参数中添加一个并返回结果,因此它是一个快速测试servlet,因此我可以理解负载测试。
这是我的测试计划:
Thread Group: 1 thread, ramp up 1 s, loop count 10000
HTTP Request to localhost
Graph Results
Summary Report
运行此操作时,摘要报告显示吞吐量数量为200 /秒左右。
在测试计划中没有控制器的关键问题是JMeter运行测试计划(发送单个请求)并在循环之前等待响应?
当我为请求引入更加计算密集的页面时,吞吐量数量会下降,如我所料。
答案 0 :(得分:4)
简而言之,是的。
有一个论点是让一个采样器发出请求而不是等待响应,但它是一个边缘情况。在大多数情况下,您需要测试工具等待查看发生的情况并进行验证。它也更加真实,大多数用户会等待回复,事实上他们通常不得不在进行后续调用之前。
如果你想运行容量测试,那么我认为最好的方法是将负载分散到多个线程上并实际限制每个线程的吞吐量 - 你可以使用Constant Throughput Controller来实现。例如。你可以有500个线程,每个线程以每分钟60个请求运行,这将使总负载达到500 reqs / sec。这样,您的测试负载是可预测且稳定的 - 它不会与服务器的响应速度相关联。注意。对于多线程,您可能需要一段时间,您可能会发现必须将测试分散到多台计算机上(如果您正在进行谷歌搜索,则称为“分布式测试”)。