以下均为个人理解,只做参考,如有错误或疑惑,请留言或私信
- 什么是性能测试?
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
- 性能测试测试的是什么?
在Web应用架构下,80%性能测试其实是针对性模拟客户端在Web服务端的接口的操作,还有20%是针对性模拟客户端操作或加载资源的测试
我们只介绍Web应用下的服务端接口测试,其他不考虑
- 性能测试核心指标
单位时间内的响应速度;
单位时间内的处理数量;
- 性能测试常用工具
LoadRunner
传统性能测试工具,收费,扩展性差
Jmeter
Java开发,开源免费,扩展性好
- 性能测试的基本目的
验证系统性能是否符合性能需求
发现系统存在的性能瓶颈
评估系统性能指标
验证系统在长时间负荷运行的稳定性
发现性能不符合需求配合研发进行性能调优
- 技术指标
VU(Virutal User)
一般称为性能测试模拟的虚拟用户数
OK/KO
成功/失败
Response Time
响应时间,一般指服务器响应客户端请求的时间
QPS(Queries-per-second)
每秒请求数,每秒系统能够处理的请求次数
TPS(Transactions-per-second)
每秒事务数,每秒系统能够处理的事务次数
RPS(Requests per second)
每秒发送请求数,RPS = 并发数/响应时间
CPU使用率
服务端系统进程CPU资源占用率
内存使用率
服务端系统进程内存资源占用率
磁盘使用率
服务端系统进程硬盘资源使用情况
TPS和QPS的区别
-事务表示客户端发起请求到收到服务端最终响应的整个过程,这是一个TPS
-而在这个事务中,为了处理第一次请求可能会引发后续多次对服务端的访问才能完成这次工作,每次访问都算一个QPS
业务指标
-平均同时在线用户数
-同时在线用户数
引用实例:
假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。
平均同时在线用户数 理论值:4004/8=200
需要产品、研发、测试三个角色来推算以业务、预估等方式推算峰值,理论平均值是下限
假设有一个OA系统,该系统有一个业务需要串行访问6个API ,每个API单次最短Response Time是100ms,每个API的Max RPS是100,每个API的timeout时间是20s。假设平均每个用户需要访问完6个API完成一个业务需要1分钟。
同时能完成业务的在线用户数: 理论值:100(60/6)=1000人/分 一分钟之内
需要1000个人完成串行业务链需求