1. 性能测试的前提
1.1 做性能测试的必要性
- 主管部门、监管部门审查
- 设计生命财产安全
- 大型新系统
- 核心系统
- 架构调整
- 业务剧增
- 重大缺陷修复
1.2 做性能测试的可测性
- 有性能指标预期结果:根据需求文档或老板和产品提出的需求,将需求内容量化为性能指标值,即性能指标预期结果。
2. 性能测试的必备条件
2.1 独立网络
建议使用独立的直连局域网:
- 压力机和服务器之间不要通过wifi、vpn、堡垒机、跳板机来连接,因为很容易网络不稳定造成性能指标值不准确
如果使用云服务器(公有):
- 如果云服务器有内网、外网,建议使用外网,外网上行比较宽,可以基本忽略网络延迟。
2.2 独立环境
建议使用独立的测试环境,且测试环境的硬件环境最好和生产环境一致:
- 不能与功能测试共用一套环境,做性能测试时,会短时间内占用大量的系统资源,很可能会导致功能不稳定或异常
- 不能使用生产环境,做性能测试时,会使生产环境不稳定,而且会产生脏数据
- 硬件环境与生产环境一致,这样得到的性能指标值才会更接近生产环境
3. 性能测试步骤
3.1 性能测试准备
- 需求分析,熟悉业务,确定需要重点关注的点
- 明确预期性能指标值和测试范围
- 制定测试方案、测试计划、做好工作量评估
- 制定测试模型(编辑测试用例):比如负载测试,场景要如何设计
3.2 搭建性能测试环境
- 技术准备:选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集方案实现;如何监控系统资源
- 被测系统环境搭建(服务器、服务版本更新、数据库数据准备)
- 网络配置
- 创建初始数据:如测试账号
3.3 性能测试脚本开发
3.4 性能测试执行
3.5 性能测试结果分析与调优
- 分析依据:结果图表
- 分析思路:服务器硬件瓶颈>网络瓶颈>服务器os瓶颈(参数配置、数据库、web服务器)>应用瓶颈(sql语句、数据库设计、业务逻辑、算法)
- 调优
- 修改脚本或场景
- 性能回归,和之前的测试数据进行对比,是否有优化
服务器硬件瓶颈:如果性能测试环境和生产环境的硬件相差甚远,那么硬件很大程度造成了性能瓶颈,也不用去分析后面可能会导致性能瓶颈的其他原因了
3.6 性能测试报告与结果跟踪
- 性能测试报告:整理调优前后的测试数据
- 性能测试问题跟踪
- 构建持久化的性能监听平台,监听线上服务器的系统资源