Postman:访问环境变量或从文件中读取

dy2hfwbg  于 2023-02-12  发布在  Postman
关注(0)|答案(2)|浏览(251)

我尝试测试一个需要AWS凭据(AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN)的API,现在我在Postman环境中显式设置它们,但每次刷新凭据时都需要这样做,所以我在寻找一种自动添加这些凭据的方法,并找到了Postman预请求脚本。
不幸的是,没有process.env,也没有fs.readFileSync(读取~/.aws/credentials)。有没有其他方法从外部传递信息 Postman ?

yyyllmsg

yyyllmsg1#

您可以使用Newman传递这些值:
--env-var标志可以使用集合{{token}}中的resolve占位符变量来解析运行时传递的值。
从命令行使用纽曼时

newman run collection.json --env-var "token=$TOKEN"

将纽曼用作库时:

const newman = require('newman')

newman.run({
  collection: 'collection.json',
  envVar: [ 
      { "key":"token", "value":`${process.env.TOKEN}`}
  ],
})
ct3nt3jp

ct3nt3jp2#

我是这么解决的,
1.构建了一个在我的计算机端口8080上运行的API。此GET API端点将读取位于~/.aws/credentials的AWS凭据,并将其返回为
{" aws访问密钥ID ":""、"aws机密访问密钥":""}
1.在Postman客户端工具中,我创建了名为keysecret的集合变量
1.在集合Pre-request Script中添加了此代码,此代码的目的是调用在我的计算机上运行的API端点,并接受有效负载响应和更新集合变量

pm.sendRequest({
    url: "http://localhost:8080/aws/credentials",
    method: "GET",
    }, function (_, response) {
        if (response.status == "OK") {
            const body = response.json()
            pm.collectionVariables.set("key", body.aws_access_key_id)
            pm.collectionVariables.set("secret", body.aws_secret_access_key)
            return
        } else {
            throw new Error(response.text() || "Error fetching aws credentials")
        }
    }
)

1.我在集合中的API请求现在可以使用keysecret变量值来执行后续步骤。
我看到的一个缺点是团队中的每个开发人员都必须拥有这个本地API端点。我很想知道是否有更好的方法来解决这个问题。

相关问题