什么是接口
Posted on Wed, 25 Dec 2024 10:35:00 +0800 by LiangMingJian
什么是接口
我们先来看一张图,从这张图来了解什么是接口。
如图中 A 线,A 线指向一个电灯的开关,这个电灯的开关就可以称为接口。它有两个状态——开和关,我们可以通过选择不同的参数来实现电灯的开关。
实际我们知道电灯的开关其实是通过零线、火线来操控的,而接口呢,其实就是把这些复杂的操作简化了,让你看到的只有一个开关。而我们做接口测试也只需要测试这个开关就可以完成任务。
- 当你访问 http://127.0.0.1:8080/light?opt=open ,让零线、火线连通,此时灯亮。
- 当你访问 http://127.0.0.1:8080/light?opt=close ,让零线、火线断开,此时灯灭。
接口的结构
一个URL就是一个接口,接下来需要理解一下HTTP的URL是怎么组成为一个接口的,如图:
- 请求协议:如 http — 普通的http请求,https — 加密的http请求,ftp — 文件传输协议
- 请求IP:提供接口的系统所部署的服务器地址
- 请求端口:如果不填端口,默认是80,否则需要填写端口号
- 接口路径:指系统提供的接口在什么位置
- 接口参数:参数在接口路径后,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数
- 参数值: 接口参数的值
接口的 HTTP 参数
请求方式
GET --- 通过请求URI得到资源
POST --- 用于添加新的内容
PUT --- 用于修改某个内容
DELETE --- 删除某个内容
CONNECT --- 用于代理进行传输,如使用SSL
OPTIONS --- 询问可以执行哪些方法
PATCH --- 部分文档更改
PROPFIND (wedav) --- 查看属性
PROPPATCH (wedav) --- 设置属性
MKCOL (wedav) --- 创建集合(文件夹)
COPY (wedav) --- 拷贝
MOVE (wedav) --- 移动
LOCK (wedav) --- 加锁
UNLOCK (wedav) --- 解锁
TRACE --- 用于远程诊断服务器
HEAD --- 类似于GET, 但是不返回body信息, 用于检查对象是否存在, 以及得到对象的元数据
请求头
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度
Accept:image/gif.image/jpeg./
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.
请求体
请求体就是请求等正文了,可以有很多种请求体。最常用的是 json格式
进行接口测试前的准备
做接口测试,需要开发提供接口文档。最重要的有这几点,确定了这些,才能做好接口测试。
- 被测接口的地址
- 接口参数,以及各个参数的说明
- 必要的http头与http体 ( http头是可以自定义的,可以用来校验是否是自己人访问 )
- 接口返回什么值,以及各个返回值的说明
- 接口是干什么的
RESTful API
一个用户接口可以通过以下4种不同方式的请求,来做不同的事情:
- 获取用户信息
- 创建用户
- 修改用户
- 删除用户
你完全可以像“灯”的那个例子,用GET请求来传递不同的参数来实现,但是这样如果接口多了,就会很混乱,很难管理。这时,我们需要一种规则:
- 当用“GET”方式时,只用来获取数据,成功了返回http状态码200
- 当用“POST”方式时,只用来创建数据,成功了返回http状态码201
- 当用“PUT”方式时,只用来修改数据,成功了返回http状态码203
- 当用“DELETE”方式时,只用来删除数据,成功了返回http状态码204
- 当请求发送失败,返回http状态码400
这样子的规则,我们称它为 RESTful 标准。
如何进行接口测试
前面的搞清楚了,接口测试就简单了,无非就是这几个步骤。
- 拿到接口的url地址
- 查看接口是用什么方式发送
- 添加请求头,请求体
- 发送查看返回结果,校验返回结果是否正确
这是正常的一套流程,异常的情况,比如参数不传值,传的值不正确,明明要求用"GET"请求发送,偏要用"POST"请求发送等等,有很多异常情况,这里便不再举例。