邮递员动态未设置环境变量

时间:2018-06-25 13:31:57

标签: postman postman-collection-runner

是否可以动态地取消设置环境变量? 我想访问环境变量,并执行查找和替换/删除操作,以便可以更动态地进行测试。

例如,假设我要测试用户的创建,我创建了{{tmp-username}},{{tmp-email}}之类的var,等等...用其他值替换它们以进行下一次测试,然后完成后将其删除。

如果我知道如何使用代码访问这些内容,我会在tmp上进行字符串搜索...

在此先感谢您的回复

为澄清起见,此问题有所不同:Postman: How to delete/clear postman environment variable at run-time 这涉及知道您要取消设置的var的确切名称。我想搜索或遍历var以删除或编辑它们。

1 个答案:

答案 0 :(得分:1)

您能否使用Tests标签中的函数来遍历变量,并在最后一次测试运行后清除它们?

例如:

function cleanup() {
    const clean = _.keys(pm.environment.toObject())
    _.each(clean, (arrItem) => {
        pm.environment.unset(arrItem)
    })
}
cleanup()

这不会“替换”这些值,但会让您有信心不再使用运行期间设置的值。

编辑

如果要清除一组特定的变量(已给定前缀的变量),则可以使用以下方法:

function cleanup() {
    const clean = _.keys(pm.environment.toObject())
    _.each(clean, (arrItem) => {
        if (arrItem.startsWith("tmp")) {
            pm.environment.unset(arrItem)
        }
    })
}
cleanup()

如果要查看所有键和值,可以使用它们将它们记录到控制台:

_.map(pm.environment.toObject(), (value, key) => console.log(`The key is '${key}' and the value is '${value}'`))