目录
1.性能测试的概念
1.1什么是性能
- 时间:系统处理用户请求的响应时间;
- 资源:系统运行过程中,系统资源的消耗情况;
1.2什么是性能测试
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。
1.3性能测试的目的
- 评估当前系统能力;
- 寻找性能瓶颈,优化性能;
- 评估软件是否能够满足未来的需要;
2.性能测试的策略
2.1基准测试
- 狭义上讲:就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。
- 广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
2.2负载测试
- 通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能够承受的最大负载量的测试。
2.3稳定性测试
- 在服务器稳定运行 (用户正常的业务负载下) 的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。
2.4压力测试
- 在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力。
2.5并发测试
- 并发测试(绝对并发):是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。
3.性能测试的指标
3.1响应时间
- 响应时间:指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。
3.2并发数
- 并发(用户)数:某一时刻同时向服务器发送请求的用户数。
3.3吞吐量
- 吞吐量 (Throughput): 指的是单位时间内处理的客户端请求数量直接体现软件系统的性能承载能力。
3.3.1吞吐量--QPS
- QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求的数量。
3.3.2吞吐量-TPS
TPS(Transactions Per Second)每秒事务数: 即控制服务器每秒处理的事务请求的数量。
3.4点击数
- 点击数:指客户端向服务端发送请求时,所有的页面资源无素(如:图片、链接、框架css、js等)的请求总数量。
3.5错误率
- 错误率:指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%。
备注:错误率不是功能随机bug,一般要求系统的错误率无限接近于0。
3.6资源使用率
- 资源使用率:是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量x100%”形成资源利用率的数据。
备注:根据经验,资源指标通常要求:
(1)CPU不高于75%-85%
(2)内存不高于80%
(3)磁盘IO不高于90%
(4)网络不高于80%
4.性能测试流程
4.1性能测试流程
性能测试需求分析-->性能测试计划及方案-->性能测试用例设计-->性能测试执行-->性能分析和调优-->性能测试报告总结
4.2性能测试需求分析
明确被测系统-->明确测试内容-->明确测试策略-->明确测试指标
明确被测系统:熟悉被测系统的业务功能、熟悉被测系统的技术架构;
明确测试内容:用户使用频率较高的业务、逻辑复杂度较高的业务、数据量大的业务;
明确测试策略:负载,稳定性,并发,压力.......
明确测试指标:有明确需求指标将执行结果和预期结果对比;
没有明确需求指标时,通过类似系统的对比或者对未来流量的预估;
4.3性能测试计划及方案
测什么:项目背景、测试目的、测试范围
谁来测:进度与分工、交付清单
怎么测:测试策略
4.4性能测试用例设计
4.5性能测试执行
建立测试环境:搭建性能测试环境,包括硬件环境、软件环境、网络环境
提示:一般情况下可以要求运维和开发工程师协助完成
编写测试脚本:按照性能测试用例的需要,使用性能测试工具进行编写测试脚本
提示:脚本可以自己编写,也可以使用工具来录制
性能测试监控:在脚本执行前,配置各项性能的监控指标。
如:响应时间、TPS、错误率、资源使用率 (CPU、内存、磁盘等)
执行测试脚本:设置性能运行场景,执行性能测试,并同步收集各项性能指标
提示:执行性能测试脚本前,保证脚本都调试通过
4.6性能分析和调优
说明:性能测试分析人员经过对结果的分析以后,如果不符合性能需求则会提出性能bug,然后由开发人炎进行后续的调优。
调优:开发人员为主导,数据库管理员、系统管理员、网络管理员、性能测试分析人员配合进行。
验证:性能测试人员继续进行第二轮、第三轮.....的测试,与以前的测试结果进行对比
从而确定经过调整以后系统的性能是否有提升。
4.7性能测试报告总结
测试报告是对性能测试工作的总结,为软件后续验收和交付打下基础
测试报告的主要内容:
测试工作的经过回顾
缺陷分析和调优
风险评估
性能测试结果
测试工作总结与改进