【安全测试】性能测试进阶(Part2-新建测试的方法)

本系列文章对性能测试中容易混淆的概念,方法进行总结。作为性能测试进阶版本,本文假设使用者已经会使用各种仪表,不会对基本配置进行描述。

相关阅读:

【安全测试】性能测试进阶(Part1-基本概念)

【安全测试】性能测试进阶(Part3-并发测试的方

新建测试的方法

要点

  1. 单位可以使用connections/sec,simusers/sec
  2. 在希望可以测试出理论上的最大新建的时候,不能配置think time或者是latency

测试用例1:如何测试系统的最大新建

测试系统最大新建, 一般会测试两轮或多轮。

第一轮测试

第一轮的测试目的是找到一个性能的“预定值”
  1. 根据系统的CPU的性能来估计新建的最大值(可以找开发、SE帮忙,参考友商参数等)。
  2. 创建一个新的load,此时需要用到stair阶段:
Load设置:
假设预估出来的新建值为8w。我们设置整个测试的最高的新建值为8w x(1+0.2)=9.5w,其中:H1= 8w x 80%。爬坡时间根据经验设置即可(如60s,100s等)H2= 8w x 40%

设置5个阶梯,平均分配H2

设置每个小阶梯的爬坡时间t1,和H1部分的斜率一致即可(及图中所有的爬坡斜率一致)

t2为每个小阶梯的稳定时间。任意设置即可(比如15s,30s等)。

运行这个配置。
结果查看:
1、查看 “Run”下面的“load”,如果load里的Desired曲线和current曲线已经出现了明显的分离,那就说明系统最大的新建基本就是在Desired的值的水平。

2、同时查看Run-time 里面的结果。测试新建,需要重点查看的项目是HTTP transactions(用http来测试新建),tcp connections per second,响应时间和tcp的连接。
对HTTP transcations per second,重点关注失败出现的点(下图的绿色曲线变高的点)。找到这个点的时间对应的tcp的连接。基本上我们想要的最大新建就会在这个值左右。本次我们取55000。当然,此时也需要查看系统的cpu利用率,综合分析选取合适的新建值。

第二轮测试

Load的设置:
根据上一次的结果,使用5.5w来作为测试的负载高度。需要注意的是,爬坡斜率要和第一次测试保持一致。(可以有微小的差异,但不应该过大)
结果分析
结果没有失败,可以认为通过。

扩展说明

仔细分析测试结果,可以看到,新建和并发是一对相互“牵制”的关系。
我们测试到新建为5.5w时,并发很低(也就是1w左右)。(测试的设备是2800)

在后面并发测试中,可以看到,100w的并发下,新建也只能达到几千的样子(虽然测试的设备是AMD,但是也可以看出这个规律)。从性能测试的角度来说,我们要至少测试两个维度:
  • 维度1:测试到系统理论上最好的结果。要测试到最好的结果,在测试其中一项指标的时候,就应该想方设法去减少别的指标对这项指标的影响。比如希望测试到最大新建的时候,我就希望并发可以尽量少,不会影响新建的测试。在测试最大并发的时候,我有希望此时的新建可以尽量少。
所以在这样的思路下,测试出来的结果,新建多少多少,并发多少多少,不能代表在现网真实环境下,可以同时满足这样的新建和并发。
  • 维度2:从场景的角度,来测试新建和并发可能会存在相互影响下的性能情况。
例如,学校环境,需要验证在高峰时期,1w新建下,100w并发是否可以支撑得住。在这种情况,新建和并发都是需要边建立,边拆除的。这就需要使用下面并发的测试方法,来进行性能场景测试。

发表评论