测试工具 || SoapUI 之 Web Services技术浅谈
Posted 丽丽的小确幸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试工具 || SoapUI 之 Web Services技术浅谈相关的知识,希望对你有一定的参考价值。
大暑
“今天是大暑,但是躲在空调房里没有感受到热气。好像很幸福,好像又失去了很多。”
---丽丽的碎碎念
Lill's Happiness
开始学习SoapUI前,有必要先了解下Web Services。
这段时间的学习,让我对“知其然知其所以然”这句话深有体会,同时也对“你所学过看过记过的东西都会潜移默化地影响着你“。
在学习基础的过程中,艰辛且无聊,所以很多人都会越级去挑战高深的知识,往往导致所学浮于表面,死磕下来的东西始终不是属于自己的,当问到Why时就只能支支吾吾。
例如:当你要开始学习接口测试时,你应该先去了解下url的构成,了解下http和https,你会发现当你把基础打好了,所有你之前看不懂的一下子就会灵光咋现,通窍了~
Lill's Happiness
★
SOA
Service-Oriented Architecture,简称 SOA,面向服务架构又称“面向服务的体系结构”。
SOA 的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通信模型。
SOA 与 Web Services:“ SOA 不是 Web Services , Web Services 是目前最适合实现SOA的技术。”
Web Services 是一个平台独立的、低耦合的、自包含的、基于可编程的 web 的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
——虫师
早前的 Web Services 技术由 SOAP、WSDL 和 UDDI 就构成。
01
Soap
Simple Object Access Protocol,简称 SOAP,简单对象访问协议。
SOAP 是基于 XML 在分散或分布式的环境中交换信息的简单的协议。允许服务提供者和服务客户经过防火墙在互联网上进行通信。
SOAP 的设计是为了在一个松散的、分布的环境中使用 XML 对等地交换结构化的和类型化的信息提供了一个简单且轻量级的机制。
XML是可以扩展标记语言。
当 SOAP 消息真正需要在网络上传输的时候,SOAP 消息能够与不同的底层传输协议进行绑定,同时,SOAP 消息也可以在很多种消息传输模式中使用。包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用协议(RPC)等大量的应用程序。
02
WSDL
Web Services Description Language,网络服务描述语言,简称 WSDL。它是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。
WSDL 就可以看作 Web Services 接口的一种标准格式的“文档”。我们通过阅读 WSDL 就知道如何调用 Web Services 接口。
WSDL 文档主要使用以下几个元素来描述某个 Web Services:
1、Web Services执行的操作。(元素)
2、Web Services使用的消息。
3、Web Services使用的数据类型。(types)
4、Web Services使用的通信协议。(Bindings)
03
UDDI
Universal Description,Discovery and Integration,简称 UDDI,可译为 “通用描述、发现与集成服务”。
WSDL用来描述访问特定的 Web Services 的一些相关的信息,那么在互联网上,或者在企业的不同部门之间,如何来发现我们所需要的 Web Services 呢?而 Web Services 提供商又如何将自己开发的 Web Serivce 公布到因特网上呢?这就需要使用到 UDDI 了。
UDDI 可以帮助 Web 服务提供商在互联网上发布 Web Services 的信息。UDDI 是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web Services 。
Lill's Happiness
细心的小伙伴一定在前面发现了我特意把”早前的“这三个字放大加粗了。
冷静,因为我发现我也被坑了哈哈。
REST 定义了一组体系架构原则,你可以根据这些原则设计以系统资源为中心的 Web Services ,包括使用不同语言编写的客户端如何通过HTTP处理和传输资源状态。
如果考虑使用它的 Web Services 的数量,REST 近年来已经成为最主要的 Web Services 设计模型。
事实上,REST 对 Web 的影响非常大,由于它的使用非常方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。(我这暴脾气哦= = )
Lill's Happiness
★
REST
Representational State Transfer,简称 REST ,中文翻译为 “表现层状态转化” 。
REST 具有跨语言、跨平台的特点。所以,它是一种遵循 REST 风格的 Web Services。
{PS:
Web Services 技术的出现就是为了实现跨平台、跨应用程序进行通信。
跨平台,是指用 Java 开发的系统和用 .NET 开发的系统是否可以通信。
跨应用程序,是指开发的 A 系统和开发的 B 系统之间是否可以通信。}
如果一个架构符合 REST 原则,就称它为 REST ful架构。
要理解 REST ful架构,最好的方法就是去理解 Representational State Transfer 这个词组到底是什么意思,它的每一个词代表了什么涵义。如果你把这个名称搞懂了,也就不难体会 REST 是一种什么样的设计。
一、资源(Resources)
REST 的名称 “表现层状态转化” 中,省略了主语。 “表现层” 其实指的是 “资源” (Resources)的 “表现层” 。
所谓 “资源” ,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。
所谓 “上网” ,就是与互联网上一系列的 “资源” 互动,调用它的 URL。
二、表现层(Representation)
“资源” 是一种信息实体,它可以有多种外在表现形式。我们把 “资源” 具体呈现出来的形式,叫做它的 “表现层” (Representation)。
比如,文本可以用txt格式表现,也可以用html格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。
URL代表资源的实体,不代表它的形式。严格地说,有些网址最后的 “.html” 后缀名是不必要的,因为这个后缀名表示格式,属于 “表现层” 范畴,而URI应该只代表 “资源” 的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对 “表现层” 的描述。
三、状态转化(State Transfer)
访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。
互联网通信协议 HTTP 协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生 “状态转化” (State Transfer)。而这种转化是建立在表现层之上的,所以就是 “表现层状态转化” 。
客户端用到的手段,只能是 HTTP 协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源(也可以用于更新资源),PUT 用来更新资源,DELETE 用来删除资源。
Lill's Happiness
综合上面的解释,我们总结一下什么是 RESTful 架构:
(1)每一个URL代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现 “表现层状态转化” 。
Lill's Happiness
以上对于Soap、对于REST的解释,是为了接下来对SoapUI更好的学习~
基础是王道哦。理论总是很枯燥的,我们要学会的是把每个让你觉得枯燥的字词拆开来,揉碎,重新构建成自己直观的理解哦。
以上是关于测试工具 || SoapUI 之 Web Services技术浅谈的主要内容,如果未能解决你的问题,请参考以下文章