如果是邮递员401,请授权并重试

时间:2019-04-05 16:03:15

标签: postman

为了进行测试,我们广泛使用了邮递员来使用我们的API。现在,我们调用一条授权路线,该路线将必要的内容存储在环境变量中,然后命中我们真正感兴趣的请求。如果请求得到401,我想利用测试标签自动调用我们的授权路线,然后自动重试该请求。

看起来我可以调用pm.setNextRequest(“ Name”),但这仅在Collection Runner的上下文中起作用才能设置下一个请求。我希望在仅运行单个请求时自动发生这种情况。有什么办法可以做到这一点?

我正在寻找与收集运行程序无关的答案,因为这与我的用例相去甚远。谢谢。

1 个答案:

答案 0 :(得分:0)

@claudekennilol,

您可以在“预请求脚本”中使用以下代码段。请注意,我给了您一个想法,了解如何使用请求前脚本来调用端点,可以根据需要更改循环。

const echoPostRequest = {
    url: 'https://jsonplaceholder.typicode.com/posts',

  method: 'POST',
  header: 'Content-Type:application/json',
  body: {
    mode: 'application/json',
    raw: JSON.stringify(
    {
"userId": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
})
  }
};

var checker = true;
var iterator = 0;

do {

    pm.sendRequest(echoPostRequest, function (err, res) {

        if(res.code === 200){
            if (err === null) {
                var responseJson = res.json();
                // Do something here if condition passes

            }
        }else{
            // Do something if condition fails
        }

    });
iterator++;
}
while (iterator<10);