关于接口测试应该很多人就有所了解,目前可能很多朋友会使用Jmeter来做接口测试,但其实LoadRunner也是可以使用接口的,使用LoadRunner做接口测试准确的来说是对接口的性能进行测试,本章主要讲解接口性能测试中“WSDL协议”的内容。
关于性能测试从测试的对象角度来划分,有两种不同的分类:
一是:基于GUI界面的性能测试(这也是我们通常说的性能测试);
二是:直接对服务器端的接口进行性能测试;
在我们国内早期研究性能测试时,一般都是基于GUI界面的性能测试,也就是我们通常说的录制回放的方式进行录制脚本,但随着软件系统越来越复杂,前端界面变化越来越频繁时,传统的这种基于GUI界面的性能测试存在很多的弊端,因为当界面频繁变动的时候,那么每改一次性能测试就必须重新做一次,为了提高工作效率,我们会对后台的服务器所提供的方法直接进行接口测试,这样只要服务器的方法或属性没有变的话,那么就可以不用频繁的、重复的进行性能测试。
一、WSDL协议简介
WSDL (全称Web Services Description Language) 是指网络服务描述语言。WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。
WSDL 文档主要是利用、、和这些的元素来描述某个 web service 的,见表15-1。
表15-1 web service组成元素
下面是一个常见WSDL文档的结构:
<definitions>
<types>
definition of types........
</types>
<message>
definition of a message....
</message>
<portType>
definition of a port.......
</portType>
<binding>
definition of a binding....
</binding>
</definitions>
WSDL端口: 元素是最重要的 WSDL 元素。可以描述一个web service、可被执行的操作,以及相关的消息。 元素相当于传统编程语言中的一个函数库(或一个模块、或一个类)。
请求-响应是最普通的操作类型,不过WSDL定义了四种类型:
1) One-way:此操作可接受消息,但不会返回任何响应。
2) Request-response:此操作可接受一个请求并会返回一个响应。
3) Solicit-response:此操作可发送一个请求,并会等待一个响应。
4) Notification:此操作可发送一条消息,但不会等待响应。
WSDL 消息: 元素定义一个操作的数据元素。每个消息均由一个或多个部件组成。 元素相当于传统编程语言中一个函数调用的参数。
WSDL types: 元素定义web service使用的数据类型。为了最大程度的平台中立性,WSDL使用XML Schema语法来定义数据类型。
WSDL Bindings: 元素为每个端口定义消息格式和协议细节。
下面是WSDL 1.2的标准语法:
<wsdl:definitions name="nmtoken"? targetNamespace="uri">
<import namespace="uri" location="uri"/> *
<wsdl:documentation .... /> ?
<wsdl:types> ?
<wsdl:documentation .... /> ?
<xsd:schema .... /> *
</wsdl:types>
<wsdl:message name="ncname"> *
<wsdl:documentation .... /> ?
<part name="ncname" element="qname"? type="qname"?/> *
</wsdl:message>
<wsdl:portType name="ncname"> *
<wsdl:documentation .... /> ?
<wsdl:operation name="ncname"> *
<wsdl:documentation .... /> ?
<wsdl:input message="qname"> ?
<wsdl:documentation .... /> ?
</wsdl:input>
<wsdl:output message="qname"> ?
<wsdl:documentation .... /> ?
</wsdl:output>
<wsdl:fault name="ncname" message="qname"> *
<wsdl:documentation .... /> ?
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:serviceType name="ncname"> *
<wsdl:portType name="qname"/> +
</wsdl:serviceType>
<wsdl:binding name="ncname" type="qname"> *
<wsdl:documentation .... /> ?
<-- binding details --> *
<wsdl:operation name="ncname"> *
<wsdl:documentation .... /> ?
<-- binding details --> *
<wsdl:input> ?
<wsdl:documentation .... /> ?
<-- binding details -->
</wsdl:input>
<wsdl:output> ?
<wsdl:documentation .... /> ?
<-- binding details --> *
</wsdl:output>
<wsdl:fault name="ncname"> *
<wsdl:documentation .... /> ?
<-- binding details --> *
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ncname" serviceType="qname"> *
<wsdl:documentation .... /> ?
<wsdl:port name="ncname" binding="qname"> *
<wsdl:documentation .... /> ?
<-- address details -->
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
本章主要介绍了“WSDL协议”的内容,大家觉得有用的话记得每天来这里和小编一起学习涨薪技能哦。识别下方二维码领取更多学习资料、视频哦(笔芯)
附:川石信息全国校区最新开班时间,课程资料获取13691729932(微信同号)。