le# 什么是性能测试?
1. 性能测试的定义
性能测试(Performance Test)就是为了发现系统性能问题或获取系统性能相关指标而进行的测试。
一般在真实环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各项指标,最后对测试结果进行分析以确定系统的性能状况。
2. 性能测试的类型
2.1 按目标分类
| 类型 | 说明 |
|---|---|
| 性能基准测试 | 在系统标准配置下获得有关的性能指标数据,作为将来性能改进的基线(Baseline) |
| 性能验证测试 | 验证系统是否达到事先已定义的系统性能指标、能否满足系统的性能需求 |
| 性能规划测试 | 在多种特定的环境下,获得不同配置的系统性能指标,从而决定系统部署的软硬件配置选型 |
2.2 按实施方式分类
| 类型 | 说明 |
|---|---|
| 负载测试 | 模拟实际负载,测试系统在不同负载下的性能 |
| 容量测试 | 确定系统的最大负载能力 |
| 压力测试 | 模拟高负载、异常负载、极限负载,检查系统的抵抗能力 |
| 稳定性测试 | 长时间运行,检查系统的稳定性 |
压力测试(Stress Test):也称为强度测试、负载测试,是模拟实际应用的软硬件环境及用户使用过程的高负载、异常负载、极限负载、超长时间运行,以检查程序对异常情况的抵抗能力,找出性能瓶颈、不稳定或不可靠等问题。
3. 性能测试的具体指标
3.1 响应时间相关
- 系统/事务平均响应时间(Average System/Transaction Response Time)
- 连接时间(Connect Time)
- 发送时间(Sent Time)
- 处理时间(Process Time)
- 页面下载时间
3.2 吞吐量相关
- 事务/交易处理效率(Transactions per Second,==TPS==,最常用)
- 吞吐率(Throughput):每秒服务器处理的HTTP申请数
- 每秒点击次数(Hits per Second)
- 每秒SSL连接数(SSLs Per Second)
3.3 用户相关
- Page View (PV):用户向Server发送请求,Server处理这样一次真实的请求
- User View (UV):同一个用户在一个网站上的所有访问操作算一个UV
3.4 资源使用
- 内存使用
- CPU使用
4. 性能测试流程
- 需求分析 - 确定性能测试目标
- 制定测试计划 - 确定测试策略、场景、资源
- 测试环境准备 - 搭建与生产环境一致的测试环境
- 编写测试脚本 - 使用性能测试工具编写脚本
- 执行测试 - 按照场景执行性能测试
- 监控分析 - 监控各项性能指标
- 性能调优 - 发现瓶颈,优化性能
- 输出报告 - 编写性能测试报告
5. 常用性能测试工具
- LoadRunner - HP性能测试工具
- JMeter - Apache开源性能测试工具
- Locust - Python开源性能测试工具
- Gatling - Scala编写的开源性能测试工具
- k6 - 现代负载测试工具
- NeoLoad - 企业级性能测试平台
6. 性能测试场景设计
6.1 基准场景
获取系统在标准配置下的性能基线数据。
6.2 性能验证场景
验证系统是否满足预定义的性能指标。
6.3 负载测试场景
逐步增加负载,测试系统在不同负载下的表现。
6.4 压力测试场景
超出正常负载,检查系统的极限能力和容错性。
6.5 稳定性测试场景
长时间运行,检查系统的可靠性。