2017-02-28 221 views
1

我已经设置了线程数和加速时间为1/1,并且正在从data.csv中迭代我的1000条记录1800秒。 现在给出的数字,我已经设置CTT,恒定时间吞吐量到2000每分钟,我预计平均吞吐量为2000/60 = 33.3 /秒,但我得到18.7 /秒,当我增加吞吐量4000/60,我仍然得到18或19 /秒。无法增加jmeter的平均吞吐量

enter image description here

enter image description here

+1

为了获得足够的吞吐量,CTT需要足够的线程。尝试增加线程。 – Adnan

+0

什么是我的理想值,我已经设置线程/ rampup到1000/0和平均吞吐量是像70 /秒,30 /秒,29 /秒等。 – zillani

+1

线程1000是太多,我想。尽可能多地使用你需要的东西。正如你所提到的,如果达到吞吐量33.3 /秒,那么可能〜100就足够了。并尽量不要将加速时间设置为0. – Adnan

回答

2

恒吞吐量计时器不能吞吐量JMeter的强制线程执行得更快,它只能暂停线程限制的定义值。

每个JMeter线程都会尽可能快地执行采样器,但是直到上一次完成才会开始下一次迭代,所以只要使用1个线程 - 吞吐量不会高于应用程序响应时间。

另外要注意,恒吞吐量计时器是分钟水平不够准确,所以你可以而操纵“每分钟的请求”,而不是“每秒请求数”,如果您的测试短于1分钟 - 考虑使用Throughput Shaping Timer

所以我建议增加虚拟用户的数量,即50即可。

查看How to use JMeter's Constant Throughput Timer了解更多详情。

2

我猜你的应用程序平均响应时间为50毫秒左右。这意味着单线程只能执行约20次点击/秒(每次命中1秒/ 0.05秒= 20次/秒)。

你有2个解决方案:

  • 增加线程数并行发送的请求,
  • ,或让你的应用程序响应速度更快(显然更难)。

在某些时候,当您的应用程序无法处理更多负载时,您应该会看到命中/秒下降和平均响应时间增加。

下图显示了一个具有稳定响应时间和最多20个并发线程的应用程序示例。

Sample graph showing response time and hits