WebService性能测试研究
QJ`zi+Y0黄进青2009-3-31
3q9Y%qu?5L]k rt01 概述
在某项目中,遇到手机客户端与服务器端交互的性能测试问题,其实现方式为手机客户端与服务器端通过webservice进行交互,如下:51Testing软件测试网k#ry;j^5]x
51Testing软件测试网\#i Z+r^_yH}
Rq9f"V8`u02 性能测试策略
使用工具模拟多用户进行webservice在手机客户端和服务器端的交互。
1yuz)Baf9uB03 测试工具
Loadrunner、SoupUI
g*{(x\ZV:`04 Loadrunner进行webservice测试
4.1 访问url,将网页保存为wsd文件
http://10.192.17.40/PanasonicQR/MobileService/UploadInventoryService?wsdl
%U
tT-h
cH6{0
Q;l[-dH6FN051Testing软件测试网6U3|&g(V*_
]
4.2 新建脚本
4.3 问题
按照上面的步骤执行脚本,发现有错,提示信息如下:
(K;i
e c,PAI4@051Testing软件测试网*L
Qi;[Nj
Bjif1jT0该问题暂时无法解决,需要再进一步的研究,现用soap_request函数实现webservice的测试。
&}0Zv Sv ^F.kz7z04.4 实现webservice测试
使用web_add_header(用户添加webservice头)、soap_request(用户向服务器发送webservice请求)、lr_convert_string_encoding(用于将webservice请求的XML转换为UTF-8格式,必须要转换为UTF-8格式,否则在请求的XML中如果含有中文字符的话将会请求失败)、和lr_eval_string(用于向soap_request函数传递转换后的UTF-8格式参数值)函数实现webservice测试,代码如下:51Testing软件测试网/U4`w2x#V f
Action()
peLH)]-z0{51Testing软件测试网fE!|O$Ew*t
intrc = 0;51Testing软件测试网2g]!MBp#v
unsigned longconverted_buffer_size_unicode = 0;51Testing软件测试网_cg(|],s }G+g8C{
char*converted_buffer_unicode = NULL;51Testing软件测试网7Tx2^)E1I
N
char*strnew = NULL;51Testing软件测试网&a$oR Vpn-Ek;V
Gy
K&xb0web_add_header("SOAPAction",
9SBI|3uB0 "\"\"");51Testing软件测试网9o#}9YN!quJV
web_add_header("User-Agent",51Testing软件测试网k Oc vW0n,@CSWs
"Jakarta Commons-HttpClient/3.1");
*Z&ZcB(?![4w3H0web_add_header("Content-Type",51Testing软件测试网^)@']RsZ/~"p
"text/xml;charset=UTF-8");51Testing软件测试网%m!E(bD0_Lq
51Testing软件测试网WU\j$V Q
strnew= "SOAPEnvelope= <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://webservice.qr.ufmobile.cn/\"> <soapenv:Header/> <soapenv:Body> <web:uploadException><arg0>{NewParam_1}</arg0><arg1>number</arg1><arg2>有实物无帐</arg2><arg3>该产品没有入账</arg3><arg4>77804179</arg4><arg5>huangjq</arg5><arg6>96</arg6></web:uploadException></soapenv:Body></soapenv:Envelope>";51Testing软件测试网J \:fk2LG)@(GQ$k
51Testing软件测试网:i/J \Vqn#]1r
rc =lr_convert_string_encoding(strnew,
RCz(AeA0 LR_ENC_SYSTEM_LOCALE,
;[cs`s[ J0 LR_ENC_UTF8,51Testing软件测试网0C;{%d!X2f{#p1y
"new");51Testing软件测试网
yx7zQ7i
w*UJ2F m`
+uAz3}G0//上传异常盘点信息51Testing软件测试网,[(hL}I7?
soap_request("StepName=login",
u(~aN-v
|0"URL=http://10.192.17.40/PanasonicQR/MobileService/UploadInventoryService",
G+Jn7A.e0 lr_eval_string("{new}"),51Testing软件测试网B:Wk(G*`Dq
"Snapshot=t1.inf",
%S*Pf,L'k0 "ResponseParam=result",51Testing软件测试网L8vV!U]F"s(H
LAST);
5fK/eL1ZdK0 return0;
-I$rI1LC^0}
)G4b&?~u@1Q04.5 日志查看
在Run-time中设置Log显示方式,显示更多的日志,以便追踪脚本运行状况。51Testing软件测试网9dUXvT5d2YjV
51Testing软件测试网\ X~-W
yd
{(iV
4.6 模拟多用户并发测试
Loadrunner的Webservice测试license:AEAMAUIK-YAFEKEKJJKEEA-BCJGI
A0v7jc9Sl8wKk#g0缺点:该license最多只支持100个用户并发测试。
tC%KR4p)B)V05 SoupUI
5.1 新建项目
项目对应url格式为:51Testing软件测试网)E#N E*hw"[[oP"m
http://10.192.17.3/PanasonicQR/MobileService/UploadInventoryService?wsdl51Testing软件测试网HsT|;d
1zb }'y$Ctj4D0
a;n-?F
`q5ID05.2 运行方法,提交请求
51Testing软件测试网"QdH8zPxnQ0EEK"|
5.3Testsuite
J{CI
_$?)B05.4 Loadtest
51Testing软件测试网N'G R8L2l&i
通过线程数虚拟多个用户进行测试。51Testing软件测试网'e^t6q&v;Ojm
W1kjeM1Sa0
8t#^m`;E;p0 $A{ ZW^~#H0u0
4P0Sv&a$]
l9H0Xf(ThB6y^3I:O0(说明:本文章为本人原创,如需转载请注明出处,谢谢!)51Testing软件测试网}
T_lu