1:性能测试相关概念


1:技术手段

  并发测试(不存在绝对并发,线程+集合点):多用户并发访问

  负载测试:通过持续不断的增加负载量(用户数),找到系统的{吞吐量,TPS(每秒事务数),并发量,响应时间,系统占用(内存,cpu)}拐点---目的拐点

        总TPS=总线程*单线程tps(运用jp@gc - Transaction Throughput vs Threads监听器)

  压力测试:

        1:稳定性压力测试

                1:维持tps高值持续一段时间运行

                     2:资源饱和(cpu饱和 )持续一段时间运行

                目的:发现内存泄露出

          2:破坏性压力测试

                极限负载情况下导致系统崩溃

          3:失效恢复测试

                用于验证部分系统发生故障时,整个系统是否能够继续让用户使用的能力

          4:容量测试

                按线上真实业务比例分配进行测试

2:稳定的环境(性能测试准入条件):

      网络:带宽稳定,规避网络高峰期

3:jmeter配置

      日志设置:log.error级别

      查看结果数勾选仅日志错误:

 4:测试方案

1:确认可能的并发数:注册用户:1万   在线用户:取注册用户的10%    并发用户

2:明确期望的响应时间和吞吐量   

    通过并发用户判断响应时间的阀值

    通过响应时间阀值判断最大并发

3:明确测试场景

  1:单接口    2:多接口业务

4:明确监控对象(全链路监控

  1:压力机:压力工具  和本机(window和linux)

  2:应用层:tps,响应时间,活动线程

  3:中间件服务层:中间件监听,JVM监听[jdk],Mysql监听,0S监听

  4:网络层:wireshark监听

5:准备工具

  wireshark  spotlight(window linux mysql)  jdk 工具(jconsole  jmc  jvisualvm)   serveragent

6.准入检测(空载)

  JVM内存  cpu利用率(10%)  磁盘和内存总量都小于30%

7:性能指标(先确保没有error在进行测试,不然没有意义)

 1:每秒请求数:RPS

    jmeter能支持多少线程

 2:每秒事务数:TPS(优化接近RPS)

 3:响应时间

    用户角度:浏览器加载   服务器响应  页面2次渲染

    压力机角度:tcp连接   服务器响应

   4: cpu:us+sy正常在50-70之间(持续)    太低:cpu浪费   太高:压力过载

 内存:使用持续高于80%是有问题  (free -m)

 load:负载持续不能高于内核总数 (top下敲1查看内核总数)

    负载0.00+0.00+0.07<2

 

相关