Apifox使用
因为之前用 apipost 的时候, 有些接口是需要先登录得到 token的, 把 token 放到请求头里才能正常用, 这样实在是太麻烦了
痛点:
- 大部分接口有前置操作, 还是重复的那种
- 一个接口写好了,别的接口崩了,需要能够一次请求所有接口,进行测试
- JMeter 不会用, 麻烦
结果 apifox 都能解决
我的方式是把需要前置操作的接口放到同一个目录下, 然后在目录中写好前置操作的脚本, 内容如下
const echoPostRequest = {
url: pm.environment.get('BASE_URL') + "/auth/login",
method: "POST",
header: {
"Content-Type": "application/json"
},
body: {
mode: "raw", // 此处为 urlencoded
// 此处为 urlencoded
raw: JSON.stringify({ username: 'admin', password:'password' }),
},
};
pm.sendRequest(echoPostRequest, function (err, response) {
var token = response.json().data.token;
pm.environment.set('token', token);
var headers = pm.request.headers;
headers.upsert({
key: 'token',
value: pm.environment.get("token"),
});
});
然后使用的时候只要在接口里设置 {{token}}
就可以了
可能用的格式
// body 为 x-www-form-urlencoded 格式
body: {
mode: "urlencoded", // 此处为 urlencoded
// 此处为 urlencoded
urlencoded: [
{ key: "account", value: "apifox" },
{ key: "password", value: "123456" },
],
},
/*
// body 为 form-data 格式
body: {
mode: 'formdata', // 此处为 formdata
// 此处为 formdata
formdata: [
{ key: 'account', value: 'apifox' },
{ key: 'password', value: '123456' }
]
}
// body 为 json 格式
header: {
"Content-Type": "application/json", // 注意:header 需要加上 Content-Type
},
body: {
mode: 'raw',// 此处为 raw
raw: JSON.stringify({ account: 'apifox', password:'123456' }), // 序列化后的 json 字符串
}
// body 为 raw 或 json 格式
body: {
mode: 'raw',
raw: '此处为 body 内容',
}
*/
断言
// 对返回结果进行断言
pm.sendRequest("https://postman-echo.com/get", function(err, res) {
if (err) {
console.log(err);
}
pm.test("response should be okay to process", function() {
pm.expect(err).to.equal(null);
pm.expect(res).to.have.property("code", 200);
pm.expect(res).to.have.property("status", "OK");
});
});
Apifox 也可以直接进行性能测试