(一)性能压测理论基础

发布时间 2023-11-24 01:35:22作者: yangsxuan

一、什么是性能测试以及性能测试的价值和目的

1、性能测试的概念

  • 通过性能压测工具(例如:jmeter、loadrunner、PTS 等)、特定方式,对系统施加一定的压力(正常场景、异常负载以及峰值)得到各项性能指标。保证性能需求

2、价值和目的

  • 评估系统的能力(负载时间、响应时间、并发用户数等各项性能指标是否能达到上线要求)

  • 识别系统的弱点(瓶颈、弱点等)

  • 检查系统隐藏的问题(无压力时未暴露,需要在加压下暴露一些问题等)

  • 检验系统的稳定性和可靠性(在长期有压力的条件下,系统会不会崩溃、服务器是否会宕机等)

二、性能指标的理解与测算

  • 下面使用 jmeter 举例(安装 jmeter 教程:https://www.cnblogs.com/yangsxuan/p/17852789.html)

    • 虚拟用户数:线程(每一个线程就是一个虚拟用户数),线程=用户

    • 并发数:指在某一时间,一定数量的虚拟用户同时对系统的某一个功能进行交互,一般通过集合点实现

    • 事务:一个接口可以是事务,多个接口也可以是事务;一个流程可以是事务,事务代表一个完成的功能,由测试人员来决定。

    • 场景:性能测试的用例

    • RT:响应时间(Response Time)

      • 平均响应时间:例如一个接口请求100次,各有各的响应时间,可计算出平均响应时间是多少

      • 中位数:例如在请求100次中,排在第50位的响应时间是多少

      • 90%:例如在请求100次中,排在第90位的响应时间是多少

      • 95%:例如在请求100次中,排在第95位的响应时间是多少

      • 99%:例如在请求100次中,排在第99位的响应时间是多少

      • 基准测试:一个用户请求接口,一般在200-500ms、

      • 压力测试:N个用户并发请求接口,一般在2s左右(258原则)

    • TPS:(Transaction per Second)系统的重要性能指标,用于衡量系统在一定时间内能够处理的事务数(交易数),如果事务中有多个接口则需要计算

      • 计算公式:总事务数/总运行时间(s)

      • 例1:一个商品从搜索到加入购物车到支付成功整个流程算一个事务,一秒完成了该流程,则 TPS=1/1=1

      • 例2:一个系统1分钟处理了1000个事务,则 TPS=1000/60=16.7

      • 例3:2020年中最高的一天有10万笔交易,预测2023年 TPS 需要达到多少算合格,则理论 TPS=100000/(24*60*60)=1.2

        • 没有更详细的数据:根据二八定律(80%的事务在20%的时间完成),计算 TPS=(100000*0.8)/(24*60*60*0.2)=4.6

        • 有更详细的数据:5万笔交易是晚上的8点到9点完成的,计算 TPS=50000/(60*60)=13.9

        • 业务增长:30%,计算 TPS=(50000+50000*0.3)/(60*60)=18.1

    • QPS:每秒查询率(一般形容数据库)

  • 吞吐量:衡量网络成功传输的数据量,就是数据的传输率,单位:字节(byte)/秒(s)

  • 资源利用率:CPU、内存、磁盘、网络

三、性能测试流程

1、