头像
淇迹时刻
-- : -- : --
切换主题色
-- : -- : --

第一阶段:性能测试基础入门

最后更新于:

第一阶段:性能测试基础入门

一、性能测试概念

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 测试准备阶段

  1. 需求分析:明确性能测试目标和范围
  2. 场景设计:根据业务场景设计测试用例
  3. 环境准备:搭建测试环境(硬件、软件、网络)
  4. 数据准备:准备测试数据和用户数据

3.2 测试执行阶段

  1. 脚本开发:编写性能测试脚本
  2. 压力施加:逐步增加负载,观察系统表现
  3. 数据采集:收集性能指标数据
  4. 监控分析:实时监控系统状态

3.3 测试分析阶段

  1. 数据整理:整理测试结果数据
  2. 瓶颈定位:分析性能瓶颈
  3. 优化建议:提出性能优化建议
  4. 报告撰写:编写性能测试报告

四、性能测试工具介绍

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 测试场景

场景并发用户数持续时间预期指标
正常负载1001小时响应时间<500ms
高负载5001小时响应时间<1000ms
压力测试100030分钟系统不崩溃

5.4 测试环境

项目配置
服务器XX核CPU,XXGB内存
数据库XX版本
网络XX带宽

六、实战练习

6.1 练习1:指标计算

假设有以下测试数据:

  • 总请求数:10000
  • 测试时间:60秒
  • 平均响应时间:200ms
  • P90响应时间:400ms
  • 失败请求数:50

计算:

  1. 吞吐量 = ?
  2. 错误率 = ?

6.2 练习2:场景设计

为一个电商网站设计性能测试场景:

  • 首页浏览
  • 商品搜索
  • 购物车操作
  • 下单流程

6.3 练习3:工具选择

根据以下场景选择合适的性能测试工具:

  • 需要分布式压测,支持Python脚本
  • 需要测试数据库性能
  • 需要云原生支持

下一章02-Locust压测框架.md

最新文章