用LoadRunner测试接口性能

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

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

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_开发人员

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml_02

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml文件_03

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml文件_04

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml_05

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml文件_06

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml文件_07

 

 

方法二:导入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文件法。

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml文件_08

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_开发人员_09

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_开发人员_10

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml_11

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

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_xml_12

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

 

loadrunner测试cs架构不能录音客户端 loadrunner可以做接口测试吗_开发人员_13

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

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

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;
}

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