LoadRunner基于WebService协议脚本

WebService协议脚本有三种生成方式,一种是直接通过LoadRunner导入URL自动解析生成;一种是使用LoadRunner内置函数手动编写;再一种是使用SoapUI工具导入xml文件方式生成脚本;最后一种比较方便、出错少。

备注:测试地址:http://192.168.100.152:8650/IMyRole/;数据库服务器用户名和密码:administrator/ grid2008;数据库用户名和密码: LibSvr/grid2008。

1.1. LR自动解析生成

1、创建WebService脚本;

图表1创建Webservice脚本

2.点击Manage Services,在弹出的对话框中点击import->选择WSDL格式是URL->输入URL,点击import;如图步骤成功的导入Services:

图表2引入WSDL请求

3.将光标定位在action中,点击Add Services Call,Operation处选择操作的接口,并对接口中参数进行参数化,点击OK,成功生成脚本;

图表3添加Service请求

3、生成的脚本:

图表4生成的WebService协议脚本

上述方法会出现问题,loadrunner在运用webservice协议中,可以直接访问和导入wsdl地址得到所需web_service_call请求,虽然请求得到了,但是loadrunner中一直报"Error:ExtractResultArgfailure: 外部组件发生异常",对于工具上的问题,在度娘中寻找资料,多次尝试,结果还是如此,于是换其他思路方法去解决。

1.2. LR内置函数手动编写

用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)");

//将请求方在Body体中。

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请求,包头会出现警告信息,且响应值是正确的,采用soap_request较好。

方法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);

  

1.3.借助SoapUI工具

1、运行soapUI.bat启动SoapUI工具,点击New soapUI Project,Init WSD/WADL处输入   WebService请求地址,如http://192.168.103.66/Log/LogService.svc?wsdl,默认勾选Create Request一项,点击OK生成请求。

图表5新建SoapUI Project

2、生成的请求如下,双击接口名称子节点request,在工具右侧打开请求内容,保存接口内容为xml文件,获取请求头消息如图6。

图表6请求头

图表7保存为XML文件

备注:保存文件名加后缀.xml。

3.导入SOAP请求到LoadRunner,在LoadRunner中新建WebService请求,将光标定位在Action中,点击菜单栏Import SOAP->选择图7保存的xml文件;选择后切换到图9,输入URL:http://192.168.103.66/Log/LogService.svc,点击OK生成如图10脚本。

图表8   导入xml到LR

图表9  填充请求URL

图表10  生成脚本

4. 将图6中的请求头信息,添加在脚本中;注释掉soap_request请求中的SOAPAction与请求头中SOAPAction项保留一个即可。

图表11最终脚本

最新文章

  1. 谈 CSS 模块化
  2. SVN版本库(访问权限)配置实例笔记
  3. iOS中偏好设置的创建,数据写入与读取
  4. HOWTO:制作 Windows 7 加速部署映像(作者:苏繁)
  5. diamond operator is not supported in -source 1.5
  6. Android ActionBar详解(三)---&gt;ActionBar的Home导航功能
  7. 【Visual C++】游戏编程学习笔记之一:五毛钱特效之透明和半透明处理
  8. webpack4.0学习记录
  9. linux上下载安装mysql,并使用
  10. day45 jQuery
  11. python 全栈开发,Day117(popup,Model类的继承,crm业务开发)
  12. 深度学习课程笔记(八)GAN 公式推导
  13. Linux内核学习笔记之seq_file接口创建可读写proc文件
  14. rac安装_grid安装校验报错之grid未建立信任关系
  15. Perl中的哈希(四)
  16. css笔记--用户界面样式
  17. 修复TortoiseGit文件夹和文件图标不显示问题的多种解决办法以及重启之后TortoiseGit图标注册表又不见了的解决办法
  18. Android:有关下拉菜单导航的学习(供自己参考)
  19. hibernate反向生成奇葩错误
  20. PostgreSQL数据库的安装

热门文章

  1. [Maven] - Eclipse &quot;maven compiler plugin&quot; 冲突解决
  2. docker存储结构解析
  3. Android 增量更新(BSDiff / bspatch)
  4. spread 程序调试时,未激活的提示解决
  5. win下安装oracle的步骤
  6. java安全沙箱(三)之内置于Java虚拟机(及语言)的安全特性
  7. inteview que2
  8. 【OpenCV练习】图片腐蚀
  9. 双系统先装Windows,后装linux的原因
  10. 火车采集器 帝国CMS7.2免登录发布模块