性能测试目的
-
- 评估当前系统得到能力
- 寻找系统性能的瓶颈,优化性能
- 评估软件是否能够满足未来的需要
什么是性能测试
-
- 使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程
性能测试的类型
基准测试
-
- 就是单用户测试,测试环境确定后,对业务模型中的重要业务做单独的测试,获取用户运行时的各项性能指标
不会单独存在,为综合场景测试提供参考依据
负载测试
-
- 通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能够承受的最大负载量的测试
找出极限负载量
稳定性测试
-
- 服务器在稳定运行的情况下(正常负载)进行长时间(1天-1周)的测试,并最终保证服务器能满足线上业务需求
像轮胎在正常磨耗的情况下,测试的稳定性
压力测试
-
- 在强负载下的测试,查看系统在峰值情况下是否有功能隐患,系统是否具有良好的容错能力和可恢复能力
- 两种情况:1.极限负载情况下(超过最大负载)导致系统崩溃的破坏性压力测试
2.高负载下的长时间的稳定性压力测试
像大坝在使用之前进行评估最大的负载
并发测试
-
- 在极短的时间内,发送大量请求,来验证服务器对并发的处理能力
性能指标
响应时间
-
- 用户从客户端发起一个请求开始,到客户端接收到从服务器返回的结果,整个过程所耗费的时间
- 响应时间的过程:客户端发送给服务器的网络传输时间---应用程序对请求的处理时间---应用服务器发给数据 库的网络传输时间---数据库处理时间---数据库将结果返回给应用服务器的网络传输时间---应用程序对返回数据的处理时间---应用服务器返回给客户端的网络传输时间
并发用户数
-
- 某一时刻同时向服务器发送请求的用户数
吞吐量
-
- 单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力
- 技术角度看的单位:每秒查询数(qps):控制服务器每秒处理的指定请求的数量
每秒事务数(tps):控制服务器每秒处理的事务请求的数量
点击数
-
- 客户端向服务端发送请求时,所有的页面资源元素的请求总数量
- 只有web项目才有此指标
错误率
-
- 系统在负载情况下,失败业务的概率。
- 错误率 = (失败业务数/业务总数)*100%
资源利用率
- 系统各种资源的使用情况,一般用”资源的使用量/总的资源可用量x100%“形成资源利用率的数据
性能测试流程
- 性能需求分析
-
- 明确被测系统(熟悉被测系统的业务功能和技术架构),测试内容(使用频率较高的关键业务功能,逻辑复杂度高和数据量大的业务),测试策略(负载测试,稳定性测试。。。等方法),测试指标
- 测试计划和方案
-
- 测什么,谁来测,怎么测
- 测试用例设计
- 性能测试执行
-
- 建立测试环境(与用户的实际环境一致,所以可以要求运维和开发协助完成)
- 编写测试脚本
- 性能测试监控
- 执行测试脚本(执行前,保证脚本都调试通过)
- 性能分析和调优
-
- 测试人员经过对结果的分析后,如不符合性能需求,则提出性能bug,然后由开发人员进行后续的调优
- 测试报告总结