接口测试
api接口测试
技术栈:
协议
postman jmeter
接口测试框架
MockServer
微服务架构就是根据业务场景,把每个独立的业务场景单独分离成一个服务,这样服务和服务之间通信,通信通过REST API 或者gRPC的协议来进行交互。
常规开发模式中接口测试的场景:
开发同学:
1、前端程序员把代码写完,后端程序员把代码写完
2、前端和后端进行联调(前端把输入的账户和密码拿到,然后发送给(HTTP的协议)后端)
3、后端拿到前端发送的数据进行验证
测试同学:
1、验证这个过程中业务逻辑是否能够成功
金字塔模型
在金字塔的模型中,在测试分为三个维度来进行思考,分别是单元,服务和UI三个层级。这地方主要的说下服务层 的测试,在服务层的测试维度中,主要针对的是业务接口的测试,来验证接口功能是否完整,如内部逻辑,异常处 理。这样的目的是验证接口它是否稳定,所以接口的测试相对而言比较容易而且更加高效,测试用例的维护成本也 低。有很多主流的测试工具都可以做接口测试,如PostMan,JMeter,SoupUi等,除了工具还有在Python语言中很多 的第三方的库都是可以来做接口测试的,如:urllib,requests,aiohttp等。
http协议
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,(就是在web端请求获取内容)
目前HTTP最新的版本是:HTTP/2.0,,,但是业界使用的版本是HTTP/1.1
微服务的架构通信模式:
微服务的通信模式使用的方式有两种:
1、一种是采用基于REST API的轻量级的基于HTTP的协议
2、使用的是gRPC的协议
数据:文字和声音,当然还有其他的
TCP/IP分层管理
TCP/IP协议按层次主要为:应用层,传输层,网络层,数据链路层。
应用层
应用层决定了向用户提供应用服务时通信的活动。而HTTP的协议和gRPC的协议就是属于应用层的协议。
传输层
应用层的下层是网络传输层,提供处于网络连接中的两台计算机之间的数据传输。
网络层
主要是用来处理网络上流动的数据包,所谓数据包就是网络传输中的最小单位,在该层协议中,规范了通过怎样的
路径到达目标计算机,并且把数据包传送给对方。
链路层
主要是处理连接网络的硬件部分,如操作系统,硬件设备的驱动等。
websoket协议(auth2.0):
客户端:拿微信来说,手机微信,电脑微信,都是客户端
服务端:腾讯的微信服务器
协议:
http
websocket
gRPC
传输层 :核心的协议就是TCP/IP的协议
TCP/IP通信传输流
URI可以称为统一资源标识符,而URL是统一资源定位符。URI可以理解为标识某一个互联网的资源,而URL表示的 资源的地点。
HTTP是应用层的协议
在微服务的架构模式下,使用的也是轻量级的 通信模式(REST API),在微服务的架构模式中,需要清楚的是它的通信可以分为同步通信模式和异步通信模式, 或者更加具体本质的说就是请求/响应和异步请求/响应(发布/订阅模式)
REST API
Java:企业级开发领域具备非常强大的生命力,开发的技术栈非常完善,其中阿里的生态开发语言基本是Java
Python:数据分析,数据科学领域非常具备优势
Go:容器化的语言,应用在Docker和K8S的开发
PHP:轻量级的语言
Net:微软系列
三个语言开发,但是需要之间需要通信,需要数据传输,标准化就是REST API 使用统一的标准来进行交互
HTTP完整的请求流程:
发送Requests:
1、请求地址
2、请求方法
3、请求头
4、请求参数(可能有,也可能没有)
Response回复:
1、协议状态码
2、响应数据
3、响应头
通信模式:
1、同步通信:客户端发送请求给服务端,服务端必须得回应客户端的请求。
容易超时,客户端发送请求后,服务端迟迟没有回应客户端的请求
如果请求是存在大的计算量和逻辑存在问题,就会导致请求堵塞,后面的都积压
同步通信又可以说是请求/响应的模式
所有的M Q都可以说是队列机制,也可以说是生产者消费者的模式。所谓队列机制,遵守先进先出的规则
生产者消费者模式:生产后,基于进行快速的消费
总结:
架构:
1、单体架构
2、分布式架构
3、微服务的架构
服务和服务之间需要进行通信和调用:
1、同步通信模式
2、异步通信模式
协议:
1、http协议
http一个完整的请求流程
2、websocket
3、gRPC:远程过程调用(调用远程的服务感觉像调用自己本地的服务一样快)
通信:tcp/ip协议
请求方法
HTTP协议中常用的请求方法有4种:
GET:客户端从服务端获取资源
POST:客户端往服务端发送请求添加新的资源
PUT:客户端针对服务端已有的数据进行更新
DELETE:客户端删除服务端已有的数据
编程语言:
get:获取信息
set:设置信息
由于P UT和DELETE请求方法不安全,所以了很多时候,往往会使用POST来进行替代。
请求头:
发送Requests的组成部分:
1、请求地址
2、请求方法
3、请求头
Content-Type:指的是数据格式
Cookie:反爬虫,身份凭证
Referer:发送请求的地址是从哪里来的
User-Agent:发送网络请求的时候向服务端标注请求是通过什么浏览器或者什么软件(PostMan,JMeter)发送的
1、开发了一个APP,想看那个系统使用的用户比较多,统计user-agent的数据,进行分析
Response
Response响应部分:
1、协议状态码
200 请求成功
301 永久重定向
302 临时重定项
400 Bad Request 客户端请求错误
1、请求参数不对
2、请求头不对
401 Unauthorized 无权限访问该系统
403 Forbidden 有权限但是禁止访问
404 请求的资源不存在(请求的地址不存在,所以导致请求的资源也是不存在)
405 不被允许的请求方法
你请求的方法,没有定义对应的请求方法,但是你去进行访问
500 服务器内部错误
程序员的错误
504 GateWay Timeout
网关超时
2、响应数据
3、响应头(response headers)
找请求
常用的数据格式:
1、表单 application/x-www-form-urlencoded; charset=UTF-8(GBK)
2、json格式:application/json;charset=UTF-8 json数据格式:基于JSON的数据格式,但是数据类型是字符串
3、text/html :返回的是基于html的数据格式
4、text/xml:返回的是基于xml的数据格式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)