51Testing软件测试网3Lb~jo%o2p自己开发Socket性能测试工具的设想51Testing软件测试网U_
~&Jo
51Testing软件测试网:Q
{O/f$^最近接到一个项目,是对一个AppServer进行性能测试,使用lr进行了winsocket脚本的录制,一切搞定后,一运行发现问题,lr的试用版只能支持100个client,我要测试的在线虚拟用户数要达到3000,难道我搞30个负载生成器??无奈,放弃用lr,和开发商量了一下,自己写测试程序吧。51Testing软件测试网q[!Cs4Okr
#lDp;[ry2w0目前实现的功能:51Testing软件测试网q L2[7@1xX
1、Socket连接的建立51Testing软件测试网?yA9h!U7bIz
2、多线程51Testing软件测试网w6X'G:V6y |&R
3、结果的验证51Testing软件测试网y2U(u0B7V5xu3V^
4、性能的部分统计51Testing软件测试网1^ \)y#{Z3Tp A
5、程序的log输出
iFE(i_'J%{0(cB$BH$LZC0通讯协议部分是开发协助搞定的(一般的App程序都用自己写的协议),加密以及报文格式等都由开发提供,我负责的只是多线程的实现以及结果的验证和分析(当然没有实现像controllor那样的监视图),我只是把数据记录下来并且保存到log里,然后使用perl或命令行来分析log。
z4k4S?-|jzD051Testing软件测试网4u3S:R U+i"z9q遇到的难点:51Testing软件测试网&hd u([-xb dy1yn
1、线程中的执行结果统计51Testing软件测试网O\4jR+HD
2、收发函数的实现
}A k {n}{(K03、如何实现线程的同步
$Bd`FF c-Y`051Testing软件测试网(?+O UfX#GL#M目前写了1000行出头(用Delphi7,很多类都是环境自带的,比较方便),发现实现的功能只够本次测试使用的,如果下次再进行类似的测试,仍需要大改特改,因此萌生了自己写一个可以通过配置与定义,可以实现大部分socket测试需要的测试工具。
*TH:^n3yW0)kb
Y8Hi0这个工具应包括如下功能:
O5e+r6_0n*_01、自定义报文内容51Testing软件测试网(MX%?U3wG!D(X
2、自定义加密解密算法
%U&K7vz{ A,H03、自定义通讯过程51Testing软件测试网H4`:~J }D$E
4、通过时间点来控制线程代码的执行与测试结果的输出51Testing软件测试网2j#a.j_CdK
RS3E
5、完善的结果记录功能51Testing软件测试网|E4x-J*U(?,bU&t
6、测试报告的自动生成51Testing软件测试网KU7kUb,L6k
7、多负载生成的实现(调度,数据收集),类似controllor
D#Bci8ybg4OVaj08、较为完善的场景设计
E3sc:I%hp8r0…………51Testing软件测试网,^fy$|liS
%W0O$o'd0Qe_"G0我水平自认为不怎么样,边学边写吧,呵呵。
)G0@1L"pq$hP-RG E051Testing软件测试网\#U*x w-@"sC另外交流2个心得:51Testing软件测试网2M]Q)d;{,_
1、自己写测试工具测试完成后,测试报告比较好写(因为什么图都没有,哈哈)51Testing软件测试网kbpjo
2、loadrunner在进行socket性能测试的脚本录制时,如果遇到发送一个业务包,返回的包大小与个数时随机的时候,脚本就中断无法回放了,甚至我都想不出什么方法可以解决,可见loadrunner还真不是万能的哈51Testing软件测试网 q-K9{(k&c
51Testing软件测试网6m'|;iM.O)AGg3、曾经设想用dll实现然后用web协议调用,结果发现dll实现的无法监视真实的server响应时间,需要dll自己实现,无奈啊51Testing软件测试网4C/R1db5b8E4W)K!a
51Testing软件测试网!o1J1cKPrIgR附录1:51Testing软件测试网 ?*qL}DC!f r
测试报告如下:51Testing软件测试网R^.f#Am3]
--------------51Testing软件测试网
p[*iZm
产生压力场景:3000个线程 线程创建为每500毫秒一个 每个线程每隔500毫秒循环发包一次 循环300次退出线程 每个线程每次循环发包6个(功能1、功能2、功能3、功能4、功能5、功能6各一个)
,y%v+q,~M Dz `9d3?0
d!u&O
y!vha0}w0请求的响应时间平均为1秒以下51Testing软件测试网Oo$v-mq#|+vg
请求的最大响应时间(极少的情况下)为4秒左右51Testing软件测试网azzyF#` P^
被测试服务器带宽占用45%(1G,大概为450M/秒)51Testing软件测试网V[&k+{Brc;W
被测试服务器CPU使用率为50%左右51Testing软件测试网1\4P0@1?:H`;dY
被测试服务器内存占用大概为900M左右
Kl Z:ILjrWDL0被测试服务器虚拟内存占用大概为1.2G左右51Testing软件测试网bUm/};Vq1X+QfepO
每秒钟客户端/server成功完成交易大概6000次/秒
y7hcu,~,f(I0交易失败数为0
6FW5ub*rK5\c4}0被测试服务器在16分钟左右可以稳定完成交易数5400000次51Testing软件测试网1{8T PB#d2O:r
根据每位在线用户每3秒钟发送6次请求计算,目前可以支持3000个client在线并且稳定运行15分钟以上
%lpE5c*W8C2[Z6~0测试同时,测试组手动使用应用客户端的软件连接该服务器获得数据,使用正常,响应速度良好51Testing软件测试网8w?
WY&o3I)lK(Z
--------------
]gD.i^g0&X^(J
oO3@0附图偶写的那破东西的页面:
1a.d!^*Lw0+eS5?
T)CVp+o4?
a0
%[0}^[)SQ0Uj0