【Loadrunner】通过soap_request手工编写webservice协议请求解决手工编写和相关问题

本文介绍了解决LoadRunner在使用WebService协议时遇到的问题的方法。通过两种方式手动编写web_custom_request和soap_request函数来发送SOAP请求,成功绕过了工具自带功能的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景:我们都知道loadrunner在运用webservice协议中,可以直接访问和导入wsdl地址得到所需web_service_call请求,虽然请求得到了,但是loadrunner中一直报"Error:ExtractResultArgfailure: 外部组件发生异常",对于工具上的问题,无非是在度娘中寻找资料,多次尝试,结果还是如此,于是换其他思路方法去解决,用LR中内置函数web_custom_request和soap_request手工编写,并模拟发送webservice的soap请求,如下:

注:web_custom_request和soap_request函数具体用法,请自行度娘或者参考LR帮助说明。。。

方法1:

web_set_max_html_param_len("999999");

web_add_header("SOAPAction","\http://tempuri.org/IFileService/DownloadFile\");

 web_add_header("Content-Type","text/xml;charset=UTF-8");

web_add_header("User-Agent", "Apache-HttpClient/4.1.1 (java 1.5)");

web_custom_request("default.aspx",
"URL=http://{ip}/FileService.svc", 
"Method=POST", 
"Snapshot=t7.inf", 
"Body=<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\"  
"xmlns:gta=\"http://schemas.datacontract.org/2004/07/GTA.EFM.ViewModel\"><soapenv:Header/>"
"<soapenv:Body><tem:DownloadFile><!--Optional:--><tem:request><!--Optional:--><gta:CreateTime>0001-01-01T00:00:00</gta:CreateTime><!--Optional:--><gta:Data></gta:Data><!--Optional:-->"
"<gta:FileName>123.rar</gta:FileName><!--Optional:--<gta:Guid>88FA133CCF5449FEA24F7D6AEAFD5B90</gta:Guid><!--Optional:--><gta:Length>0</gta:Length><!--
Optional:-->"
"<gta:Name></gta:Name><!--Optional:--><gta:Offset>0</gta:Offset><!--Optional:--><gta:SavePath>Attach\\67a618f26eab494390aa06338e61753b</gta:SavePath>"
"</tem:request></tem:DownloadFile></soapenv:Body></soapenv:Envelope>",
LAST); 

备注:运用web_custom_request发送soap协议的http请求,包头会出现警告信息,且响应值是正确的,但个人建议用方法2比较好

方法2:

web_add_header("SOAPAction","\"http://tempuri.org/IFileService/DownloadFile\"");
web_add_header("User-Agent", "Apache-HttpClient/4.1.1 (java 1.5)");
 soap_request("StepName=Welcome",
"URL=http://{ip}//FileService.svc",
"SOAPEnvelope=<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\"  

"xmlns:gta=\"http://schemas.datacontract.org/2004/07/GTA.EFM.ViewModel\"><soapenv:Header/>"
"<soapenv:Body><tem:DownloadFile><tem:request><gta:CreateTime>0001-01-01T00:00:00</gta:CreateTime><gta:Data></gta:Data>"
"<gta:FileName>123.rar</gta:FileName><gta:Guid>88FA133CCF5449FEA24F7D6AEAFD5B90</gta:Guid><gta:Length>0</gta:Length>"
"<gta:Name></gta:Name><gta:Offset>0</gta:Offset><gta:SavePath>Attach\\67a618f26eab494390aa06338e61753b</gta:SavePath>"
"</tem:request></tem:DownloadFile></soapenv:Body></soapenv:Envelope>",
"Snapshot=t1.inf",
"ResponseParam=response",
LAST);


总结:做什么事,要学会怎么样去拓展思路,而不是仅限于工具使用或者工具中固定函数和方法,切记录制的脚本并非不能改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值