WebService性能测试研究(原创)
上一篇 / 下一篇 2009-06-28 12:21:26 / 个人分类:自动化测试
WebService性能测试研究
黄进青
1 概述
在某项目中,遇到手机客户端与服务器端交互的性能测试问题,其实现方式为手机客户端与服务器端通过webservice进行交互,如下:
[flK&G8J@Z02 性能测试策略
使用工具模拟多用户进行webservice在手机客户端和服务器端的交互。51Testing软件测试网%V3\0A`(E2x"frx
3 测试工具
Loadrunner、SoupUI51Testing软件测试网r*nf.T#Y9L9k.l/[
4 Loadrunner进行webservice测试
4.1 访问url,将网页保存为wsd文件
http://10.192.17.40/PanasonicQR/MobileService/UploadInventoryService?wsdl
fRVf,RuaQf051Testing软件测试网 HL8S(l){4Z1F
Q:^:x,H4D0
4.2 新建脚本
4.3 问题
按照上面的步骤执行脚本,发现有错,提示信息如下:51Testing软件测试网 N;^ Nq? YZ^+I"K$x)?5}
51Testing软件测试网}{0A"o.TA(S5j[*K
R'N;?x9b f0该问题暂时无法解决,需要再进一步的研究,现用soap_request函数实现webservice的测试。
{6rdm9^6K j$Gv:w8K9a04.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测试,代码如下:
wBrC;u5`@(UtU0Action()51Testing软件测试网 EN5El],a:J%~7w_
{51Testing软件测试网b|V%Tuc2x-_ x
intrc = 0;
0M+_QP-gI0unsigned longconverted_buffer_size_unicode = 0;
VY u1h@1F'Q3DYa0char*converted_buffer_unicode = NULL;
R/`1S!\ AKh0char*strnew = NULL;51Testing软件测试网`h h"o!y
web_add_header("SOAPAction",51Testing软件测试网n2dgF(@m P&Em2sm
"\"\"");
`icT}rA0web_add_header("User-Agent",51Testing软件测试网g(ZH(Av8j,~
"Jakarta Commons-HttpClient/3.1");51Testing软件测试网%^X-lb+v"v"h
web_add_header("Content-Type",51Testing软件测试网P1qWl+lm2~
"text/xml;charset=UTF-8");
7vE7jQv9BO!d0strnew= "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>";
7GXt DA)_3d0rc =lr_convert_string_encoding(strnew,51Testing软件测试网3t`yf@^.Z6\T4Z?
LR_ENC_SYSTEM_LOCALE,
v V{_M(`!n0LR_ENC_UTF8,
%Ku(z!K'b)@0"new");51Testing软件测试网:wm PvgK
//上传异常盘点信息
soap_request("StepName=login",
"URL=http://10.192.17.40/PanasonicQR/MobileService/UploadInventoryService",51Testing软件测试网:Cx{/oV9W
lr_eval_string("{new}"),
A)T7[o Ss0"Snapshot=t1.inf",
6WL*`&J3vu0"ResponseParam=result",
/She4I4@OF0LAST);