协议级性能测试学习笔记(1)

一、概念:

负载测试:  关注在不同用户数量,响应的系统它的性能反应,性能指标;

 

压力测试:  关注高压力,很大的用户同时去访问给服务器施加压力,系统是怎么死的;

 

容量测试:  最大支撑的数量(用户的数量、数据库)

 

二、性能评价指标:

响应时间:从用户的角度评价系统的处理速度(2-5-10);

吞吐量:硬盘IO、网络IOCUP内存、请求处理能力、打开页面数量;

事务处理能力-TPS : 处理当事务的能力、综合处理事务的能力;

 

三、性能测试关注点:

响应时间

服务器端资源:

数据库端的资源使用情况:

最大访问用户数量

最大业务处理数量(核心业务)

系统能否支撑7*24小时运转

内存资源,线程资源能否正常回收

代码:算法、SQL 语句

稳定性,可恢复性怎么样?

 

 

四、性能测试核心原理:

 

基于协议:网络分布式架构

多线程:模拟用户负载

模拟真实场景:

 

到底并发多少虚拟用户是合理的?

1、从TPS业务量来看(在已经评估的系统上做一点增加);

2、通过Ramp Up来做预测试,通过慢慢增加来看系统的监控服务器的指标,最近服务器的最佳指标数量值,来确定并发的最大用户并发数量;来看能不能达到需求的TPS业务量。

3、针对新系统通过Ramp Up来确定并发的最大用户并发数量,等系统正式运营后去监控最大用户数和服务器的指标,一旦接近最大并发数量,想办法来优化系统。

 

 

五、性能测试场景设计

1、针对Phpwind 的基本性能测试设计:

a)每一个线程的每一次循环,均独立完成:首页登录发帖回帖点赞搜索退出,本场景方案没有什么特殊性可言,所有线程完成同样的工作。(混合场景)

 

b)每一个线程,只登录一次,然后每一次循环,只完成发帖的功能,每一个线程,最后退出。

针对特定场景进行设计(仅发帖功能),但是需要有前提,收尾。(单一场景)

 

c)不同的线程,做事情为什么要完全一样?不符合真实情况,随机场景。不同的用户,执行的操作并不完全一样。(随机场景)

 

2、如何模拟真实场景

 

a)门型场景:并发用户数突然间从0变成N,持续一段时间,又从N变成0。(适应于压力测试,目的在于检测服务器的抗压能力,如果无法抗住压力,服务器表现出来的反应)

 

b)拱型场景:并发用户数慢慢从0变成N,整个过程具备节奏感,可监控跟踪该段时间内,随着并发用户数的增加(Ramp Up),相关性能指标到的变化趋势。与之对应的,从N变成0的过程(Ramp Dowm),也应该如此。(适用于负载测试,也适用于指标分析,以及系统性能预测试

 

c)复杂场景:模拟真实服务器访问情况,不停的在Ramp Up , Duration , Ramp Dowm 之间切换,场景运行图像类似于高低起伏不同的波浪线,这类场景运用较少,因为需要大量的历史数据作为支撑,通常不适用于对未上线的系统进行设计。

 

d)混合场景:综合利用上述各类场景,进而更好的模拟真实情况,比较理想的一种模型,真实价值不大。但在LR 这款工具中,对混合场景也进行了另外的解释,就是将多个性能测试脚本混合在一起同时运行。

 

3、关于场景设计

脚本代码

脚本结构

并发设置

持续优化(先做一些预测试如登录响应时间、发帖、回帖、点赞等时间,然后在Ramp Up 的时候就可以知道运行5到10次大概需要花费多长时间)

 

 

 

 

 

4、场景在脚本层面设计:

每10秒增加5个线程,50个线程,需要100秒增加完成。

究竟多长的时间间隔用于完成Ramp Up 的过程?Ramp Up 的过程是为监控不同负载情况下的性能指标的变化趋势,所以,一定要确保时间间隔是足够的,最好让每一批Ramp Up增长的线程能够多运行一会儿,至少确保运行5-10次。那么,5-10次大概要花费多少时间?根据响应时间的长短来决定。


六、指标分析的方法:

1、Runing Vusers—AverageTransation Response Time

协议级性能测试学习笔记(1)

关联随着50虚拟用户数量的增加,平均响应时间不受影响,正常运行。

协议级性能测试学习笔记(1)

关联随着100虚拟用户数量的增加,到55个用户时响应时间开始增加,出现55个以后就可能导致系统出现瓶颈了。


2、Runing Vusers— Windows Resources


协议级性能测试学习笔记(1)

随着50虚拟用户数量的增加,CPU也在逐渐增减,最大值达到87%;


协议级性能测试学习笔记(1)

随着100虚拟用户数量的增加,CPU也在逐渐增减,当虚拟用户增加到70个,CPU达到100%;当结束的时候用户到达60个,CPU达到100%;

 

 

内容学习来源邓强老师的协议级性能测试自动化。