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

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

相关阅读:

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

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

并发测试的方法

并发有4种测试方法。主要的差异点就是在并发测试的时候,是否会有连接的拆除。简单总结如下:
  • 方法1:用新建来测试并发——只有在拆除阶段的时候,会有连接的拆除。
  • 方法2:用并发的方式来测试并发,边建立边拆除——在达到期望的并发值后,开始有连接的拆除和新建。
  • 方法3:用并发的方式来测试并发,从一开始就边建立边拆除——在达到期望并发值的过程中,就有连接的拆除和建立。
  • 方法4:用并发的方式来测试并发,只建立不拆除——测试至始至终都不拆除。
方法4是最简单的。本质上和找个testcenter来打udp流来测试并发,没有什么差别。和真实环境的差异很大。测试结果自欺欺人,其实不推荐作为测试的标准方法。方法1方法2->方法3,对真实情况的模拟是逐渐加强的。在不知道系统并发值有多少,需要测试系统最大的时候,应该使用方法2。在要求不严格的情况下可以使用方法4。确认某个并发值是否可以达到的时候,可以使用方法1,方法2,方法3。在要求不严格的情况下可以使用方法4。在做某种特定场景下的性能测试,希望在一定的新建下测试并发,或者在一定的并发下测试新建时,需要使用方法3。

需要熟练掌握上述4种方法。特别是外测。

方法1:用新建来测试并发

测试的场景(用于确认某个期望的并发值是否可以达到)
这种情况下的测试场景,是希望测试到系统是否可以“以XXX新建的情况下的,达到XX的并发”。这种测试只能用于“确认”性质的测试,而不是用于希望去找到系统最大并发数的测试这里“确认”是指,比如我希望确认,系统在 1w新建的情况下,并发是否可以达到100w。而不能测试,系统最大的并发性能能够达到多少。
要点
这种情况下,如何设置Load?Load的单位选择conections/sec或者simusers/sec

测试用例2:验证系统能否在新建为3000的情况下,达到并发为100w

举例:验证系统能否在新建为3000的情况下,达到并发为100w在load里面选择conections/sec为例设置高度,及H1为3000T1 = 100w/3000 = 333.3(设置为334)T2:假设希望保持120s

T3:拆除时间,为了保证拆除可以完全成功,一般T3=T1,保险起见,T3>T1(特别是在外测的时候)

相关的action的设置:

Think time=T1+T2 = 454s

当然也可以设置Latency为454s

查看测试结果:
理论上的结果图,并发和新建结果的对应关系是:按照上述例子中配置,实测图为:在moniter上可以看到所有的结果均为successful,所以测试结果为通过,及系统能够在新建为3000的情况下,达到并发为100w。

补充说明

Load里面选择的单位,可以是connections/second ,也可以是simusers/second。如果选择simusers,就按照actions里面配置的conections的数量,来进行换算就好。比如actions里面配置了2条conections,那按照上面的例子,高度就是3000/2=1500,如下图所示:

发表评论