最近做项目的时候,需要有个并发的性能测试,但是性能测试团队又没有资源,没办法,只能自己动手,丰衣足食了,网上查了一下,发现除了 LoadRunner以外,微软测试团队开发的web application stress也是个不错的性能测试工具。怎么用这里就不说了,主要讲一下在测试之前,设置的有关参数的意思以及测试以后,这个工具的reports报告中的参数的意思:
一:以下的参数是在测试之前的setting中设置的
1:“Stress level (threads)”和 “Stress multiplier(sockets perthread)” 分别设置对目标服务器的压力及负载程度的,其中Level是客户端所产生的线程数目,一个线程可以产生多个Socket并发请求,因此将两者的数值相乘,所获得的数字就是客户端同时连接的并发数(Microsoft建议不要选择超过100的Stress Level值。如果要模拟的并发连接数量超过100个,可以调整Stress multiplier或使用多个客户机。)
2:Test Run Time:故名思议,指定此次测试的时间
3:Use random delay:指定每个线程延迟的时间,以毫秒为单位,有了延迟时间,就可以更加精确的模拟具有峰值和谷值的真实环境。
4:Suspend部分,用来设定warmup 和cooldown 时间, Warmup时间就是初始化测试运行时间,在这段时间里不会收集和计算性能数据。类似 地,cooldown时间就是指定结束阶段的测试时间,也不收集数据。因为测试的开始一段时间和结束一段时间有可能与真实的情况有点差距,设定这两个不收集数据的时间可以使的测试结果更加的准确。
4:Brandwith:顾名思义,是用来模拟带宽的。
二:以下几个参数是在测试以后的reports中显示的
1:Number of hits表示此次测试的点击数,也就是发送请求的数量,
2: Requests per Second就表示每秒发送请求的数量
3:Socket Errors部分的
(1):connect表示socket连接失败的数量,
(2):Send表示socket连接时发送数据失败的数量,
(3):Recv表示socket连接时接受数据失败的数量,
(4):TimeOuts表示socket连接时超时的数量。
4:Number of threads表示同时连接的并发数,等于Stress level乘以Stress multiplier的结果。
5:Result Codes这部分中的code如果为200则表示此次测试成功,如果为400或404 ,就表示测试失败
6:Page Summary这部分的
(1):Hits表示每个url的点击数,也就是请求的次数,
(2):TTFB Avg表示每次请求的时候,从第一个字节发送到服务端到从服务端接受第一个字节的平均间隔时间,以毫秒为单位
(3):TTLB Avg表示每次请求的时候,从最后一个字节发送到服务端到从服务端接受最后一个字节的平均间隔时间,以毫秒为单位
三:另外还有一些需要注意的地方就是:
1:测试需要署名登录的Web站点时,WAS提供一个特性叫做Users ,可用于存储多个用户的用户名,密码和cookie信息。
当 一个测试开始时,所有的用户被分配到给定压力系数设置的各线程中。当请求开始时,每个线程使用从与该线程连接的共享池中获得的用户名,密码,和 cookie。如果WAS配置的用户数比线程少,一些线程就会没有用户—所有的署名登录页面会登录取失败,任何与cookies的交互会被禁止。所以,当 测试需要个人认证的网站时,拥有的用户数比线程多是很重要的。对于可以在WAS中创建的用户数没有硬性的规定和限制。然而,因为每个用户都会需要一定的内存和资源,所以如果使用大量的用户,将会使你的测试启动和停止时间更长些。