首页 > 代码库 > LoadRunner测试webservice接口性能

LoadRunner测试webservice接口性能

LoadRunner测试接口性能

方法一:通过wsdl地址调用接口

1、打开LoadRunner点击左上角选择新建脚本,在弹出窗口中选择web service协议,然后点击create按钮

技术分享

2、点击 Manager services(注意:点击前右侧窗口脚本的光标必须在“return();”之前),在弹出窗口中点击Import,在弹出窗口内选择“url”并填入要测试接口对应的地址,在地址的后面加上“?wsdl”,然后点击Import

 

技术分享

3、导入url成功后会有相应的信息出现,然后点击“ok

 

技术分享

4、点击“Add service call”,然后在弹出的窗口中Opertion对应的下拉列表中选择要测试的方法,在左侧选择Import Arguments,然后在右侧value中输入对应的请求(也可以随便输入,下面可以再脚本中修改)。

 

技术分享

5、在窗口左侧选择out,然后在右侧勾选“Save returned...”,在parameter对应的内容可以修改,可以保持不变,其实就是一个变量,用来存储输出的值。

 

技术分享

6、完成上述操作后自动生成如下脚本,标红的地方为刚才随意输入的请求内容,现在用合法的请求替换掉

 

技术分享

7、在脚本中替换请求内容后调试下脚本看是否有错误,如果脚本正常,那就设计运行场景,进行后续的负载测试工作。

 

技术分享

 

 

方法二:导入XML文件

 

先看下面开发人员给的对应接口的请求内容:

{

    "sysId": "1",

    "userName": "root",

    "passWord": "root321",

    "queryArray": [

            {

            "fltNum": "QW9977",

            "fltDate": "2014-04-12",

            "orig":"SZX"

            }

       ]

}

如上所示,我们从开发人员那里获得的请求内容为js格式的,不是xml格式的,此时我们再用方法一来试试:

1、导入在脚本中粘贴上我们的请求发现有“:”、“}”等都没有变成蓝色,而是黑色显示,这说明这些内容是LoadRunner未识别的,我们运行一下发现日志中也有很多日志报出,这是什么原因呢?因为LoadRunner脚本时遵循的C语言的语法规则,而这些符号在C语言中是有定义的,我们要想使用必须添加转义字符使他们转义。一一修改又太麻烦,所以介绍使用LoadRunner测试接口的第二种方法:导入xml文件法。

 

技术分享

2、在soapUI中添加js请求,调试脚本看是否通过

 

技术分享

3、脚本调试通过后将脚本另存为xml文件

 

技术分享

4、点击Import SOAP,点击“...”按钮选择刚才从soapUI中另存出来的xml文件

 

技术分享

5、然后窗口中内容变多,在URL中粘贴要测试接口对应的链接,SOAP Action中和开发人员沟通看是否有对应的Action,没有就不用填写,Response paramenter对应的内容随便填写,

是为了给服务请响应的内容定义一个存储的变量。

 

技术分享

6、通过以上操作点击ok后出现如下脚本,运行后通过,我们可以继续后续的性能测试工作。

 

技术分享

我们仔细对比一下这两种情况下脚本的变化:

调用接口后直接粘贴请求的脚本:

Action()

{

 

web_service_call( "StepName=getTotalPassAndTotalAcPassAndTotalLuagg_102",

"SOAPMethod=FlightInfoAndVipPassInfoQueryWebService|FlightInfoAndVipPassInfoQueryWebServiceHttpPort|

getTotalPassAndTotalAcPassAndTotalLuagg",

"ResponseParam=response",

"Service=FlightInfoAndVipPassInfoQueryWebService",

"ExpectedResponse=SoapResult",

"Snapshot=t1405582936.inf",

BEGIN_ARGUMENTS,

"in0={

"sysId": "1",

"userName": "root",

"passWord": "root321",

"queryArray": [

            {

        "fltNum": "QW9977",

         "fltDate": "2014-04-12",

            "orig":"SZX"

            }

        ]

}",

END_ARGUMENTS,

BEGIN_RESULT,

END_RESULT,

LAST);

 

 

return 0;

}

 

导入xml文件后生成的脚本:

Action()

{

 

soap_request("StepName=SOAP Request",

"URL=http://192.168.0.125:8090/qwsis/services/FlightInfoAndVipPassInfoQueryWebService?wsdl",

"SOAPEnvelope="

"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=

\"http://webservice.sasis.com\">"

"<soapenv:Header></soapenv:Header>"

"<soapenv:Body>"

"<web:getPassengerMobiles>"

"<web:in0>"

"         {"

"    \"sysId\": \"1\","

"    \"userName\": \"root\","

"    \"passWord\": \"root321\","

"    \"queryArray\": ["

"            {"

"            \"fltNum\": \"QW9977\","

"            \"fltDate\": \"2014-04-12\","

"            \"orig\":\"SZX\""

"            }"

"       ]"

"}"

"         </web:in0>"

"</web:getPassengerMobiles>"

"</soapenv:Body>"

"</soapenv:Envelope>",

"SOAPAction=",

"ResponseParam=response",

"Snapshot=t1405565685.inf",     

LAST);

 

return 0;

}

 

我们会发现第二种情况的脚本使用“”把请求中的“{”、“[”进行了处理,而“””则用“\”来进行了转义处理,处理后脚本中的内容都被识别,并变为了蓝色字体显示。

LoadRunner测试webservice接口性能