实现方式通过增加前置操作来完成,其中增加的是前置脚本。
官方文档地址:www.apifox.cn/help/app/sc…
首先,我们新建一个接口,请求数据类型为json,定义三个请求参数,loginName:登录账号,loginPwd:登录密码,password:明文登录密码,用于加密生成loginPwd的参数值。
上图点击“保存”按钮成功后,切换到“运行”Tab页签。点击“保存为用例”按钮,生成一条接口用例记录。接下来会在此用例上增加前置操作。
点击Apifox左侧的用例记录。
切换到“前置操作”Tab页签,增加一条自定义脚本。
脚本文本框粘贴以下内容:
/**
* crypto加密
* data 密码明文
* keyStr 密钥
*/
function encrypt(data, keyStr) {
//
keyStr = CryptoJS.enc.Latin1.parse(keyStr);
var iv = keyStr;
var encrypted = CryptoJS.AES.encrypt(data, keyStr, {
iv: iv,
mode: CryptoJS.mode.CFB,
padding: CryptoJS.pad.NoPadding
});
return encrypted.toString();
}
var paramJson = JSON.parse(pm.request.body.raw);
console.log(paramJson);
var password = paramJson.password;
var enpwd = encrypt(password, "thanks,farming22");
pm.environment.set("loginPwd", enpwd);
console.log(enpwd);
填写请求参数值后,点击“发送按钮”。
{{loginPwd}}为获取前置操作里设置的变量值。apifox要求如果变量是字符型,需要前后加上双引号。
详细介绍:www.apifox.cn/help/app/ap…
{
"loginName": "admin",
"loginPwd": "{{loginPwd}}",
"password": "111111"
}
查看控制台调试信息
其它更为复杂的操作,例如构造签名sign的方法: