目录
在调试接口过程中,经常使用Swagger,以前用postman,工具都挺好的,但还是用Swagger多些。前端时间看关注的微信公众号不停的推送Apifox的文章。就下载了Apifox,有同事问,每次测试都要调用登录接口,好烦呐。我就将原先使用postman的自动登录测试的脚本拿过来,稍微调整了下,写了个使用方法,分享出去了。有时间把它搬到网上,记录别忘了。
1.1 Apifox
1.1.1 设置环境变量
在右上角【三】中,根据环境设置不同的环境变量,这里选择【开发环境】,将用户名、密码等进行设置。requestToken和JwtToken的值可不设置,该值在下文的脚本中会动态改变。如下图:
设置登录相关的环境变量,属性如下:
userName,,admin,,
userPass,,123456,,
lang,,zh-CN,,
themes,,1,,
signedData,,,,
requestToken,,94732f29e1ed443d9bb7cfccad45357e20230424175427851,,
JwtToken,,eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxMTAwMDAwMDQwMDMwMjMwNDI0MTc1NDI3OTI2NDUwNjI4IiwiZXhwIjoxNjgyMzMzNjY3fQ.XS2EKCqDVOUQuEwFE2ZnUZC2VdJlyowdIGiWrtyykyg,,
1.1.2 编写公共脚本
在【项目设置】>【公共脚本】>【创建】,输入名称,编写登录脚本。如下图:
脚本如下:
// 获取环境前置URL
var baseUrl = pm.environment.get("BASE_URL");
// 获取登录所需要的参数
var userName = pm.environment.get("userName");
var userPass = pm.environment.get("userPass");
var lang = pm.environment.get("lang");
var themes = pm.environment.get("themes");
var signedData = pm.environment.get("signedData");
function sendLoginRequest() {
// 发送请求 获取requestToken api/fsmc/common/token/getToken
const tokenRequest = {
url: baseUrl + "/api/fsmc/common/token/getToken",
method: "GET"
};
pm.sendRequest(tokenRequest, function (err, res) {
if(err){
console.log(res);
console.log(err);
} else {
const jsonData = res.json();
pm.environment.set("requestToken", jsonData.data.token);
// 开始请求登录接口
var loginJson = {
"userName": userName,
"userPass": userPass,
"lang": lang,
"themes": themes,
"signedData": signedData
}
const loginRequest = {
url: baseUrl + "/api/fsmc/login/login",
method: "POST",
header: {
"Content-Type": "application/json",
"requestToken": jsonData.data.token,
},
body: {
mode: 'raw',
raw: JSON.stringify(loginJson),
}
};
pm.sendRequest(loginRequest, function (err2, res2) {
if(err2){
console.log(res2);
console.log(err2);
} else {
const jsonData2 = res2.json();
pm.environment.set("JwtToken", jsonData2.data.token);
}
});
}
});
}
// 执行脚本内容
sendLoginRequest();
1.1.3 设置前置操作
可在根目录、文件夹、方法中设置【前置操作】,为了简单在根目录中设置【前置操作】。如下图:
1.1.4 设置header值
选择某个方法,在请求参数中选【header】设置requestToken和JwtToken的值为动态值。如下图:
2.1 Postman
2.1.1 区别
虽然apifox的功能点多,但是其采用的是post的思路来设计的。因此方法步骤基本一致,这里不再详细来描述。区别点如图
Apifox
Postman
2.1.2 脚本变化
脚本基本无变化,设置的步骤基本和Apifox一致。