接口自动化测试(1)


一、架构

CRM客户关系管理系统

SAAS Software As A Service 软件即服务

PAAS Platform AS A Service 平台即服务

 

快速交付→ 快:自己去干、有结果、事事有回音、持续改进

单体架构——》垂直架构——》面向服务架构——》微服务架构(分布式)

二、接口测试

接口:系统与系统之间,组件与组件之间,数据传递交互的通道。

(系统之间:多个内部系统之间、内部系统与外部系统之间。程序之间:方法与方法之间,函数与函数之间,模块与模块之间)

接口测试:就是对系统或组件之间的接口进行测试,校验传递的数据正确性和逻辑依赖关系的正确性。

原理:主要针对的测试目标是服务器。(模拟客户端向服务器发送请求,测试服务器针对客户端请求,回发的响应数据是否与预期结果一致)

方法论:类比,不同的事物中找到共同点。

学习维度:

协议:本质是什么?
?
主流工具:
?
代码框架:
?
MockServer

 

三、API自动化测试

接?测试?被称为API测试,是软件测试的?种测试模式,它包含了两个维度,在狭义的?度上指的是对应?程序接?的功能进?测试,在?义的维度上是指集成测试中,通过调?API测试整体的功能来完成度,可靠性,安全性和性能。

借助工具、代码,模拟客户端发送请求给服务器,借助断言自动判断预期结果和实际结果是否一致。

 

接口测试这两年为什么这么火?

SAAS架构全面落地,服务端的稳定性显示的尤为重要

开发的模式改变,主要体现在前后端分离的模式上

 

测试工作:(面试题!!)

质量管理+测试效率提升

质量管理指的是:能够积极的寻求推动问题解决方法和持续改进质量

提升测试效率可以说是:通过技术手段来提升研发效率从而进一步提升测试效率。

早会:昨天干了什么?今天准备干什么?

 

四、金字塔模型:

越底层的应该投入大量的精力去做,越上层的投入少量的精力去做。

UI层:可以理解为功能测试;

service:接口测试(API);

Unit(单元测试)。

五、工具:

有很多主流的测试?具都可以做接?测试,如PostMan,JMeter,SoupUi等,除了?具还有在Python语?中很多 的第三?的库都是可以来做接?测试的,如:urllib,requests,aiohttp等。

 

六、协议(重点!!!)

1、协议:是一套标准、规则,要求通信的双方必须严格遵守。

HTTP协议,也可以称呼为“超?本传输协议”,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议。

2、默认的端口是80。http:80;https:443。

3、HTTP目前使用的版本是HTTP/1.1 最新的版本是HTTP/2.0

 

网络请求的查看步骤:(开发者工具)

打开网站(使用谷歌浏览器)→检查→Network、All→刷新网页

 

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就可以开始传输数据。

 

URI和URL

URI可以称为统?资源标识符,?URL是统?资源定位符。URI可以理解为标识某?个互联?的资源,?URL表示的资源的地点。HTTP协议中使?URI定位到互联?上的资源,这也是为什么互联?任意位置的资源我们都能够获取到的原因。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息URL。

HTTP协

在微服务的架构模式下,使?的也是轻量级的通信模式(REST API),在微服务的架构模式中,需要清楚的是它的通信可以分为同步通信模式和异步通信模式, 或者更加具体本质的说就是请求/响应和异步请求/响应(发布/订阅模式)。

 

HTTP请求流程:(重点!!!)

1、客户端与服务端之间建立TCP的链接请求

2、客户端发送Request请求到服务端

3、服务端Response响应回复客户端的请求

4、客户端与服务端之间关闭TCP的链接请求

持久连接:connection:keep-alive

持久连接 在HTTP的早期版本中,每次发送请求,都需要进??次TCP的连接和断开(相当于上图的步骤1和4),很明显这对服务端的性能损耗是非常大的,同时也是增加了通信量的开销。在HTTP/1.0版本开始以及后?的版本中,有了持久连接,也就是keep-alive, 它的特点是只要客户端或者是服务端没有明确断开连接,那么就得?直保持TCP的连接请求,持久连接减少了TCP 连接的重复连接和断开造成的性能损耗,减轻了服务端的负载,也提升了整体相求响应时间的性能。