学习笔记之 接口测试

黑马软件
接口:数据交互的入口和出口,是一套规范一套标准。
硬件,如USB,电源接口等。
软件,前后端开发时共同参考遵守的一套数据交互的标准规范。用接口可以省去大量的沟通成本,提高效率。一般架构师制定(API文档)。
学习笔记之 接口测试
文章图片


接口测试:测试后端实现是否符合接口规范(不是测试接口本身)。
实现流程:模拟客户向服务器发送数据,然后查看响应
要素1: 定位服务器资源(通过 URL 实现: http://www.baidu.com | http://127.0.0.1:8000/资源路径)
要素2: 模拟用户提交数据
要素3:查看响应的结果是否符合预期

HTTP请求方法

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • DELETE(DELETE):从服务器删除资源。
RESTful 风格是约束接口操作的四种操作以及三个要素
**增:**
?要素1:URL +POST
?要素2: 多个数据 ------> 方式1: 键=值&键=值方式2: JSON 格式
?要素3: 200 | 201 +添加的记录
**删:**
?要素1: URL +GET|DELETE
?要素2:方式1: 键=值&键=值
?要素3: 200|204 + 无
**改:**
?要素1:URL + POST|PUT(更合适)
?要素2: ------> 方式1: 键=值&键=值方式2: JSON 格式
?要素3:200 | 201 + 修改后那条记录
**查:**
?要素1: URL + GET
?要素2:常用方式1 URL?键=值&键=值....
?要素3:200 + 一条或多条记录

状态码:
序号 状态码 动词 说明
01 200 OK [GET] 服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)幂等:无论执行操作多少次,结果都会执行1次结果相同
02 201 CREATED [POST/PUT/PATCH] 用户新建或修改数据成功
03 202 Accepted [*] 表示一个请求已经进入后台排队(异步任务)
04 204 NO CONTENT [DELETE] 用户删除数据成功
05 400 INVALID REQUEST [POST/PUT/PATCH] 用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
06 401 Unauthorized [*] 表示用户没有权限(令牌、用户名、密码错误)
07 403 Forbidden [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的
08 404 NOT FOUND [*] 用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
09 406 Not Acceptable [GET] 用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
10 410 Gone [GET] 用户请求的资源被永久删除,且不会再得到的
11 422 Unprocesable entity [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误
12 500 INTERNAL SERVER ERROR [*] 服务器发生错误,用户将无法判断发出的请求是否成功**

对结果进行判断
序号 方法 预期结果
01 GET collection:代码:200;数据:返回资源对象的列表(数组)
02 GET collection/resource:代码:200;数据:返回单个资源对象
03 POST collection:代码:200/201;数据:返回新生成的资源对象
04 PUT collection/resource:代码:200/201;数据:返回完整的资源对象
05 DELETE collection/resource:代码:204;数据:返回为空

新增数据时,数据是 JSON 格式的,必须设置 浏览器的 http 请求头,不然会当成普通文本处理
?Content-Typeapplicaton/json; charset=utf-8 (记住)
?Content-Type :提交的内容类型
?application/json : 数据类型是 JSON 格式 | 大类型/小类型 img/jpgimg/png .....
?charset=utf-8:设置编码集,utf-8 支持世界所有字符

JSON:是一种数据载体。
JSON 传输数据效率更高,所以部分场景下使用 JSON 替换 html 和 XML_(ajax)
但是 JSON 语法描述性不及 标签语言,所以部分场景还得使用 html 和 xml。如果传递的是少量数据的话,可能使用 JSON。
语法:
格式1(JSON对象):{"键1":"值1","键2":"值2".....}
格式2(JSON数组):[值1,值2,值3.....]
格式复合: {"name":"huluwa","age":"8","aihao":["救爷爷",“吐火”,"吐水"]}
?[{"name":"huluwa","age":"8"},{"name":"aotuman","age":"10"}......]
【学习笔记之 接口测试】

    推荐阅读