如何测试webservice接口

看过网上很多对Web Service的解释,有些文章写得通俗易懂,但是缺少深度解读;有的文章图文并茂,但是没有现成案例;有的文章非常详细,但是没有直观感受。

于是,我想从测试一个web service接口的角度,写一篇比较系统的文章,来进一步认识web service。

Web Service服务是什么

首先要知道什么是Service,才能理解 Web Service。

服务(Service)是计算机提供的某种功能,在以前的计算机中,通常以后台程序(Daemon)的形式存在。比如,在计算机中可以安装MySQL服务,提供访问数据库的功能;在计算机中安装SSH服务,提供远程连接的功能。

服务可以分为两种:本地服务和网络服务。本地服务是在当前计算机上能访问的服务,其他计算机无法访问;网络服务是在另一台计算机上提供服务,其他计算机通过网络连接访问服务,网络既可以是远程的web服务,也可以是局域网服务。

举个例子,我想做一个书籍阅读的App,我已经把书籍的展示页面,收藏书籍这些功能都实现了,但是我既不是写作者,也不是出版社,我根本就没有任何的新闻内容可以展示到 App 上。

我想了两个办法:第一个办法就是把我现在已经有的书籍录入到App中,用户安装我的App后,不需要联网也是可以阅读书籍的,我提供的书籍数据这种服务就是本地服务。

image-20220319195828846

第二个办法是我直接和出版社合作,直接通过出版社提供的网络服务获取书籍内容,我的App只负责展示,当用户需要某本书籍时,通过访问出版社提供的服务就能得到书籍内容。

这种通过网络去获取其他电子内容的服务就是Web Service。通过这种方式,我还可以实现服务聚合(Service Mashup),同时和多个出版社合作,我可以自己实现一套统一的 Web Service接口,对接不同的出版社内容。任何形式的网络服务,不管返回HTML、JSON、XML还是图片,都是Web Service。

image-20220319195946847

Web Service原理

本质上来说,Web Service就是提供一个数据服务,而其他客户端应用通过网络来获取数据,这些客户端可以是浏览器,可以是手机App,可以是桌面应用,可以是电视盒子,可以是智能手表。

请求服务和响应服务的数据格式由双方制定(实际上一般由服务方指定,客户端按照要求操作),可以是 HTML,可以是 JSON,也可以是XML等其他格式。

image-20220316165341398

实现Web Service的技术架构主要有两种方式:

  • REST,使用统一的无状态操作集来表示web资源,目前的主要数据格式是JSON,但也可以使用XML。
  • 非REST,服务可以不使用统一的指令集,进行任意的组合操作,比如RPC。

广义上的 Web Service 几乎包括了所有的网络服务,而我们平时谈论的Web Service,是特指 W3C 定义的概念。

A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

概括下重点就是说:Web Service通过WSDL描述了一个网络通讯接口,其他的系统可以使用SOAP协议和web service交互数据,SOAP基于HTTP实现,并且使用XML来组织数据。

有点难理解对不对,接下来我们一一解释。

Web Service协议

接下来谈论的Web Service都是指 W3C Web Service,不再是广义上的。要理解这个定义,需要先弄清楚几个概念:WSDL、SOAP、HTTP、XML。

WSDL文件详解

WSDL 是Web Service 的接口文档,和你在 Swagger 中看到的接口描述作用完全一样。通过WSDL,客户端知道该发送什么格式的请求数据,才能被服务正确解析。

WSDL(Web服务描述语言,Web Services Description Language)读作wiz-dəl,用来描述Web服务的公共接口。它描述了如何调用服务,需要什么参数,以及返回什么数据结构,它的用途大致类似于编程语言中对接口(interface)的类型说明。

image-20220316172507408

一个WSDL的描述一般类似这样,实际编写时一般不需要手工填写,也不需要去深入看里面的构成,由工具生成就可以了。 在这个Demo网页中可以看到更多示例,之后会有具体的案例说明。

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://www.w3.org/ns/wsdl" 
             xmlns:tns="http://www.tmsws.com/wsdl20sample" 
             xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/"
             xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/"
             targetNamespace="http://www.tmsws.com/wsdl20sample">

<documentation
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值