(一)性能测试策略
一、负载测试
概念:通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能够承受的最大负载量的测试。
作用:系统最大负载量达到用户要求时,系统才能正式上线使用。
线程数设置 | 时间设置 | 用户数量 | 耗时时间 |
---|---|---|---|
1 | 1 | 1 | 0.26s |
10 | 1 | 10 | 1.1s |
20 | 1 | 20 | 2.1s |
30 | 1 | 30 | 崩溃 |
二、稳定性测试
概念:在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器满足线上业务需求。
作用:系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用。
Jmeter操作流程,修改时间,查看结果。
三、压力测试
概念:在强负载下的测试,查看系统在峰值情况下是否功能隐患,系统是否具有良好的容错能力和可恢复能力。
压力测试:
1、极限负载情况下导致系统崩溃的破坏性压力测试(C-D):设置线程数大一些,持续时间短一些
2、高负载下的长时间的稳定性压力测试。(B-C):设置线程数小一些,时间长一些
测试结果:
四、并发测试
并发测试(绝对并发):是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。
负载测试:相对并发:可能是按顺序出发,可能是同时。例如:大家一起刷视频。
并发测试:绝对并发:同时出发。例如:秒杀、抢红包、抢购。
五、基准测试
广义上:是一种测量和评估软件性能指标的活动,你可以再某个时刻通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后,再进行一次基准测试以确定变化对性能的影响。
(二)性能测试指标
响应时间、并发数、吞吐量、点击数、错误率、资源利用率
一、响应时间:
概念:指用户从客户端发起一个请求开始,到客户端收到从服务端返回的结果,整个过程所耗费的时间。
二、并发数
概念:某一时刻同时向服务器发送请求的用户数。
三、吞吐量
单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。
QPS(Query Per Second):每秒查询数:即控制服务器每秒处理的指定请求的数量。
TPS(Transactions Per Second):每秒事务数:即控制服务器每秒处理的事务请求的数量。
四、点击数
指客户端向服务端发送请求时,所有的页面资源元素(如:图片、链接、框架css、js等)的请求总数量
五、错误率
指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%
注意:大多系统都会要求错误率无限接近于0
错误率时一个性能指标,不是功能上的随机bug。
六、资源使用率
系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量X100%”形成资源利用率的数据。
资源指标通常要求(测试经验,非官方要求):
(1)CPU不高于75%-85%
(2)内存不高于80%
(3)磁盘IO不高于90%
(4)网络不高于80%