大约 7 分钟
提示
上一阶段,我们已完整掌握Selenium Grid分布式功能测试的核心内容,包括Hub与Node的架构部署、分布式用例编写、多节点并行执行及问题排查,实现了“多节点协同、提升测试效率”的目标,为后续复杂测试工作打下坚实基础。
功能测试验证“软件能不能用”,而性能测试验证“软件用得好不好”,是企业级软件测试不可或缺的核心环节。本笔记聚焦性能测试基础理论、技能要求、工具选择及相关标准,帮助大家快速入门性能测试,为后续实操学习奠定基础。
学习目标
- 掌握性能测试的行业状况、发展趋势,建立对性能测试的整体认知;
- 理解性能测试的基本理论,明确性能测试的核心价值与应用场景;
- 了解性能测试技能树构成,明确后续学习方向;
- 掌握性能测试工具的选择方法,能结合实际场景选择合适工具;
- 熟记性能测试相关术语,掌握测试项目通过标准的确定方法。
1. 性能测试技能树
前言
定义
性能测试 是一项综合性较强的测试工作,需掌握多维度技能,核心技能树分为4个层层递进的层级:
1.1 基础层(必会)
- 计算机基础 :了解CPU、内存、磁盘、网络的工作原理(性能瓶颈的核心来源);
- 软件基础 :掌握HTTP/HTTPS协议、MySQL数据库基础、Tomcat/Nginx服务器部署基础;
- 测试基础 :熟悉软件测试基本流程、用例设计方法,具备前期所学的Selenium功能测试基础。
1.2 核心层(重点掌握)
- 性能测试理论 :掌握性能测试的定义、常见类型、基本流程及核心指标;
- 工具实操 :熟练使用至少1款主流性能测试工具(优先JMeter,开源易上手);
- 场景设计 :能根据简单业务需求,设计基础的性能测试场景(如并发场景、负载场景);
- 结果分析 :能初步解读测试报告,识别常见的性能瓶颈(如CPU过高、接口响应慢)。
1.3 进阶层(了解一下)
- 脚本开发 :能编写、优化基础的性能测试脚本(如JMeter脚本参数化、关联);
- 监控工具 :了解服务器监控工具(如Prometheus、Grafana)的基本使用;
- 调优基础 :掌握常见性能瓶颈的基础调优思路(如数据库索引优化、简单接口优化)。
1.4 高级层(了解一下)
- 分布式性能测试 :结合分布式架构,设计大规模并发测试场景;
- 全链路性能测试 :覆盖从前端到后端、数据库、服务器的全链路性能监控与测试;
- 自动化性能测试 :将性能测试集成到CI/CD流程,实现自动化触发、自动生成报告。
2. 性能测试工具
前言
定义
性能测试工具的核心作用是 模拟多用户并发、采集性能指标、生成测试报告,不同工具的特点、适用场景不同。
2.1 主流性能测试工具对比(重点记忆)
| 工具名称 | 核心特点 | 适用场景 | 优势 | 劣势 |
|---|---|---|---|---|
| JMeter(Apache) | 开源免费、功能强大、支持多协议、可扩展 | Web/APP接口测试、中小型项目并发测试 | 免费、社区活跃、插件丰富、易上手,适合中小团队 | 万级以上高并发场景性能略弱,GUI模式占用资源多 |
| LoadRunner(Micro Focus) | 商业工具、功能全面、支持多协议、监控能力强 | 大型企业级项目、复杂高并发场景 | 稳定性强、高并发支持好、监控全面 | 收费昂贵、上手难度高 |
| Locust(Python) | 开源、基于Python、轻量级、支持分布式 | 高并发场景、Python技术栈项目(有Python基础可尝试) | 轻量、高并发支持好、灵活度高 | 需掌握Python基础,GUI功能简单,报告不够直观 |
| Gatling(Scala) | 开源、基于Scala、高性能、支持实时监控 | 高并发场景、Scala/Java技术栈项目 | 性能优异、实时监控强、报告清晰 | 需掌握Scala基础,上手难度中等,社区活跃度低于JMeter |
2.2 工具选择方法
工具选择核心原则:贴合学习/项目需求、匹配自身技术能力、控制学习成本,具体步骤如下:
- 明确测试需求 :确定是接口性能测试,明确并发量(千级以内)、测试场景(如简单并发、负载测试);
- 匹配技术能力 :熟悉Java,优先选择JMeter;有Python基础可尝试Locust,无需学习复杂的商业工具;
- 考虑学习成本 :优先选择开源、社区活跃、教程丰富的工具(JMeter),降低学习难度,适合自主练习;
- 结合场景选择 :中小型项目、接口测试→ JMeter;高并发、Python技术栈 → Locust。
3. 性能测试相关术语
前言
定义
性能测试的核心是用数据说话 ,需先掌握核心术语,才能明确测试目标、判断测试是否通过。
3.1 核心术语
- 响应时间(Response Time) :从用户发起请求到收到服务器响应的总时间,单位为毫秒(ms);核心观测点:平均响应时间、90%响应时间(P90)、95%响应时间(P95)。
- 并发用户数 :同一时间向服务器发起请求的用户数量,≠ 实际在线用户数(在线用户可能不发起请求)。
- 吞吐量(Throughput) :单位时间内服务器处理的请求数量,单位为QPS(每秒查询数)、TPS(每秒事务数);核心观测点:平均吞吐量、峰值吞吐量。
- 并发量 :服务器同时处理的请求数量,与并发用户数相关但不等同(一个用户可能同时发起多个请求)。
- 资源利用率 :服务器CPU、内存、磁盘IO、网络IO的使用率,核心观测点:峰值利用率、平均利用率。
- 性能瓶颈 :导致系统性能下降的关键环节(如CPU过高、内存泄漏、数据库慢查询)。
- 负载测试 :逐步增加并发用户数,观察系统性能变化,找到系统最大处理能力。
- 压力测试 :超过系统预期负载,持续运行测试,观察系统是否崩溃、能否恢复。
- 稳定性测试 :预期负载下持续运行一段时间(如24小时),观察系统是否稳定、有无异常。
3.2 性能测试通过标准
通过标准无统一模板,需结合业务需求、用户体验、系统设计指标确定,核心原则:“满足业务正常运行,用户体验良好,系统稳定可靠”,通用标准如下:👇
3.2.1 响应时间标准(用户体验核心)
行业通用标准:
- 普通接口 (如查询、列表):平均响应时间 ≤ 500ms,P95响应时间 ≤ 1000ms
- 核心接口 (如登录):平均响应时间 ≤ 300ms,P95响应时间 ≤ 800ms
- 复杂接口 (如大数据查询):平均响应时间 ≤ 1000ms,P95响应时间 ≤ 2000ms
- 无超时情况 (响应时间 ≤ 5000ms,超时率为0)
3.2.2 吞吐量标准(系统处理能力)
参考标准: 👇
- 中小型项目(如校园系统):峰值QPS ≥ 200,平均QPS ≥ 100
- 电商类练习项目:峰值QPS ≥ 500,平均QPS ≥ 200
- 吞吐量稳定,波动范围 ≤ 10%
3.2.3 资源利用率标准(系统稳定性)
服务器资源利用率合理范围:
- CPU利用率 :峰值 ≤ 80%,平均 ≤ 60%(超过80%易出现卡顿);
- 内存利用率 :峰值 ≤ 85%,无内存泄漏(持续运行后内存不持续增长);
- 磁盘IO利用率 :峰值 ≤ 70%,无磁盘读写异常;
- 网络IO: 无明显瓶颈,带宽利用率 ≤ 75%。
3.2.4 稳定性标准(长期运行能力)
- 预期负载下,持续运行8-24小时,系统无崩溃、无异常报
- 事务成功率 ≥ 99.9%(
核心事务成功率 ≥ 99.99%) - 瞬时高负载后,系统能快速恢复正常,无持续卡顿
