loadrunner Web_类函数之web_service_call()
来源:互联网 发布:电视直播软件pc版 编辑:程序博客网 时间:2024/06/11 02:34
web_service_call()--常用函数
调用Web服务。该函数是专门针对于Webservice协议来提供一个调用功能,webservice是基于一个XML为基础的网络API的一个接口,loadrunner使用web_service_call来进行调用的。
intweb_service_call(const char * StepName,[URL,] ExpectedResponse,<List of specifications>,[BEGIN_ARGUMENTS,Arguments,END_ARGUMENTS,] [SendAttachments,] [BEGIN_RESULT,Results,END_RESULT,] [Receive Attachments,] LAST);
参数说明:
StepName:步骤的名称,它显示在测试树中。可以使用任何文本。
ExpectedResponse:要接受的响应的类型。请参阅ExpectedResponse。
URL:要加载的Web服务的URL(统一资源定位符)。
List ofspecifications:规范列表格式为“Specification = value”的逗号分隔列表。有关列表,请参阅规格。
BEGIN_ARGUMENTS:指示“ARGUMENTS”部分开头的标记。
Arguments:参数ArgumentName =值。可以是WSDL中指定的参数名称及其分配值,也可以是User Handler Arguments之一。
END_ARGUMENTS:指示“ARGUMENTS”部分结束的标记。
Send Attachments :发送附件要发送的附件。有关详细信息,请参阅附件规格。
BEGIN_RESULT:指示RESULT部分开始的标记。
Results :结果ResultName = ParamName。在WSDL中指定的result参数或返回值的名称,以及用于存储结果的参数的名称。
END_RESULT:指示RESULT部分结束的标记。
Receive Attachments:接收附件接收时保存的预期附件。有关详细信息,请参阅附件规格。
LAST指示参数列表结束的标记。
web_service_call函数调用Web服务。
使用Web Service Vuser中的导入WSDL向导时会生成此函数。当您导入WSDL文档时,默认情况下会生成web_service_call函数。
这是一个高级功能,可以让您直观地修改所有SOAP参数。因为编辑参数可能是容易出错的,所以建议在服务测试的树视图中修改函数,而不是在脚本编辑器中修改。
默认情况下,URL端点取自WSDL文件。使用URL参数覆盖(或参数化)Web Service终端节点。
ExpectedResponse
预期响应为以下之一:
Value Effect :
“ExpectedResponse =SoapResult”:接受SOAP输出响应,并在SOAP故障上失败。
“ExpectedResponse =SoapFault”:接受SOAP故障,并在SOAP输出响应上失败。
“ExpectedResponse =AnySoap”:接受SOAP输出和SOAP故障响应。
Specifications (产品规格):
SOAPMethod:要调用的WebService方法,包括服务名称,端口名称和方法名称。 SOAPMethod无法参数化。
元素由句点分隔。例如:
SOAPMethod =RPCEncodedEchoService | RPCEncodedEchoServiceSoap | EchoStructContainingArray
RPCEncodedEchoService是服务名称。
RPCEncodedEchoServiceSoap是端口名称。
EchoStructContainingArray是方法名称。
SOAPHeader:XML格式的可选自定义SOAP标头。标题包含在SoapHeader标记中。例如:
“SOAPHeader =<SoapHeader> <element1>一些文本</element1> <element2>一些文本</ element2> <element3>一些文本</element3> </ SoapHeader>
Service:在WSDL中定义的服务的名称。
WSDL:WSDL文档的位置。无法对WSDL及其参数进行参数化。
Snapshot:包含步骤快照的.inf文件的名称。此参数由服务测试记录。手动输入步骤时,不要添加。如果记录,不要编辑它。
ResponseParam:存储服务器响应的输出参数的名称。
RecordedBuffer:在记录期间创建的包含发送消息的缓冲区。不要编辑此参数或手动输入。
ClientEmulation:此参数采用工具包(DotNet或Axis)的名称或记录的关键字,这意味着将记录的缓冲区将被重放。 ClientEmulation是可选的。如果存在,它将覆盖运行时设置。
SOAPAction:在WSDL中指定的HTTP头。从LoadRunner版本8.0,这是由服务测试记录。仍然支持使用手动输入的值的旧脚本。
UseWSDLCopy:此可选参数确定在测试运行期间是否读取全局WSDL或本地副本。如果值为1,则使用本地副本。如果值为0,则使用全局WSDL。默认是读取全局WSDL。
AsyncEvent:在随后调用web_service_wait_for_event时要使用的事件的名称。如果web_service_call调用包含非空的AsyncEvent参数,则调用发送请求,测试运行立即继续,而不等待响应。继续运行,直到调用web_service_wait_for_event。此参数是可选的。
WSAAction:要在目标服务器上执行的操作。
WSAReplyTo:使用WS-Addressing发送响应的IP地址。该值通常是负载生成器的文本IP地址。当指定“WSAReplyTo = autodetect”时,将在运行时检测负载生成器的IP。 Autodetect要求服务可以使用DNS将负载生成器的主机名转换为IP。 .NET和Axis工具包支持WS-Addressing。此参数是可选的。
JMSSendQueueName:发送队列的JNDI名称。它指向可以通过JNDI查找操作找到的队列名称。使用JMS传输时,此值不能为空。如果不使用JMS传输,则不传递此参数。
JMSReceiveQueueName:使用JMS传输时接收队列的JNDI名称。它指向可以通过JNDI查找操作找到的队列名称。如果此值缺失或为空,将使用临时队列进行接收。如果不使用JMS传输,则不传递此参数。
User Handler Arguments(用户处理程序参数):
UserHandlerFunction:脚本中定义的函数的名称。
UserHandlerName:用户处理程序的名称和在脚本外部定义的处理程序的DLL。如果指定在脚本中定义为UserHandlerFunction的处理函数,那么将忽略UserHandlerName。
UserHandlerArgs:处理程序的配置参数的列表。使用处理程序的GetArguments方法来检索处理程序中的参数。
UserHandlerOrder:请求中处理用户处理程序的顺序。 BeforeSecurity,AfterSecurity,AfterAttachments或ReplaceTransport之一。
有关用户处理程序的详细信息,请参阅“HPLoadRunner虚拟用户生成器用户指南”中的“自定义Web服务脚本行为”。
Example: web_service_call
在第一个示例中,web_service_call函数调用Web服务GetUKLocationByTown来定位地图上的位置。
#include"as_web.h"
web_service_call( "StepName=UkLocation",
"ExpectedResponse=AnySoap",
"URL=http://www.locatorx.net/uklocation.asmx",
"SOAPMethod=TownService|TownServiceSoap|GetUKLocationByTown",
"SOAPMethodNamespace=http://www.locatorX.NET",
"SOAPMethodStyle=document",
"SOAPAction=http://www.locatorX.NET/GetUKLocationByTown",
"WSDL=http://www.locatorx.net/uklocation.asmx?WSDL",
"SOAPHeader=<SoapHeader><e>jb14</e></SoapHeader>",
"Snapshot=t1.inf",
BEGIN_ARGUMENTS,
"Town=London",
END_ARGUMENTS,
BEGIN_RESULT,
"GetUKLocationByTownResult=Result",
END_RESULT,
LAST );
在第二个示例中,web_service_call函数执行DIME上传和下载。lr_save_string("Some content for anattachment in a Parameter",
"pAttachmentContent" );
// DIME encoded upload
web_service_call("StepName=DimeUploadFile_102",
"ExpectedResponse=AnySoap",
"SOAPMethod=MyDimeService|MyDimeServiceSoap|DimeUploadFile",
"SOAPHeader=<SoapHeader><e>jb14</e></SoapHeader>",
"WSDL=http://myServer/DimeGen/MyDimeService.asmx?WSDL",
"UseWSDLCopy=1",
"Snapshot=t1124018494.inf",
BEGIN_ARGUMENTS,
"file_name=d:\\temp\\myUploaded.txt",
END_ARGUMENTS,
ATTACHMENTS_FORMAT_DIME,
ATTACHMENT_ADD,
"FiLeNaMe=d:/temp/attachment.in",//"ContentType=text/plain",
BEGIN_RESULT,
END_RESULT,
LAST );
// DIME encoded download
web_service_call("StepName=DimeDownloadFile_102",
"SOAPMethod=MyDimeService|MyDimeServiceSoap|DimeDownloadFile",
"ExpectedResponse=AnySoap",
"WSDL=http://myServer/DimeGen/MyDimeService.asmx?WSDL",
"UseWSDLCopy=1",
"Snapshot=t1124022373.inf",
BEGIN_ARGUMENTS,
"file_name=d:\\temp\\myUploaded.txt",
END_ARGUMENTS,
BEGIN_RESULT,
END_RESULT,
ATTACHMENT_SAVE_ALL,
"pAraMnAmepReFiX=pAttachmentContent",
LAST );
在第三个示例中,使用WSAReplyTo参数指定的WS-Addressing将服务器答复定向到主机。 在第一次调用中,指定了WSAAction。 这两个调用都是异步的,如AsyncEvent参数所示。 测试运行继续,直到下面的web_service_wait_for_event调用。
web_service_call( "StepName=echo_101",
"ExpectedResponse=AnySoap",
"SOAPMethod=MyService|MyServiceSOAP12port0|echo",
"SOAPHeader=<SoapHeader><e>jb14</e></SoapHeader>",
"ResponseParam=response",
"Service=MyService",
"Snapshot=t1156241380.inf",
"WSAReplyTo=111.111.111.011",
"WSAAction=http://example1.org/MyServiceSOAP12port0/echo",
"AsyncEvent=event1",
BEGIN_ARGUMENTS,
"xml:part1=<part1><EchoInput>true</EchoInput><Latency>4</Latency></part1>",
END_ARGUMENTS,
BEGIN_RESULT,
"part1/EchoOutput=Param_EchoOutput1",
END_RESULT,
LAST );
web_service_call("StepName=echo_101",
"SOAPMethod=MyService|MyServiceSOAP12port0|echo",
"ResponseParam=response",
"Service=MyService",
"Snapshot=t1156241380.inf",
"WSAReplyTo=111.111.111.011",
"AsyncEvent=event2",
BEGIN_ARGUMENTS,
"xml:part1=<part1><EchoInput>false</EchoInput><Latency>1</Latency></part1>",
END_ARGUMENTS,
BEGIN_RESULT,
"part1/EchoOutput=Param_EchoOutput2",
END_RESULT,
LAST );
web_service_wait_for_event("Quantifier=ALL","Timeout=11111",BEGIN_EVENTS,"event1","event2",END_EVENTS,LAST);
- loadrunner Web_类函数之web_service_call()
- loadrunner Web_类函数之web_add_auto_filter()
- loadrunner Web_类函数之web_add_auto_header()
- loadrunner Web_类函数之web_add_cookie()
- loadrunner Web_类函数之web_add_cookie_ex()
- loadrunner Web_类函数之web_add_filter()
- loadrunner Web_类函数之web_add_header()
- loadrunner Web_类函数之web_browser()
- loadrunner Web_类函数之web_button()
- loadrunner Web_类函数之web_cache_cleanup()
- loadrunner Web_类函数之web_check_box()
- loadrunner Web_类函数之web_convert_param()
- loadrunner Web_类函数之web_convert_date_param()
- loadrunner Web_类函数之web_convert_from_formatted()
- loadrunner Web_类函数之web_convert_to_formatted()
- loadrunner Web_类函数之web_create_html_param()
- loadrunner Web_类函数之web_create_html_param_ex()
- loadrunner Web_类函数之web_custom_request()
- 210. Course Schedule II
- Java web开发中常用到的jar包简介
- linux工作与进程管理
- c#linq里的Skip和Take处理分页笔记
- bzoj 2933(区间dp)
- loadrunner Web_类函数之web_service_call()
- WebGL三角形旋转变换
- java学习第五天
- css中两个类选择器之间有没有空格的区别
- java重构(一)
- mybatis遇到的mapper.xml的链表是容易出的错
- centos7 编译 nginx
- APP UI设计的全局思维
- 当你的unity项目一直报错的时候