关于Jmeter 性能测试的局限性

发表于:2018-4-12 10:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wonder1z    来源:TesterHome

  这两天做压测,用了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 也做了同样的测试,结论是一样的。
  对于这个结论 我也很吃惊,不知道有没有漏洞,欢迎各位拍脸

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • swz1001
    2019-10-10 09:56:28

    通过响应时间反推QPS不科学吧,很有可能是因为应用做了排队处理限制导致的,而并非JM的压力打不上去?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号