- SoapUI 教程
- SoapUI - 主页
- 肥皂基础知识
- SOAP - 简介
- SOAP - 消息
- SOAP - 什么是 REST?
- SoapUI 基础知识
- SoapUI - 简介
- SoapUI - 功能
- SoapUI - NG Pro
- SoapUI - 安装和配置
- SoapUI-WSDL
- SoapUI - 项目
- SoapUI - 测试套件
- SoapUI - 测试用例
- SoapUI - 测试步骤
- SoapUI - 请求和响应
- SoapUI - 属性
- SoapUI - 财产转让
- SoapUI - 日志窗格
- SoapUI - 断言
- SoapUI - 故障排除
- SoapUI - 性能测试
- SoapUI - 负载测试
- SoapUI - RESTful Web 服务
- SoapUI - JDBC 连接
- SoapUI - JDBC 属性
- SoapUI - JDBC 断言
- SoapUI 有用资源
- SoapUI - 快速指南
- SoapUI - 有用的资源
- SoapUI - 讨论
SoapUI-WSDL
WSDL 代表 Web 服务描述语言。它是描述 Web 服务的标准格式。WSDL 由 Microsoft 和 IBM 联合开发。WSDL 发音为“wiz-dull”,拼写为“WSDL”。
WSDL ── 简史
WSDL 1.1 由 Ariba、IBM 和 Microsoft 于 2001 年 3 月作为 W3C 注释提交,用于描述 XML 协议上的 W3C XML 活动的服务。
WSDL 1.1 尚未得到万维网联盟 (W3C) 的认可,但它刚刚发布了 2.0 版本的草案,该草案将成为推荐标准(官方标准),因此得到了 W3C 的认可。
WSDL ── 注意事项
WSDL 是一种基于 XML 的协议,用于在去中心化和分布式环境中进行信息交换。WSDL 的一些其他功能如下:
WSDL 定义描述如何访问 Web 服务以及它将执行哪些操作。
它是一种用于描述如何与基于 XML 的服务进行交互的语言。
它是通用描述、发现和集成 (UDDI) 的一个组成部分,UDDI 是一个基于 XML 的全球商业注册机构。
WSDL 是 UDDI 使用的语言。
WSDL 用法
WSDL 通常与 SOAP 和 XML Schema 结合使用,通过 Internet 提供 Web 服务。连接到 Web 服务的客户端程序可以读取 WSDL 以确定服务器上可用的功能。使用的任何特殊数据类型都以 XML 模式的形式嵌入到 WSDL 文件中。然后,客户端可以使用 SOAP 实际调用 WSDL 中列出的函数之一。
了解 WSDL
WSDL 将 Web 服务分解为三个特定的、可识别的元素,这些元素一旦定义就可以组合或重用。
可以单独定义的 WSDL 的三个主要元素是 -
- 类型
- 运营
- 捆绑
WSDL 文档具有各种元素,但它们包含在这三个主要元素中,可以将它们开发为单独的文档,然后可以将它们组合或重用以形成完整的 WSDL 文件。
在本教程中,我们遵循CurrencyConverter WSDL:http://www.webservicex.net
格式和元素
货币转换器 WSDL 将如下所示 -
WSDL ─ 端口类型
<portType> 元素组合多个消息元素以形成完整的单向或往返操作。例如,<portType> 可以将一个请求和一个响应消息组合成一个请求/响应操作。这在 SOAP 服务中最常用。一个 portType 可以定义多个操作。
例子
- portType 元素定义单个操作,称为 ConversionRate。
- 该操作由单个输入消息 ConversionRateHttpPostIn 组成。
- Output消息的操作是ConversionRateHttpPostOut。
运作模式
WSDL 支持四种基本操作模式 -
单程
该服务接收一条消息。因此,该操作具有单个输入元素。单向操作的语法是 -
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken"> <wsdl:input name = "nmtoken"? message = "qname"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions>
请求 ─ 响应
该服务接收消息并发送响应。因此,该操作具有一个输入元素,后面跟着一个输出元素。为了封装错误,还可以指定可选的故障元素。请求-响应操作的语法是 -
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> <wsdl:input name = "nmtoken"? message = "qname"/> <wsdl:output name = "nmtoken"? message = "qname"/> <wsdl:fault name = "nmtoken" message = "qname"/>* </wsdl:operation> </wsdl:portType > </wsdl:definitions>
征求 ─ 回应
该服务发送消息并接收响应。因此,该操作具有一个输出元素,后面跟着一个输入元素。为了封装错误,还可以指定可选的故障元素。请求-响应操作的语法是 -
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> <wsdl:output name = "nmtoken"? message = "qname"/> <wsdl:input name = "nmtoken"? message = "qname"/> <wsdl:fault name = "nmtoken" message = "qname"/>* </wsdl:operation> </wsdl:portType > </wsdl:definitions>
通知
该服务发送一条消息。因此,该操作具有单个输出元素。以下是通知操作的语法 -
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken"> <wsdl:output name = "nmtoken"? message = "qname"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions>
WSDL ─ 绑定与服务
<binding>元素提供有关如何通过线路实际传输portType操作的具体细节。
可以通过多种传输(包括 HTTP GET、HTTP POST 或 SOAP)提供绑定。
绑定提供了有关使用什么协议来传输 portType 操作的具体信息。
绑定提供服务所在位置的信息。
对于 SOAP 协议,绑定是 <soap:binding>,传输是 HTTP 协议之上的 SOAP 消息。
您可以为单个 portType 指定多个绑定。
服务
<service>元素定义 Web 服务支持的端口。对于每一种受支持的协议,都有一个端口元素。服务元素是端口的集合。
Web 服务客户端可以从服务元素中了解以下内容 -
- 在哪里访问该服务,
- 通过哪个端口访问Web服务,以及
- 如何定义通信消息。
服务元素包括文档元素以提供人类可读的文档。
<wsdl:service name = "CurrencyConvertor"> <wsdl:port name = "CurrencyConvertorSoap" binding = "tns:CurrencyConvertorSoap"> <soap:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" /> </wsdl:port> <wsdl:port name = "CurrencyConvertorSoap12"binding = "tns:CurrencyConvertorSoap12> <soap12:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" /> </wsdl:port> <wsdl:port name = "CurrencyConvertorHttpGet" binding = "tns:CurrencyConvertorHttpGet"> <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" /> </wsdl:port> <wsdl:portname = "CurrencyConvertorHttpPost"binding = "tns:CurrencyConvertorHttpPost"> <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" /> </wsdl:port> </wsdl:service>