Loadrunner三种方式:
web_service_call、soap_request
web_custom_request函数完成web service协议的脚本,并加上if判断完善脚本
webservices协议简介:
webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接。
其中最基本的协议包括soap,wsdl,uddi.
1、SOAP(simple object access protocl)
SOAP是消息传递协议,它规定了web services之间如何传递消息。
SOAP基于xml和xsd,xml是soap的数据编码方式。
2、WSDL
(web services Description Language)
WSDL是web services的定义语言,和soap一起构成web服务的核心结构单元。
wsdl协议规定了有关webservices描述的标准。
3、UDDI
UDDI是访问登记的标准,它建立了一个平台独立,开放的框架,通过英特网来描述服务,发现业务并整合业务服务。
简单来说,UDDI用于集中存放和查找wsdl描述文件,起着目录服务器的作用。
webservices协议脚本
我们在性能测试的工作中,难免会遇到webservices协议的接口。
本文简单介绍一下用loadrunner12来开发webservices协议脚本的三种模式,咱们就以天气预报的网站来为例:
1、web_service_call模式
◆ 启动“virtual user Generator”
新建“web services”虚拟用户
选择上方SOA Tool中的Add Service Call,如下图:
弹出New Web Service Call对话框
选择Service-import service
输入要测试的网址
下面选择Operation
输入城市,以及设置获取返回值参数。
点击OK后,得到下面的脚本
然后做参数化,断言
最后保存,设置日志级别,然后Replay我们的脚本
2.soap_request模式
打开WeatherWebService网站
复制上面的代码,在notepad++中新建一个文件,将代码粘贴上去,保存到D盘。
然后在loadrunner12中,点击下图的import SOAP。
在对话框中,我们输入保存的xml文件地址。
输入URL,URL=http://{Host}+{POST}
参数从上图所示取,输入对应的SOAPAction,具体如下图所示
点击OK,生成下面的脚本
这里有个难题就是如何做xml断言?
我们看一下下图的响应示例:
这里引入lr_xml_get_values函数来获取xml的返回值。
XPath query中填入city值的xpath定位的绝对路径:
/Envelope/Body/getWeatherbyCityNameResponse/getWeatherbyCityNameResult/string[2]
◆ 最后加入事物函数,做断言
保存后点击Replay,得到下面的结果:
3、web_custom_request模式
输入对应的URL,body里面输入SOAP的请求体。
点击确定,最后生成如下的代码
后面做脚本强化就行。