当我们在系统的登录页面访问输入的密码的时候,密码需要以加密的方式传给后台接口,这种方式我们用apifox接口测试中怎么模拟呢?
需要在【前置操作】中添加加密密码的公共脚本:
加密密码的公共脚本为:
pm.sendRequest(pm.environment.get('BASE_URL')+"/auth/getPublicKey",function(err,response){varpublicKey=response.json().publicKey;console.log("PublicKey is : ")console.log(publicKey);varparamJson=JSON.parse(pm.request.body.raw)console.log(paramJson)varpassword2=paramJson.password2 console.log(password2)varencryptPwd=encrypt(password2,publicKey)console.log(publicKey)console.log(paramJson)pm.environment.set("encrptPWD",encryptPwd);});// 加密functionencrypt(encryptData,pubk){varjsrsasign=require("jsrsasign");pubk="-----BEGIN PUBLIC KEY-----"+pubk+"-----END PUBLIC KEY-----";// 读取解析pem格式的秘钥, 生成秘钥实例 (RSAKey)varpub=jsrsasign.KEYUTIL.getKey(pubk);varenc=jsrsasign.KJUR.crypto.Cipher.encrypt(encryptData,pub);// console.log("jsrsasign decrypt: " + enc);// console.log("jsrsasign hextob64: " + jsrsasign.hextob64(enc));returnjsrsasign.hextob64(enc);}登录成功之后返回的token也可以使用变量的形式进行存储。便于其他接口的使用。