性能测试理论

一、概述

使用自动化测试工具,模拟用户实际使用的不同场景,对系统的性能指标进行测试 和 评估

1.1、测什么
  • 后台代码
  • 中间件(tomcat、apache、nginx)
  • 数据库、架构设计是否存在瓶颈
  • 资源(cpu、内存、磁盘、网络)利用率
1.2、目的
  • 评估当前系统能力
  • 找出系统性能(硬件、软件)瓶颈,优化性能
  • 评估软件是否能满足未来 2~3年 性能需求
1.3、性能测试和接口测试对比
  • 【性能测试理论】焦点
    • 接口功能:验证软件的功能是否符合产品需求。功能的正向和反向
    • 接口性能:验证软件是否满足 业务场景 需求。侧重点在 时间 和 资源
  • 关系
    • 二者相辅相成,缺一不可!
    • 先测功能,再测性能
二、性能测试策略
说明: 基准测试、负载测试、稳定性测试。不是测试的 3种 分类。 基准测试 是 负载、稳定性测试的前提! 一般按照 先基准,再负载,最后稳定性的顺序展开性能测试

2.1、基准测试
单用户跑业务场景,展开性能测试,关注的指标数据。给后续多用户测试,提供参考数据

2.2、负载测试
向服务器逐步加压发送请求,查看系统在满足指标的情况下,最多支持多少请求

2.3、稳定性测试
系统维持在 一定的负载(如:cpu占用率 60% ~ 80% )下,长时间运行, 测试系统工作的稳定性。一般测 `1*243*247*24

2.4、并发测试
同一时刻(极短时间内)向服务器发送同一请求。如:秒杀、抢注、抢红包!

2.5、压力测试
采用逐步加压的方式,向服务器发送请求,测试出系统性能的极限临界值

三、性能测试指标
说明:--性能指标:衡量 一次性能测试 具体某项结果的统称 性能测试 主要参考的 6 大指标: 1. 响应时间 2. 并发数 3. 吞吐量 4. 点击数 5. 错误率 6. 系统资源利用率

3.1、响应时间
指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果, 整个过程所耗费的时间 响应时间公示: 响应时间 = 网络时间 + 应用程序处理时间 (应用服务器解析时间、数据库服务器解析时间)

性能测试理论
文章图片

3.2、并发数
指同一时刻,同时访问系统发送请求的用户数据量

3.3、吞吐量
单位时间内,处理客户端请求的 数量。 可以直接体现系统的负载能力

  1. TPS (Transactions Per Second): 每秒事务数
    一个事务对应一个业务场景,可以包含多个 请求

  2. QPS (Query Per Second): 每秒查询数
    指服务器处理的 请求数

    注意:如果没有加特殊说明( 默认 一个业务中,就只有一个请求 ),通常 TPS 与 QPS 相同
3.3、点击数
只有 web 服务器,才有点击数 性能指标 点击数,不是点击网站的次数。是向系统发送请求后,收到的响应数量

3.4、错误率
  • 指系统在指定负载下,失败业务的概率。
  • 不同系统的错误率不同。一般由产品经理指定。
  • 没有指定时,一般情况下,系统的错误率为 千分之五(0.5%)
3.5、资源利用率
说明:指系统各种资源的占用情况

以下数据作为参考,具体根据自己公司的数据
  • CPU
    • 75 ~ 85% (超出此范围,有性能瓶颈)
  • 内存
    • 不超过 80% (超出有性能瓶颈)
  • 磁盘
    • 不超过 90%
  • 网络
    • 不超过 80% (超出有性能瓶颈)
四、性能测试流程
  1. 性能测试 需求分析
  2. 性能测试的计划及方案
  3. 性能测试用例
  4. 搭建测试工具环境
  5. 编写/录制 测试脚本
  6. 执行测试脚本
  7. 测试数据监控
  8. 分析和调优
  9. 编写测试报告总结

    推荐阅读