zoukankan      html  css  js  c++  java
  • 性能测试执行策略(六)

    性能测试目的

    • 测试系统最大处理能力
      寻找系统最大的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>
    ...
    
  • 相关阅读:
    sqlserver和Oracle内部的错误数据修复(DBCC、DBMS_REPAIR)
    通过Oracle补充日志,找到锁阻塞源头的SQL
    禁用sqlserver的锁升级
    [转]SQLServer2008日志文件无法收缩处理方法
    Oracle警告、跟踪文件(10046、死锁等跟踪)
    dbms_stats包更新、导出、导入、锁定统计信息
    BulkCopy频繁执行产生的性能问题
    Oracle表空间不足
    组合索引字段顺序引发的死锁问题
    如何清除某条SQL的执行计划
  • 原文地址:https://www.cnblogs.com/DeryKong/p/15013495.html
Copyright © 2011-2022 走看看