--
:
--
:
--
第一阶段:性能测试基础入门
最后更新于:
第一阶段:性能测试基础入门
一、性能测试概念
1.1 什么是性能测试?
性能测试是通过模拟用户行为,对系统施加一定负载,验证系统在不同负载条件下的性能表现,发现性能瓶颈,评估系统的稳定性和可靠性。
1.2 性能测试分类
| 类型 | 定义 | 目的 |
|---|---|---|
| 负载测试 | 在预期负载下验证系统性能 | 确认系统是否满足预期性能指标 |
| 压力测试 | 在超过预期负载下持续施压 | 找出系统的性能极限 |
| 容量测试 | 确定系统最大处理能力 | 评估系统容量和扩展性 |
| 稳定性测试 | 在长时间稳定负载下运行 | 验证系统长期稳定性 |
| 并发测试 | 验证系统处理并发请求的能力 | 检测并发竞争问题 |
| 基准测试 | 在标准环境下建立性能基准 | 用于性能对比和优化效果评估 |
二、核心性能指标
2.1 响应时间(Response Time)
定义:从用户发起请求到收到完整响应的时间
组成:
- 网络传输时间
- 服务器处理时间
- 数据库查询时间
计算公式:响应时间 = 开始时间 - 结束时间
常用指标:
- 平均响应时间:所有请求响应时间的平均值
- P50/P90/P99响应时间:分别表示50%/90%/99%的请求在该时间内完成
- 最大响应时间:单个请求的最长响应时间
2.2 吞吐量(Throughput)
定义:单位时间内系统处理的请求数
单位:
- 请求/秒(Requests per Second, RPS)
- 事务/秒(Transactions per Second, TPS)
计算公式:吞吐量 = 总请求数 / 测试时间
2.3 并发数(Concurrency)
定义:同一时间内系统正在处理的请求数量
分类:
- 瞬时并发:某一时刻的并发请求数
- 平均并发:测试期间的平均并发数
2.4 资源利用率(Resource Utilization)
定义:系统资源的使用程度
常用指标:
- CPU利用率:系统CPU的使用百分比
- 内存利用率:系统内存的使用百分比
- 磁盘I/O:磁盘的读写速度和队列长度
- 网络带宽:网络传输的使用情况
2.5 错误率(Error Rate)
定义:请求失败的比例
计算公式:错误率 = 失败请求数 / 总请求数 × 100%
三、性能测试流程
3.1 测试准备阶段
- 需求分析:明确性能测试目标和范围
- 场景设计:根据业务场景设计测试用例
- 环境准备:搭建测试环境(硬件、软件、网络)
- 数据准备:准备测试数据和用户数据
3.2 测试执行阶段
- 脚本开发:编写性能测试脚本
- 压力施加:逐步增加负载,观察系统表现
- 数据采集:收集性能指标数据
- 监控分析:实时监控系统状态
3.3 测试分析阶段
- 数据整理:整理测试结果数据
- 瓶颈定位:分析性能瓶颈
- 优化建议:提出性能优化建议
- 报告撰写:编写性能测试报告
四、性能测试工具介绍
4.1 开源工具
| 工具 | 类型 | 特点 |
|---|---|---|
| Locust | 分布式压测框架 | Python编写,支持HTTP/WebSocket,易于扩展 |
| JMeter | 功能测试+性能测试 | 功能强大,支持多种协议,社区活跃 |
| k6 | 现代压测工具 | JavaScript编写,支持云原生,报告美观 |
| Gatling | 高性能压测工具 | Scala编写,性能优异,DSL简洁 |
4.2 商业工具
| 工具 | 特点 |
|---|---|
| LoadRunner | 业界标准,功能全面 |
| NeoLoad | 智能测试,支持DevOps |
| WebLOAD | 企业级解决方案 |
4.3 监控工具
| 工具 | 用途 |
|---|---|
| Prometheus | 系统指标监控 |
| Grafana | 可视化监控面板 |
| ELK Stack | 日志收集和分析 |
| New Relic | 应用性能监控 |
五、性能测试计划模板
5.1 测试目标
- 验证系统在XX并发用户下的响应时间不超过XX毫秒
- 验证系统的吞吐量达到XX请求/秒
- 验证系统在长时间运行下的稳定性
5.2 测试范围
- 测试模块:XX接口、XX页面
- 测试环境:生产环境/测试环境
- 测试时间:XX小时
5.3 测试场景
| 场景 | 并发用户数 | 持续时间 | 预期指标 |
|---|---|---|---|
| 正常负载 | 100 | 1小时 | 响应时间<500ms |
| 高负载 | 500 | 1小时 | 响应时间<1000ms |
| 压力测试 | 1000 | 30分钟 | 系统不崩溃 |
5.4 测试环境
| 项目 | 配置 |
|---|---|
| 服务器 | XX核CPU,XXGB内存 |
| 数据库 | XX版本 |
| 网络 | XX带宽 |
六、实战练习
6.1 练习1:指标计算
假设有以下测试数据:
- 总请求数:10000
- 测试时间:60秒
- 平均响应时间:200ms
- P90响应时间:400ms
- 失败请求数:50
计算:
- 吞吐量 = ?
- 错误率 = ?
6.2 练习2:场景设计
为一个电商网站设计性能测试场景:
- 首页浏览
- 商品搜索
- 购物车操作
- 下单流程
6.3 练习3:工具选择
根据以下场景选择合适的性能测试工具:
- 需要分布式压测,支持Python脚本
- 需要测试数据库性能
- 需要云原生支持
下一章:02-Locust压测框架.md
📡
👤
作者:
阿海
🌐
版权:
本站文章除特别声明外,均采用
CC BY-NC-SA 4.0
协议,转载请注明来自
阿海 Blog!
- 01JMeter界面详解 2026-07-11
- 02性能测试学习路线 2026-07-11
- 03JMeter线程组配置详解 2026-07-11