loadrunner 学习笔记--Web Services
2010-06-17 22:05
225 查看
使用loadrunner测试Web Services的程序大致可以使用两种方法,分别为web_service_call()和soap_request()。两者的使用很相识,我们录制时都使用Web Services的协议。下面分别介绍一下使用方法:
[b]一、web_service_call()[/b]使用步骤如下:
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}")); --可以输出返回值
[b]二、soap_request(),[/b]使用步骤如下:
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种方式就介绍完了。
[b]补充说明:[/b]
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界面查看我们定义的函数的请求,以及服务器的返回值。
//
function ratevalveimg(rate,ratevalveset){ valveimg = '';if(rate) {image = rate > 0 ? 'templates/special/images/agree.gif' : 'templates/special/images/disagree.gif';var ratevalve = ratevalveset.split(",");for(i = 0; i < ratevalve.length; i++) { if(Math.abs(rate)>ratevalve[i]){ valveimg += '
';}else{ break;}}}return valveimg;}
// ]]>
[b]一、web_service_call()[/b]使用步骤如下:
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}")); --可以输出返回值
[b]二、soap_request(),[/b]使用步骤如下:
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种方式就介绍完了。
[b]补充说明:[/b]
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界面查看我们定义的函数的请求,以及服务器的返回值。
//
function ratevalveimg(rate,ratevalveset){ valveimg = '';if(rate) {image = rate > 0 ? 'templates/special/images/agree.gif' : 'templates/special/images/disagree.gif';var ratevalve = ratevalveset.split(",");for(i = 0; i < ratevalve.length; i++) { if(Math.abs(rate)>ratevalve[i]){ valveimg += '
';}else{ break;}}}return valveimg;}
// ]]>
相关文章推荐
- loadrunner 学习笔记--Web Services
- LoadRunner8.1学习笔记2
- LoadRunner学习笔记——Day3
- Web Service学习笔记:Web Services的魅力
- loadrunner11学习笔记
- Loadrunner学习笔记四:术语介绍
- Web Services 学习笔记
- .Net学习笔记 - Web Services
- Web Services 应用开发学习笔记(五):创建WebService的简单例子
- LoadRunner学习笔记 – 脚本录制
- Loadrunner之性能计数器学习笔记
- LoadRunner 学习笔记(1)性能测试常见术语
- 性能测试学习笔记-如何管理loadrunner的临时文件
- LoadRunner关联之学习笔记
- loadrunner 学习笔记--AJAX
- loadrunner 学习笔记--AJAX
- 关于学习loadrunner入门教程的学习笔记(部分截图摘抄老师白板)
- loadrunner-学习笔记一
- LoadRunner8.1学习笔记3