性能测试执行策略(六)

性能测试目的

  • 测试系统最大处理能力
    寻找系统最大的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 @ 2021-07-14 23:27  DeyouKong  阅读(175)  评论(0编辑  收藏  举报