JMeter负载测试

时间:2012-07-31 17:00:06

标签: jmeter load-testing stress-testing

我想通过在相同的毫秒内点击几百次来加载测试URL。我尝试了JMeter,但我可以在同一毫秒内达到2个请求。这似乎是我的机器无法足够快地创建线程的问题。该问题有解决方案吗?

4 个答案:

答案 0 :(得分:3)

在JMeter中你可以使用同步计时器将它设置为100,这样所有线程都会等到有100个可用并点击服务器:

另一个解决方案是增加线程数,以便达到此吞吐量。 在JMeter的下一个版本(2.8)中,您将能够按需创建线程(一旦需要创建)。 无论如何,在相同的毫秒内击中几百次是一个很高的负载,所以你必须正确调整JMeter。

此致

菲利普

答案 1 :(得分:1)

JMeter使用阻塞HTTP客户端,为了在100次请求的同时命中服务器,您需要JMeter中的100个线程。即使提供了这一点,您仍然没有100个内核来同时实际运行此类代码。即使您有100个内核,启动一个线程也需要一些时间,因此您必须提前启动它们并在某种障碍上同步。 JMeter不支持。

为什么你真的想要以相同的毫秒运行服务器“”?普通负载测试只是使用尽可能多的连接调用服务器,但不一定同时调用。此外,有时您甚至会在请求之间添加随机睡眠以模拟所谓的思考时间

答案 2 :(得分:1)

根据Philippe的回答,JMeter确实支持同步请求。但也许对于你想要的东西,如Apache Bench使用-c100(或将其调整为适用的任何东西)是更好的选择?这是非常基本的东西,但是开销要小得多,这可能有助于这种情况。

但我也会从Tomasz的回答中窃取并回应他的担忧,也许这不是真正接近负载测试的最佳方式。如果您正在尝试复制真实流量,那么您真的需要如此高水平的并发性吗?

答案 3 :(得分:0)

您需要使用Jmeter-server和一系列客户端计算机来生成负载。您的单台机器不足以自行生成负载。