我可以在 newman 中使用邮递员集合变量吗?

Can I use postman collection variable inside newman?

使用作用域中的变量:Postman 中的集合工作正常。

但是当我导出集合并在 Newman 中使用它时,它并没有像我预期的那样工作。

1) 变量在集合 json 内,在文件末尾 - 好的。

2) 我使用这个代码:

var obj = {};
obj.categories = pm.variables.get("category_id");
obj.packages = pm.variables.get("package_id"); 
obj.type = "add";
pm.globals.set("switch_json", JSON.stringify(obj));
console.log("request body: " + pm.globals.get("switch_json"));

在预请求脚本中获取 2 个集合变量的值(category_id、package_id)。

3) 在 Postman 内部一切正常,console.log return:

request body: {"categories":"14","packages":"2","type":"add"}

4) 纽曼内部 console.log return 仅:

'request body: {"type":"add"}'

纽曼不支持集合变量吗?

您应保存您的环境(即 my_environment.json),然后在您的 newman 命令中使用 -e 选项来使用它。

看看 here 纽曼选项

希望这对您有所帮助

亚历山大

集合变量存储在编辑下集合的变量选项卡中。导出集合时共享初始值而不是当前值。纽曼将访问这些(初始值)值。

我四处寻找在命令行上设置集合变量的方法,而不使用环境文件,但没有找到任何答案,所以我只是使用 --env-var 进行了测试并且它起作用了。

在原始问题的情况下,它看起来像这样:

newman 运行 xxxxxxx --env-var package_id=14