软件测试——性能测试总结

时间:2022-12-22 22:56:28
一、首选明确测试内容基于何种协议:
1、性能测试一般多指的服务端测试(也有客户端的一些性能测试)
2、各种协议的理解,osi七层协议、tcp/ip四层概念层
 
                           软件测试——性能测试总结
其中基于UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP
 
3、目前来说测试应用层HTTP协议的接口居多
理解协议才能更好的去测试,熟悉每个参数意义比较重要,保证自身测试不出问题
 
二、借助于测试工具测试:
1、一般工具选择:
(1)、jmeter 
(2)、loadrunner
(3)、其他开源及第三方工具
 
2、根据需求调试相应的脚本:
(1)、理解自己测试目的:常见的有负载测试、压力测试、可靠性、稳定性等测试
一般来说:
测试系统的最大承载能力,单个应用节点服务器的承载能力:因为大型项目一般来说都是分布式架构
测试系统是否符合线上业务能力:根据业务量推断出应该达到的指标,根据pv数/业务处理量 28原则推断出系统应该达到的TPS
(2)、根据测试目的设计测试策略:
(2.1)采取逐步增压的方式进行测试,一般正常测试曲线如下图:
软件测试——性能测试总结
随着线程数的增加,系统相应时间及TPS会不断增加,且TPS会达到一定的瓶颈
异常情况:可能刚开始增压,TPS就降到0,响应时间极大;可能本地压测环境资源不足等其他情况
具体情况具体分析
(2.2)采取集合点去绝对并发测试,测试系统瞬间承受能力,当然具体内部逻辑需要根据业务需求去设定
 
3、开始执行测试计划:
具体的需要明确很多东西
测试环境:内网/外网;负载机情况,排除自身资源受限;被测服务器情况
测试数据:大量的测试数据构造,确保数据不会跑到线上
测试策略:工具选型;策略设计;定时执行等
数据监控:服务器各种指标监控
 
4、分析性能指标:
重要的一些如下:以jmeter为例
软件测试——性能测试总结
 
(1)、响应时间:客户端请求到接收请求结束的时间,包含所有网络传输+各种服务器处理的时间
99%的响应时间为:按照时间分布之后,第99%的响应的最大时间
(2)、吞吐量:jmeter的吞吐量及LR的TPS(每秒请求事务数),该指标主要衡量服务器的处理能力
对于QPS、TPS自己理解就好,T事务可以是多个请求,多个Q
(3)、线程数:通过启动线程数加大压力,线程数不代表并发数;
并发数:分为系统并发数,接口的绝对并发数,这些看自己测试需求了
(4)、带宽:Received KB/s,每秒接收的字节大小,具体分析是否带宽瓶颈
 
三、服务器系统分析
1、对于被系统架构的认识:一般有反向代理服务器+应用服务器+数据库服务器+文件服务器等
2、对于接口内部逻辑处理的认识:是否内调其他服务接口,做到整个链路的理解
3、Linux系统工具的使用:top、htop、sar、vmstat、nload、pidstat、ifconfig等
4、JDK内置命令的使用:jstat、jmap、jhat、jstack、jps等
5、第三方监控工具使用:Trofile、Jprofile、PinPonit