zoukankan      html  css  js  c++  java
  • 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并发,具体案例还需要结合测试结果具体分析


    如果文章对你有帮助,欢迎关注本人公众号,公众号与本平台文章同步,方便大家查阅,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制


    QQ技术交流群:加群请输入验证信息 博客园
                  在这里插入图片描述


    微信二维码关注公众号:

    在这里插入图片描述


    关注之后,回复资源下载,即可获取本人共享的各种资源下载地址

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dkyHNY2D-1569554485737)(https://s1.51cto.com/images/blog/201908/06/2e62f8806e1dc1c391c4332ac7fd70b1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

  • 相关阅读:
    opencv图片压缩视频并读取
    python常见模块统计
    MySQL索引及优化
    web开发框架之 Tornado
    Tornado项目基本架构
    python闭包以及装饰器
    python语法糖
    python os模块
    TCP中的3次握手和4次挥手
    Python常见的数据类型方法
  • 原文地址:https://www.cnblogs.com/Jmeter-Automation/p/12730681.html
Copyright © 2011-2022 走看看