1. 性能测试的概念
为什么进行性能测试?
在真实项目商用的时候, 需要大量的用户进行使用,因此需要模拟大量用户的使用场景。
什么是性能?
-时间:系统处理用户请求的响应时间
-资源:系统运行过程中, 系统资源的消耗情况
什么是性能测试?
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程
什么是性能测试的目的?
-评估当前系统能力
-寻找性能瓶颈,优化性能
-评估软件是否能够满足未来的需要
性能测试和功能测试区别:
1)功能测试:验证系统的功能需求规格。焦点:功能(正向、逆向)
2)性能测试:验证系统的业务需求场景。 焦点: 时间、资源
功能测试和性能测试有什么关系?
一般在项目中,先功能测试通过后,后进行性能测试
2. 性能测试的分类
基准测试:
狭义讲:单用户测试(单用户循环多次得到的数据)
广义:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
负载测试:
通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能够承受的最大负载量的测试
系统最大负载量达到用户要求时,系统才能正式上线使用
稳定性测试:
在服务器稳定运行(用户要求的业务负载下),进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。
系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用
压力测试:
在强负载下的测试, 查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力。
测试场景:
极限负载情况下的破坏性压力测试;(C-D之间)
高负载下的长时间的稳定性压力测试(B-C之间)
并发测试:
是指在极短的时间内,发送多个请求, 来验证服务器对并发的处理能力
应用场景: 抢红包、秒杀、抢购等。
3. 性能测试的指标
响应时间:
定义:从客户端发送请求, 到客户端收到服务器响应的总时间
组成:网络传输时间 + 服务器处理时间
吞吐量:
单位时间内处理的客户端请求数量。
单位: 每秒查询数(QPS)、每秒事务数(TPS)
QPS 和 TPS的关系:
一个事务对应一个请求时: TPS=QPS
一个事务对应n个请求时: QPS= n * TPS
点击数:
所有的页面元素(如图片、链接、框架等)的请求总数量
错误率:
高负载下,失败业务的概率
随机bug是功能的bug,先解决随机bug才能进行性能测试
资源利用率:
系统各种资源的使用情况(资源的使用量/总的资源可用量 * 100%)
常见的资源指标有哪些?
- cpu使用率:不高于75%-85%
- 内存(大小)使用率: 不高于80%
- 磁盘IO(速率):不高于90%
- 网络(速率):不高于80%
4. 性能测试的流程
需求分析:
性能测试用例:
5. 性能测试工具介绍
Loadrunner 和 jmeter对比
项目日常性能测试Jmeter够用,出商业报告优先 Loadrunner