HTTP API Tools

API 接口管理工具

YApi 是一个可本地部署的、打通前后端及 QA 的、可视化的接口管理平台 https://yapi.ymfe.org
https://yapi.ymfe.org/
https://github.com/YMFE/yapi

开源的 api 管理工具
http://www.xiaoyaoji.cn/

Postman

Postman 请求生命周期

在 Postman 中,一个完整的 Postman 请求生命周期,除了常规的请求(request)和响应(response),还包括前置请求脚本(pre-request script)和后置测试脚本(tests script)。Postman 包含一个基于 Node.js 的强大运行态(runtime),允许用户在 pre-request script 和 tests 事件中编写 JavaScript 代码。
kniff

pre-request script

前置请求脚本(pre-request script)顾名思义就是在请求发送之前执行的脚本。
nmo5d

请求

在测试(tests)中使用脚本

Postman 支持在请求响应后通过测试脚本来验证请求是否符合预期。
3fegf
示例一:验证响应状态码是否是 200:

pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

示例二:验证返回的业务数据(JSON)是否符合预期:

pm.test("请求成功!", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql('success');
});

导入 curl 生成请求接口

从 charles 等抓包工具中请求地址复制为 CURL 粘贴至 postman 可直接生成接口请求
bviv3

变量

变量介绍

在测试过程中,经常要切换测试环境,本地环境、开发环境、测试环境、灰度环境等。
不同的环境一般就是 URI 不一样而已,也就是 IP、端口号会变;接口的路径和值基本是不变的。
Postman 允许用户在发送和接收时 使用变量,以提高工作效率和可读性(不过只能保存字符串类型的值,所以复杂数据类型需要借助于 JSON.stringify()JSON.parse() 来管理)。
Postman 支持在不同的作用域和上下文中使用变量,遵循就近原则,即如果在 Global 和 Environment 中都有变量 name,则会取 Environment 中的 name。
27o2e

变量应用

URL、Params、Authorization、Headers 和 Body 都可以使用环境变量

变量引用

语法:

zchas

变量分类

pm.globals.set("variable_key", "variable_value");
pm.globals.get("variable_key");
pm.collectionVariables.set("variable_key", "variable_value");
pm.collectionVariables.get("variable_key");
pm.environment.set("variable_key", "variable_value");
pm.environment.get("variable_key");
pm.variables.set("variable_key", "variable_value");
pm.variables.get("variable_key");

ejhb5

GUI

1nzub

8b12a

dca5k

z950s

代码设置 Tests

定义全局变量:pm.globals.set("变量名",变量值)


定义环境变量:pm.environment.set("变量名",变量值)

定义集合变量:pm.collectionVariables.set("变量名",变量值)

pm.globals.set("token1", "token1 value")

pm.environment.set("tokenxx", "tokenxx value")

pm.collectionVariables.set("tokencollect", "token collect value")

ig0eq

环境变量

多环境配置和应用

uv2sp

5t9rp来替换,这里我们是替换 host
vd2i7

导入环境配置

v18qs
下载的配置,是一个 json 串的文件,里面的内容是和网页版的配置相对应的,都是 key-value

全局变量

一般啥时候用全局变量,比如 token 保持登录态就要用全局变量。

w08lm

e0tg1

动态变量?Tests?

使用 Postman 抓包

Ref

ApiFox