使用loadrunner测试Web Services接口

上一篇 / 下一篇  2017-04-12 15:11:18 / 个人分类:loadrunner测试Web Services接口

转载至:http://www.cnblogs.com/spo22/archive/2010/06/17/1759795.html

使用loadrunner测试Web Services的程序大致可以使用两种方法,分别为web_service_call()和soap_request()。两者的使用很相识,我们录制时都使用Web Services的协议。下面分别介绍一下使用方法:

一、web_service_call()使用步骤如下:

1、保存WSDL文件。在IE中打开Web Services的地址,并加上“?wsdl”。比如:“http://192.168.4.112:8082/EDASer ... neService.asmx?wsdl”。然后将打开的XML文件另存为扩展名为".wsdl"的文件。如下图



2、在loadrunner中导入刚才保存的WSDL文件,如下图



3、增加调用函数,如下图



4、完成后将自动生成以下代码。

        web_service_call( "StepName=RunService_101",
                "SOAPMethod=ServiceEngineService|ServiceEngineServiceSoap|RunService",
                "ResponseParam=response",
                "Service=ServiceEngineService",
                "ExpectedResponse=SoapResult",
                "Snapshot=t1273650512.inf",
                BEGIN_ARGUMENTS,
                "xml:inDataBuf="
                        "<inDataBuf>"
                                "<serviceName>2307</serviceName>"
                                "<serviceType>3</serviceType>"
                                "<pageNo></pageNo>"
                                "<sessionID></sessionID>"
                                "<xmlData><DataSet></xmlData>"
                        "</inDataBuf>",
                END_ARGUMENTS,
                BEGIN_RESULT,
                "RunServiceResult=Param_RunServiceResult",
                END_RESULT,
                LAST);

        lr_log_message("result = %s", lr_eval_string("{Param_RunServiceResult}"));
--可以输出返回值

  

二、soap_request(),使用步骤如下:

1、定义SOAP REQUEST FILE。在IE中打开Web Services的页面,比如:http://192.168.4.112:8082/EDASer ... .asmx?op=RunService。IE中将显示这个文件的信息,复制保存为XML文件。如图下图:



2、导入刚才定义的XML文件。



3、导入后自动以下代码。

        soap_request("StepName=SOAP Request",                                                                               
                "URL=http://192.168.4.112:8082/EDAService/ServiceEngineService.asmx",                                                                               
                "SOAPEnvelope="
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"
                        "<soap12:Body>"
                                "<RunService xmlns=\"http://192.168.4.112/\">"
                                        "<inDataBuf>"
                                                "<serviceName>2307</serviceName>" --入参需要改成自己需要的值
                                                "<serviceType>3</serviceType>"         --入参需要改成自己需要的值
                                                "<pageNo></pageNo>"                     
                                                "<sessionID></sessionID>"
                                                "<xmlData></xmlData>"
                                        "</inDataBuf>"
                                "</RunService>"
                        "</soap12:Body>"
                "</soap12:Envelope>",                                                                               
                "SOAPAction=RunService",                                                                               
                "ResponseParam=response",                                                                               
                "Snapshot=t1273722181.inf",                                                                           
                LAST);


4、在刚才自动生成的代码前,增加header信息。需要增加的内容见步骤1里的截图。“Content-Length”不需要加。本例中我们增加的代码为:

        web_add_header("POST",
                "/EDAService/ServiceEngineService.asmx HTTP/1.1");
        web_add_header("Host",
                "192.168.4.112");
        web_add_header("Content-Type",
                "application/soap+xml; charset=utf-8");


这样2种方式就介绍完了。

补充说明:

1、如果入参的字符串需要使用“<”或“>”,则必须传递“& l t ;”或“& g t ;(这几个字符需要去空格)

2、如果WEB SERVICES返回的是XML文件,则可以使用lr_xml_get_values来获取。比如:

    int  NumOfValues;
    NumOfValues= lr_xml_get_values("XML={response}", --response为soap_request函数的返回值
          "ValueParam=OutputParam",                             --定义lr_xml_get_values的返回值                   
          "Query=/soap:Envelope/soap:Body/HelloWorldResponse/HelloWorldResult",   --XML的节点名称,需要包含父节点的名称,并用"/"隔开。
          "SelectAll=yes", LAST);

    for ( i = 0; i < NumOfValues; i++) { /* Print multiple values of OutputParam */         --输出刚才获取的XML的值 

          sprintf (buf, "{OutputParam_%d}",i+1);
          lr_output_message("result = %s",lr_eval_string(buf));

                  re = strncmp(lr_eval_string(buf),string1,85);
                  lr_output_message("return : %d",re);
    }


3、可以切换到TREE界面查看我们定义的函数的请求,以及服务器的返回值。

 


TAG: 接口

 

评分:0

我来说两句

日历

« 2024-03-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 73352
  • 日志数: 55
  • 建立时间: 2016-04-19
  • 更新时间: 2020-09-23

RSS订阅

Open Toolbar