专栏首页jmeter相关技术交流JMeter执行性能测试如何快速确定拐点

JMeter执行性能测试如何快速确定拐点

机会只留给那些有准备的人

改变能改变的,接受不能改变的,就是进步

 最近性能压测执行过程中,经常看到很多测试人员执行性能测试,要寻找拐点,但是效率太低,本文就介绍下,如何高效确定性能测试拐点 所谓性能测试拐点,就是指并发用户达到一定数量,平均响应时间递增,TPS不增反降,报错率递增,当前并发用户就是该测试案例的拐点

 寻找拐点的意义就是当前并发用户下,系统的平均响应时间、TPS、报错率是否满足性能要求,如果满足,该并发用户就是满足用户需求下所能承受的最大并发用户数,在去考虑并发用户是否满足系统用户需求,可以结合系统总用户数、在线用户数去判断,他们的关系大致如下: 在线用户数=系统总用户数*20% 并发用户数=在线用户数*30% 比如系统总用户数是10000,则在线用户数就是2000,并发用户数就是600

一、脚本开发

1. 首先给大家介绍如何开发高效执行的性能测试脚本,目前多数用户都是分不同并发用户单次执行,该方法执行效率低,并且不方便数据比对,如下

2. 首先在一个线程组下开发好测试案例,需要压测几次不同的并发用户下的性能,就复制多少笔线程,每个线程修改线程数、用例名称即可,如下所示,修改用例名称和线程数对应,这样生成的测试结果就会区分不同并发下同一个案例的响应时间,方便比对

3. 如果有多个接口实现了一个用例,则需要把所有接口放置在事务控制器下即可,这样就能生成一个汇总结果(统计多个请求的响应时间、tps等值)

4. 最后在测试计划记得勾选独立运行每个线程组选项,勾选该选项的意义就是依次并发执行10、20、30、50线程,直到压测结束

二、执行性能测试

1. 性能测试都是通过命令执行,不建议使用界面压测,命令如下:

jmeter -n -t rps.jmx -l summary.jtl -e -o report
2. 命令解析,summary.jtl生成的是聚合报告,report生成的是jmeter自带的html报告,里面有多种图形报表

三、执行结果分析

1. 执行完毕,双击index.html即可打开测试报告

2. 汇总结果如下,随着并发用户增加,平均响应时间在递增,报错率也在递增,TPS也随着用户数的增加而递增,到了500用户为最高点,1000并发用户反而降低

3. 查看Response Times Over Time图表可以看到响应时间随着并发用户数递增,平均响应时间一直递增,当从500并发改成1000并发时,响应时间增加幅度最大

4. 查看Transactions Per Second,从图表可以看出当并发用户从10递增到400,每秒处理的事务数一直是递增趋势,然后500-1000,开始慢慢降低

5. 查看Response Time Percentiles,由图可见,1000并发用户只有2.5%的事物响应时间小于5秒,其它都大于5秒,并且50%大于7秒,对于一个简单查询,该响应时间用户已经不能接受

6. 查看 Hits Per Second,从图表可以看出当并发用户从10递增到400的时间段,每秒请求数一直是递增趋势,然后500-1000,请求数开始不增反降

综上所述,本文测试案例执行的不同用户并发场景,拐点就是500并发用户左右,具体案例还需要结合测试结果具体分析

本文分享自微信公众号 - jmeter相关技术交流(jmeter_auto),作者:JMeter技术研究

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于dubbo服务性能调优实战(1)

    jmeter技术研究
  • 开启MYSQL慢查询日志,监控有效率问题的SQL景下的并发测试

    jmeter技术研究
  • JMeter如何实现参数名称和个数动态变化的接口请求

    2、直接在Maven 项目下开发自定义函数,然后打包,该方法、简单、高效

    jmeter技术研究
  • 「性能测试实战30讲」之问题问答整理五

    第一个问题:如何理解“服务端的并发能力”这一描述? 首先我们从数据视角来理解,可以把服务端程序用一个模型来看待,即由「网络 API 请求」所驱动的。 服务端的...

    高楼Zee
  • 对于Golang并发编程的一点感悟 原

    (adsbygoogle = window.adsbygoogle || []).push({});

    henrylee2cn
  • 姬小光前端小讲堂【第003期】

    在上一期的代码中,我们用到 h1,p,a 等标签,这些标签确定了我们想在网页中展示一个标题,一个段落,和一个链接。

    姬小光
  • HBase在滴滴出行的应用场景和最佳实践

    背景 对接业务类型 HBase是建立在Hadoop生态之上的Database,源生对离线任务支持友好,又因为LSM树是一个优秀的高吞吐数据库结构,所以同时也对接...

    CSDN技术头条
  • Mysql锁机制分析

    用户1263954
  • 一张图了解数据分析/挖掘的精髓

    导读:数据分析/挖掘最终是要服务于商业目的的,现在数据分析也有一个很“时髦”的名字——商业智能(BI)。商业智能应包含人、工具、业务知识等方面,可以用下面的公...

    钱塘数据
  • Rust 构建器(Builder)模式

    在设置属性方法的时候,通常的实现是通过消耗原本的构造器后生成新构造器,这使得如果配置构造器的过程不能连续调用属性设置方法时,必须重新捕获构造器:

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券