性能测试执行策略(六)

性能测试目的

  • 测试系统最大处理能力
    寻找系统最大的TPS,判断TPS和对应响应时间是否满足预期

  • 测试系统支持最高并发
    寻找系统最高能支持多少并发,当系统出现宕机、进程崩溃、报错率持续上升、响应时间超过可忍受范围、程序无响应等情况,即可认为系统达到了可支持的最高并发

性能测试场景

  • 先进行单接口测试
  • 再按照一定的并发比例,进行多接口混合测试
  • 最后按照混合场景比例,进行长时间稳定性测试
    注意: 同一个线程组内的接口,TPS都是一样的,故无强关联的接口分开不同的线程组

性能测试执行策略

  • 加压策略
    从小并发开始,逐步增加并发,寻找性能拐点

  • 执行策略
    试压阶段:寻找拐点,记录拐点数据
    收集数据:选择拐点前后5组数据,按照固定时间(3-5分钟)重新跑一次,记录详细数据

性能拐点

并发数 TPS 平均响应时间(ms)
10 98 100
20 176 112
30 273 116
40 345 121
50 348 153
60 342 181
70 338 221

经过梯度压测,40并发时TPS达到拐点,所以40并发是本系统的最佳并发数
最终在测试报告中,记录下20、30、40、50、60五组数据即可

小Tips

在试压过程中,需要经常对并发数进行修改,如果压测机是Linux系统,其他机器修改再上传会比较麻烦,可以通过直接修改脚本的数据来实现修改

vi XX.jmx   // 修改jmx脚本

...
 <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="插件" enabled="false">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>              // 循环次数
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">1</stringProp>        // 并发线程数
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>           // ramp_time
        <boolProp name="ThreadGroup.scheduler">false</boolProp>           // 是否启用挑度器配置
        <stringProp name="ThreadGroup.duration">60</stringProp>             // 持续时间
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
...
posted @   DeyouKong  阅读(183)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示