首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从必须引发验证错误的预请求脚本中保存Postman中的全局变量

如何从必须引发验证错误的预请求脚本中保存Postman中的全局变量
EN

Stack Overflow用户
提问于 2017-10-06 10:15:41
回答 1查看 7.2K关注 0票数 1

这个场景曾经适用于今年以前版本的邮递员:

  • 在预请求脚本中调用postman.setGlobalVariable('test', 'my_value')
  • 让预请求脚本结束时抛出一个错误(这是必需的,因为我必须验证环境变量)
  • 在执行Postman请求(在预请求脚本中抛出错误)之后,带有值test的全局变量my_valueGlobals列表中可用。

在当前(5.2.1)版本的Postman中,全局变量不会从抛出错误的预请求脚本中持久化。

  1. 有什么方法可以实现这个功能吗?
  2. 有办法解决这个问题吗?

我的用例是为删除REST调用实现一个保护,以避免无意中删除服务器端对象。用户必须发送相同的请求(按下发送)一定数量的时间,以确保他真的想要执行这个请求。这是实现的,直到最近才开始使用全局变量。

EN

回答 1

Stack Overflow用户

发布于 2017-10-06 12:03:58

我认为,如果将url设置为全局或环境变量,并在请求中使用{{url}},则可以找到解决办法。

如果是这样的话,在最基本的脚本中,您可以将它设置为无效的值,这样就避免了发送适当的请求,您的其他全局将被设置。

您可以将更新设置为一定数量的单击,或设置在其他全局中设置的任何内容。即。

代码语言:javascript
复制
var counter = postman.getGlobalVariable('counter'); 

if (counter == undefined)
{
    postman.setGlobalVariable('counter', 0); // initialize counter if not exists
}

var validurl= postman.getGlobalVariable('valid_url') 
var current_url= postman.getGlobalVariable('url') // keep the current url which is valid

if (validurl == undefined)
{ 
    postman.setGlobalVariable('valid_url', current_url) // store the valid url if not done yet
}


counter = parseInt(counter) + 1 // then if you call it three times it should execute ...
console.log("info counter " + counter)
postman.setGlobalVariable('counter', counter)
if (counter < 3) // let say three tries, to be sure
{
    pm.globals.set("url", "dummy"); // other syntax, no matter => request fails
}
else
{ 
    // set back url
     pm.globals.set("url", validurl);
}

我觉得这样的东西能满足你的要求..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46603460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档