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

Postman 邮递员动态未设置环境变量,postman,postman-collection-runner,Postman,Postman Collection Runner,有没有一种方法可以动态地取消设置环境变量? 我想访问环境变量并执行查找&替换/删除操作,以便能够更动态地进行测试 例如,假设我想测试用户的创建,我创建了{{tmp username}}、{{tmp email}等变量。。。在下一次测试中用其他值替换它们,并在完成后将其删除 我会在tmp上做一个stringsearch-如果我知道如何使用代码访问这些 提前感谢您的回复 澄清一下,这个问题是不同的: 这涉及到知道您希望取消设置的var的确切名称。我想通过变量搜索或迭代来删除或编辑它们。您是否可以使用

有没有一种方法可以动态地取消设置环境变量? 我想访问环境变量并执行查找&替换/删除操作,以便能够更动态地进行测试

例如,假设我想测试用户的创建,我创建了{{tmp username}}、{{tmp email}等变量。。。在下一次测试中用其他值替换它们,并在完成后将其删除

我会在tmp上做一个stringsearch-如果我知道如何使用代码访问这些

提前感谢您的回复

澄清一下,这个问题是不同的:
这涉及到知道您希望取消设置的var的确切名称。我想通过变量搜索或迭代来删除或编辑它们。

您是否可以使用
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}'`))

可能重复的您是否可以使用数据文件和收集运行程序来执行此操作?@Danny Dainton我希望避免使用单独的文件,因为我们可以共享收集和环境,而无需共享数据文件。共享这些文件还存在一个安全问题。虽然这确实是一个有趣的脚本,但它使用了确切的变量名。我希望更动态地访问环境变量。到目前为止,您尝试了什么看起来你只是在等待答案。也许可以尝试使用
pm.environment.toObject()
函数中的
键创建
clean
数组值。我已经更新了我的答案,现在应该更加动态,并且基于已设置的变量。太棒了!这正是我想要的。我不知道它们可以设置为对象。谢谢@Danny Dainton!我通过如下方式记录键值进行了测试:var env=pm.environment.toObject();对于(env中的var k){if(Object.prototype.hasOwnProperty.call(env,k)){console.log(“键是“+k+”,值是“+env[k]);}}您可能可以添加一个
if
语句,只清除那些以
tmp
等开头的语句。为了找到有效的方法,只需对其进行处理即可。所有API参考信息都在这里