特征
Postman添加了对变量,授权,预请求和测试脚本的支持.(从版本5.4.1开始,它存在于集合AND文件夹级别)
用例
假设我想在登录端点被命中时存储刷新令牌.我的测试脚本需要创建/更新COLLECTION变量,而不是全局变量或环境变量.
一旦该refresh_token可用于集合,其他测试和预请求脚本,我认为有一种方法可以通过类似于pm.environment或pm.globals的API访问它们.(例如,pm.collection)
题
我找不到任何关于如何通过预请求脚本或测试来访问或修改它们的文档......有谁知道如何做到这一点?也许这没有被完全考虑过,或者没有完全实现,但我想我会与其他人一起寻求帮助.
临时解决方案
作为一个完整的黑客,我将我需要的东西存储为命名空间环境变量.它并不理想(在其他系列中工作时会使事情变得混乱),但它的工作正常.
J.L*_*Lin 19
集合变量
您可以使用预访问和测试脚本部分访问集合变量(和所有变量)pm.variables.get("variableName").
但是,您只能通过模式编辑集合详细信息来定义和更新集合变量.
注意:对于使用环境变量变得混乱的当前解决方案,请记住您始终可以使用pm.environment.set()重置值或pm.environment.unset()清除它.
小智 18
Postman v7.9.0 添加了对 new 的支持pm.collectionVariables,因此您可以在测试脚本上更新它们:
pm.collectionVariables.set("collection_variable", newValue);
Run Code Online (Sandbox Code Playgroud)
https://github.com/postmanlabs/postman-app-support/issues/5053#issuecomment-542555156
手动设置集合变量然后获取它们总是可能的。
\n在脚本中设置集合变量,而不仅仅是手动设置,\n在2019 年 10 月发布的7.9.0版本中成为可能。\n在撰写本文时,\n仍然存在关于它的过时的错误信息 - 在互联网上普遍存在 - 但遗憾的是也在这里\nat Stack Overflow。
\n尽管这个问题已经得到了正确的回答,但我添加这个答案是为了消除任何剩余的混乱。
\n为了找出谁对谁错,我做了一个简单的小实验。
\n下面我描述了我所做的。\n你可以自己复制完全相同的实验。
我创建了一个名为 的 Postman 集合ManipCollVars。
\n(ManipulateCollectionVariables似乎有点太长了。)
\n您可以从以下位置下载并将其保存到本地驱动器:
\n https://user.it.uu.se/%7Ehesc0353/postman/ManipCollVars.pm_coll.json。
然后 - 从 Postman 桌面应用程序(不是 chrome 扩展) -\n导入ManipCollVars(集合>导入>文件>\n上传文件),如下图所示。
\n(虚拟 GET 请求是https://postman-echo.com/get。)
^ 点击放大
\nCollectionVar在左侧窗格中显示的同一行中ManipCollVars,\n单击右侧的省略号(三个小圆圈:\xe2\x80\xa2\xe2\x80\xa2\xe2\x80\xa2),然后\n编辑。\n参见下图。
接下来单击“变量”选项卡。\n请注意,“当前值”CollectionVar是“初始值”。
单击请求ManipCollVars-Request,然后单击其测试\n选项卡,如下图所示。
\n重点关注第 7-11 行:
// Will now try to change `CollectionVar` to some new value:\npm.collectionVariables.set(\'CollectionVar\', \'Some New Value\');\n// Then print the new value of `CollectionVar` to the console:\nconsole.log(pm.collectionVariables.get(\'CollectionVar\'));\n// ^ Does CollectionVar contain "Initial Value" or "Some New Value"? ^\nRun Code Online (Sandbox Code Playgroud)\n单击蓝色Send按钮,然后打开左下角的控制台,\n如下图所示。\n请注意集合变量的值如何从\n“初始值”更改为“某些新值” 。-问题解决了!
\n\n要仔细检查该值是否确实已更改,请再次单击省略号 (\xe2\x80\xa2\xe2\x80\xa2\xe2\x80\xa2),然后单击 >ManipCollVars编辑>变量。 \n请注意当前值现在CollectionVar是“一些新价值”。-确认的!
^ 点击放大
\n