关于 jmeter 性能测试的 局限性

这两天做压测,用了Constant Throughput Timer 来限制QPS。

 

被压测接口最大TPS 为110左右,在QPS达到110前,QPS = TPS,而 QPS>110后,接口TPS会稳定在110。如下图
再增加线程和Timer配置都只会导致响应时间的增加,TPS 却不会增加,并且无报错(注:QPS指每秒请求数,TPS指每秒处理请求)

 

我就在想,如果接口 收到的QPS 远大于他的处理能力,理论上应该会报错,并且处理能力(TPS)下降, 那为什么 TPS会稳定呢。
我分析了下测试数据(下图),

 

以 10线程 40QPS 和 75线程 300QPS为例,
10线程时的平均响应时间 为0.113s,他可以造成10/0.113=88 的QPS,但因为Throughput Timer 配置了2400(也就是40QPS),所以他实际QPS为40
75线程时平均响应时间为0.625,对应QPS 为75/0.625=120,而我设置的Throughput Timer是18000(300QPS),所以75线程时,jmeter根本就没法提供300QPS
500线程结果和75线程 差不多,虽然 线程和 QPS配置上去了,但因为响应时间 增加,实际的QPS 只能达到120左右。
所以我最终得出结论是,jmeter 能提供的最大QPS 只能为接口TPS , 也就是说,jmeter不能提供更高的QPS 来压爆接口

另外,我用apache的AB 也做了同样的测试,结论是一样的。

对于这个结论 我也很吃惊,不知道有没有漏洞,欢迎各位拍脸

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值