接口测试(一)


接口测试:
1、协议协议:
http  websocket  Dubbo

    gRPC

2、接口测试的工具:PostMan,JMeter

3、接口测试的框架

4、MockServer

接口测试是目前所有测试人员必须掌握的技术栈

1、流量回放

2、混沌工程(混沌理论)

3、全链路监控&分布式

 金字塔模型

1、金字塔模型把开发测试的模型分为三层,分别是单元测试,接口测试,和UI测试

2、unit:单元测试;services:接口测试(API自动化测试);UI:UI测试(功能测试,ui自动化测试)

3、越底层的,越应该投入更多的精力去保障,越上层的,投入少量的精力去保障

在金字塔的模型中,在测试分为三个维度来进行思考,分别是单元,服务和UI三个层级。

服务层的测试,在服务层的测试维度中,主要针对的是业务接口的测试,来验证接口功能是否完整且稳定,如内部逻辑,异常处理。

所以接口的测试相对而言比较容易而且更加高效,测试用例的维护成本也低。有很多主流的测试工具都可以做接口测试,如PostMan,JMeter,SoupUi等

除了工具还有在Python语言中很多的第三方的库都是可以来做接口测试的,如:urllib,requests,aiohttp等

单体架构  微服务架构  面向服务架构(B/S模型)  分布式架构  

单体架构的开发模式:单体架构的模式是把前后以及所有的业务场景的代码都整合到一起

 微服务架构模式:把每个独立业务场景单独分离成一个服务,这样服务和服务之间通信通过REST API或者gRPC的协议来进行交互

微服务的架构模式

saas化:Software As A Service 软件即服务

pass化:Platform As A Service 平台即服务

微服务的通信模式使用的方式有两种:

1、一种是采用基于REST API的轻量级的基于HTTP的协议

2、使用的是gRPC的协议

数据 TCP/IP协议按层次主要为:应用层,传输层,网络层,数据链路层。
应用层
应用层决定了向用户提供应用服务时通信的活动。而HTTP的协议和gRPC的协议就是属于应用层的协议。
传输层
应用层的下层是网络传输层,提供处于网络连接中的两台计算机之间的数据传输。核心的协议就是TCP/IP的协议,TCP/IP通信传输流 网络层
主要是用来处理网络上流动的数据包,所谓数据包就是网络传输中的最小单位,在该层协议中,规范了通过怎样的
路径到达目标计算机,并且把数据包传送给对方。
链路层
主要是处理连接网络的硬件部分,如操作系统,硬件设备的驱动等。  

可以理解为

1、服务端的确认:客户端发送数据出去,服务端需要确认我收到了
2、服务端反馈:服务端告诉客户端,你发送的数据我这边确认收到了
3、客户端确认:客户端需要向服务端再次反馈,客户端收到服务端的反馈了

websoket协议(auth2.0):
客户端:拿微信来说,手机微信,电脑微信,都是客户端
服务端:腾讯的微信服务器 websocket协议:客户端与服务端始终保持持久连接不会断开   URI可以称为统一资源标识符,而URL是统一资源定位符。URI可以理解为标识某一个互联网的资源,而URL表示资源的地点。   REST API  三个语言开发,但是需要之间需要通信,需要数据传输,标准化就是REST API 使用统一的标准来进行交互 Java:企业级开发领域具备非常强大的生命力,开发的技术栈非常完善,其中阿里的生态开发语言基本是Java
Python:数据分析,数据科学领域非常具备优势
Go:容器化的语言,应用在Docker和K8S的开发
PHP:轻量级的语言
Net:微软系列  

协议 web1.0 web2.0 移动互联网

HTTP:超文本传输协议,应用层协议;最新版本HTTP/2.0(gRPC协议基于HTTP/2.0的版本来进行设计) 但广泛使用是HTTP/1.1

发送Requests:
1、请求地址
2、请求方法
3、请求头
4、请求参数(可能有,也可能没有)
Response回复:
1、协议状态码
2、响应数据
3、响应头

通信模式:

异步通信:客户端和服务端不需要关注对方的存在,只需关注对应的MQ的消息。对于耗时操作,异步模式会在开启任务过后就立即往后执行下一个任务,对耗时操作的后续逻辑一般会通过回调函数的方式定义      耗时任务执行完毕就会自动执行回调函数中的处理。 同步通信:客户端发送请求给服务端,服务端必回应客户端请求,易超时后一个任务必须等待前一个任务结束才能够开始执行,如果请求是存在大计算量和逻辑存在问题,就会导致请求堵塞 在微服务的架构模式下,使用的也是轻量级的通信模式(REST API),在微服务的架构模式中,需要清楚的是它的通信可以分为同步通信模式和异步通信模式, 或者更加具体本质的说就是请求/响应和异步请求/响应(发布/订阅模式) MQ:RabbitMQ,Kafka(linkyin),ActivityMQ(alibaba) 所有的 MQ 都可以说是队列机制(遵守先进先出的规则),也可以说是生产者消费者的模式。
生产者消费者模式:生产后,基于进行快速的消费