2017-10-06 38 views
0

此方案中使用在以前版本的邮差今年的工作:如何邮差从必须抛出一个预先请求脚本保存一个全局变量验证错误

  • 呼叫postman.setGlobalVariable('test', 'my_value')在预申请脚本
  • 通过抛出一个错误(这是必需的,因为我必须验证环境变量)来让预处理脚本完成
  • 执行Postman请求(使用预请求脚本中引发的错误)全局变量test的值为my_value可在Globals列表。

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

  1. 有没有办法启用它?
  2. 有没有办法解决这个问题?

我的用例是为DELETE REST调用实现一个保护,以避免无意删除服务器端对象。用户必须发送相同的请求(按发送)给定的次数,以确保他确实想要执行此请求。这是直到最近使用全局变量实现和工作。

回答

0

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

如果是这样,在预先请求脚本中,可以将其设置为无效值,从而避免发送正确的请求并设置其他全局。

您可以将该更新调整为您在其他全局设置的一定量的点击或其他任何内容。即。

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); 
} 

我觉得这样的事情可能会满足你的要求......

+0

我做了一些调整...对不起;) –

相关问题