【发布时间】:2019-11-14 23:14:52
【问题描述】:
我想使用环境变量在 Postman 中设置基本授权。因为我对不同的 API 调用有不同的授权用户名和密码。
我根据以下设置我的邮递员:
在授权选项卡中:我选择了无身份验证
在标题选项卡中:键=Authorization 值=Basic{{MyAuthorization}}
在正文标签中:
{
"UserName": "{{UserName}}",
"ServiceUrl": "{{ServiceUrl}}"
}
//which set it from the envitonment variable
在预请求选项卡中:
// Require the crypto-js module
var CryptoJS = require("crypto-js");
// Parse the `username` and `password` environment variables
let credsParsed = CryptoJS.enc.Utf8.parse(`${pm.environment.get('admin')}:${pm.environment.get('admin')}`);
// Base64 encoded the parsed value
let credsEncoded = CryptoJS.enc.Base64.stringify(credsParsed);
// Set the valuse as an environment variable and use in the request
pm.environment.set('MyAuthorization', credsEncoded);
console.log(credsEncoded);
在测试选项卡中:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("LoginInfoID", jsonData.First.LoginInfoID);
然后我发送了请求并获得了未经授权。
之后,我使用用户名和密码将身份验证类型设置为基本身份验证 它工作正常,我从响应中得到了我想要的。
【问题讨论】:
-
您能展示一下您当前的 Postman 预请求脚本吗?您如何确定“不同”API 的用户名/密码?
-
其实现在我通过了普通的键值格式。
-
您的环境文件是什么样的?您是否添加了变量以便可以从脚本中引用它们?测试标签中有什么?
-
是的,我创建了带有变量的环境文件,并设置了脚本问题,当我设置除基本身份验证之外的其他类型时,我得到了 403 错误
-
${pm.environment.get('admin')}:${pm.environment.get('admin')}这将获得您在环境文件中保存两次的admin的值,因此它不会正确。
标签: postman postman-pre-request-script