接口测试
API自动化测试(基础知识)
一、什么是接口测试
接⼝测试⼜被称为API测试,是软件测试的⼀种测试模式,它包含了两个维度,在广义的⻆度上指的是对应⽤程序 接⼝的功能进⾏测试,在⼴义的维度上是指集成测试中,之所以这么重视接口测试是因为SAAS架构全面落地,服务端的稳定性显示的尤为重要,开发的模式改变,主要体现在前后端分离的模式上。
二、测试的工作是干嘛的
质量管理+测试效率提升
质量管理:指的是能够积极的寻求推动问题解决方案呵持续改进质量提升
测试效率:可以说是通过技术手段来提升研发效率从而进一步来提升测试效率
三、测试金字塔
基于上⾯的API的定义和思考维度,在结合⽬前互联⽹产品的开发模式(前后端分离的开发模式),在具体到成测 试的⼯作模型。或者更加本质的说,测试的⼯作可以分为两个维度:质量管理+测试效率,API测试是提升测试效率 最有利的⼀个⽅式。具体⻅⾦字塔的模型:
根据 Mike Cohn 的测试金字塔,你的测试组合应该由以下三层组成(自下往上分别是):
-
单元测试
-
服务测试 (接口测试)
-
用户界面测试 (功能测试)
越底层的应该投入大量的精力去做,越上层的投入少量的精力去做
四、HTTP
HTTP协议,也可以称呼为“超⽂本传输协议”,默认的端口是80
HTTP目前使用的版本是HTTP/1.1 最新的版本是HTTP/2.0
查看网络请求的步骤:
1、点击右键找到检查并点击
2、找到Network
HTTP/2.0版本使用:在分布式架构以及微服务架构中,基于新⼀代的架构设计有了gRPC的协议,它就是基于HTTP/2.0的版 本来进⾏设计的。
gRPC的协议:应用在互联网金融的领域
网络分层
TCP/IP分层管理
TCP/IP协议按层次主要为:
应⽤层,传输层,⽹络层,数据链路层。
应⽤层 :
应⽤层决定了向⽤户提供应⽤服务时通信的活动。⽽HTTP的协议和gRPC的协议就是属于应⽤层的协议。
传输层 :
应⽤层的下层是⽹络传输层,提供处于⽹络连接中的两台计算机之间的数据传输。
⽹络层 :
主要是⽤来处理⽹络上流动的数据包,所谓数据包就是⽹络传输中的最⼩单位,在该层协议中,规范了通过怎样的 路径到达⽬标计算机,并且把数据包传送给对⽅。
网络层:1、保障数据传输 2、知道数据传输的目的地
链路层 :
主要是处理连接⽹络的硬件部分,如操作系统,硬件设备的驱动等。
三次握⼿
为了确保把数据能够送到⽬标的服务器,TCP协议内部使⽤了三次握⼿的策略机制,也就是说在TCP协议中,TCP 把数据包送去后,TCP会进⾏确认对⽅是否收到,或者是确认是否成功送达,那么三次握⼿主要使⽤了TCP的标 志,具体为:SYN和ACK。⾸先Client端发送连接请求报⽂,Server段接受连接后回复ACK报⽂,并为这次连接分配 资源。Client端接收到ACK报⽂后也向Server段发送ACK报⽂,并分配资源,这样TCP连接就建⽴了。总结三次握⼿ 具体为:
-
第⼀次握⼿:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产⽣⼀个值seq=x,并将该 数据包发送给Server,Client进⼊SYN-SENT状态,等待Server确认;
-
第⼆次握⼿:Server收到数据包后由标志位SYN=1得知Client请求建⽴连接,Server将标志位SYN和ACK都置 为1,ack=x+1,随机产⽣⼀个值seq=y,并将该数据包发送给Client以确认连接请求,Server进⼊SYN-RCVD 状态,此时操作系统为该TCP连接分配TCP缓存和变量;
-
第三次握⼿:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1, ack=y+1,并且此时操作系统为该TCP连接分配TCP缓存和变量,并将该数据包发送给Server,Server检查ack 是否为y+1,ACK是否为1,如果正确则连接建⽴成功,Client和Server进⼊ESTABLISHED状态,完成三次握 ⼿,随后Client和Server就可以开始传输数据。
应用层
TOP、IP层
保障数据传输的安全性和可用性
URI和URL
URI可以称为统⼀资源标识符,
URL是统⼀资源定位符。
HTTP协议
在微服务的架构模式下,使⽤的也是轻量级的 通信模式(REST API),在微服务的架构模式中,需要清楚的是它的通信可以分为同步通信模式和异步通信模式
HTTP请求流程
第一步:客户端(Client)与服务端(Server)之间建立TCP请求
第二步:客户端发送Request请求到服务端
第三步:服务端Response响应回复客户端的请求
第四步:客户端与服务端之间关闭TCP的连接请求
持久链接:connection:keep-alive