springbootwebservice接⼝调⽤_接⼝⾃动化测试总结1
⽬前我们公司接⼝使⽤的是SCF协议,SCF是58⾃主研发的RPC框架,致⼒于在分布式环境下提供⾼性能,⾼可靠和透明化的RPC远程调⽤⽅案。
接⼝协议⽬前⼴泛使⽤的有http协议和RPC协议和webservice,在了解如何写这三种接⼝⾃动化框架前,需要搞明⽩什么是http协议,什么是RPC协议,以及什么是webservice以及三者的差异点。
HTTP协议
http协议是基于应⽤层的超⽂本传输协议,http是⼀个客户端和服务端请求和应答的标准,客户端发起⼀个请求到服务端的某个端⼝上,服务端接收响应并且把响应返回给客户端。
HTTP原理
1、客户端发起请求,想要请求服务器上的某些资源,请求信息携带协议,服务器域名、端⼝、请求路径、请求头部信息
2、基于域名解析到域名对应的ip地址,这⾥涉及到域名解析的过程。
(1)客户端在发起请求时⾸先查浏览器缓存是否保留了域名和ip的对应关系
(2)如果不到会去本地host⽂件查
(3)第⼆步不到就去查本地DNS解析器缓存
本地DNS服务器查的过程⼜是⼀个递归的过程,⾸先查根域名服务器,查到直接返回,查不到就去顶级域名服务器查最后返回ip 和域名的对应
3、TCP 三次连接
所谓的三次握⼿即TCP连接的建⽴。这个连接必须是⼀⽅主动打开,另⼀⽅被动打开的。以下为客户端主动发起连接的图解
(1)⾸先客户端像服务器发送⼀段TCP报⽂,SYN表⽰“请求建⽴连接”,seq=x,随后客户端进⼊SYN-SENT状态
(2)服务端接收客户端的TCP报⽂后结束LISTEN阶段,发送SYN,ACK标记,表⽰“允许建⽴连接”,服务端进⼊SYN-RECEIVE状态
(3)客户端收到服务端的TCP报⽂后再次给服务端发送SYN、ACK标记,明确客户端和服务端可以通信。客户端和服务器端都进⼊ESTABLISHED状态。
4、服务器处理客户端的请求,并把结果以response报⽂的形式发给客户端
5、TCP四次挥⼿
6、客户端渲染解析响应报⽂。
RPC协议
简单来说RPC就是从⼀台机器通过组装接⼝参数调⽤另外⼀台机器上的函数或者⽅法,并得到返回的结果。
RPC原理
⽐如说,⼀个⽅法可能是这样定义的:
Employee getEmployeeByName(String fullName)
那么:
⾸先,要解决通讯的问题,主要是通过在客户端和服务器之间建⽴TCP连接,远程过程调⽤的所有交换的数据都在这个连接⾥传输。
连接可以是按需连接,调⽤结束后就断掉,也可以是长连接,多个远程过程调⽤共享同⼀个连接。
第⼆,要解决寻址的问题,也就是说,A服务器上的应⽤怎么告诉底层的RPC框架,如何连接到B服务
调用webservice服务器(如主机或IP地址)以及特定的端⼝,⽅法的名称名称是什么,这样才能完成调⽤。⽐如基于Web服务协议栈的RPC,就要提供⼀个endpoint URI,或者是从UDDI服务上查。如果是RMI调⽤的话,还需要⼀个RMI Registry来注册服务的地址。
第三,当A服务器上的应⽤发起远程过程调⽤时,⽅法的参数需要通过底层的⽹络协议如TCP传递到B服务器,由于⽹络协议是基于⼆进制的,内存中的参数的值要序列化成⼆进制的形式,也就是序列化(Serialize)或编组(marshal),通过寻址和传输将序列化的⼆进制发送给B服务器。
第四,B服务器收到请求后,需要对参数进⾏反序列化(序列化的逆操作),恢复为内存中的表达⽅式,然后到对应的⽅法(寻址的⼀部分)进⾏本地调⽤,然后得到返回值。
第五,返回值还要发送回服务器A上的应⽤,也要经过序列化的⽅式发送,服务器A接到后,再反序列化,恢复为内存中的表达⽅式,交给A服务器上的应⽤
RPC和HTTP的区别:
(1)传输协议 rpc是基于tcp的, HTTP是基于应⽤层的
(2)因为rpc是基于tcpd 所以传输速度和效率更⾼,http是基于应⽤层的,报⽂有很多⽆⽤内容,传输效率低
(3)RPC的框架有Dubbo,可以跨操作系统在同⼀编程语⾔内使⽤
http框架有httpclient,跨系统跨编程语⾔的远程调⽤框架
相同点:底层通讯都是基于socket,都可以实现远程调⽤,都可以实现服务调⽤服务
相同点
WebService是什么?
基于Web的服务:服务器端整出⼀些资源让客户端应⽤访问(获取数据)
⼀个跨语⾔、跨平台的规范(抽象)
多个跨平台、跨语⾔的应⽤间通信整合的⽅案(实际)
1、SOAP协议是什么?
Webservice是基于SOAP协议传输数据。 SOAP⼜是⼀种简单的基于 XML 的协议,它使应⽤程序通过 HTTP 来交换信息。
2、WSDL是什么?
WSDL(Web Services Description Language)基于XML语⾔,⽤于描述Web Service及其函数、参数和返回值。它是WebService 客户端和服务器端能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,⼜是⼈可阅的,这将是⼀个很⼤的好处。
——可以视为接⼝⽂档
WSDL ⽂件保存在Web服务器上,通过⼀个url地址就可以访问到它。客户端要调⽤⼀个WebService服务之前,要知道该服务的WSDL⽂件的地址。
三、 请求webservice接⼝
1. 获取WSDL⽂件
2. 通过eclipse获取开发的源码
3. 准备接⼝⼊参数据调⽤接⼝数据,获取响应结果
接⼝测试就是依据接⼝⽂档,对接⼝⼊参以及接⼝的场景所做的⼀系列数据校验的过程,保证单个接⼝和接⼝之间数据的交换、传递和控制管理过程,以及相互逻辑依赖关系
本质上接⼝测试也是⼀种功能测试。
基于接⼝实现容易维护成本低,测试收益⼤,有着更⾼的产出⽐,是每个公司开展⾃动化测试的⾸选
既然接⼝很容易实现⾃动化,如果让你来做接⼝⾃动化那么你需要思考以下⼏个问题,
1、接⼝⾃动化框架⽤到哪些技术?
2、接⼝⾃动化测试有哪些难点?
3、如何维护测试数据?
4、接⼝⾃动化如何做到持续集成?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论