问题背景:我们都知道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);
方法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);
总结:做什么事,要学会怎么样去拓展思路,而不是仅限于工具使用或者工具中固定函数和方法,切记录制的脚本并非不能改变