March 20, 2022
By: syh
Apifox简单使用
# Apifox
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!
目前未开源,没有离线,强制登录
Postman
一眼看去跟postman很像。
Postman 有的功能 Apifox 都有(如环境变量、前置/后置脚本、Cookie/Session 全局共享等),并且比 Postman 更高效好用。

环境变量
可以配置环境变量,全局参数,全局变量。

前置/后置脚本
前置:接口运行前要触发的事情
后置:接口运行后要触发的事情
前置对象
添加前置对象脚本
运行接口之前运行授权接口并并保存环境变量中

// 定义发送登录接口请求方法
function sendLoginRequest() {
// 获取环境里的 前置URL
const baseUrl = pm.environment.get('BASE_URL');
// 登录用户名,这里从环境变量 LOGIN_USERNAME 获取,也可以写死(但是不建议)
const username = pm.environment.get('username');
// 登录用户名,这里从环境变量 LOGIN_PASSWORD 获取,也可以写死(但是不建议)
const password = pm.environment.get('password');
const tokenUrl = pm.environment.get('tokenUrl');
// 构造一个 POST x-www-form-urlencoded 格式请求。这里需要改成你们实际登录接口的请求参数。
const loginRequest = {
url: baseUrl + tokenUrl,
method: 'POST',
header: 'Content-Type: application/json', //注意要在Header中声明内容使用的类型
body: {
mode: 'raw',
raw: JSON.stringify({ username: username, password: password }),
}
};
// 发送请求。
pm.sendRequest(loginRequest, function (err, res) {
if (err) {
console.log(err);
} else {
// 读取接口返回的 json 数据。
// 如果你的 token 信息是存放在 cookie 的,可以使用 res.cookies.get('token') 方式获取。
// cookies 参考文档:https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-cookies
const jsonData = res.json();
console.log(jsonData.data["access-token"])
// 将 token 写入环境变量 token
pm.environment.set('token', jsonData.data["access-token"]);
}
});
}
sendLoginRequest();
后置接口
可以直接执行授权接口然后保存环境变量

const jsonData = pm.response.json();
pm.environment.set("token", jsonData.data["access-token"]);
从环境变量获取token (设置全局参数)

Swagger
点击项目预览-》创建分享


点击...->复制连接

Mock
mock创建跟创建接口一样的(选中mock环境)

测试单元
可以写的接口测试
点击自动化测试-》创建用例

添加要测试的接口

测试报告