如何在POSTMAN中的2个请求之间添加暂停

Rou*_*oon 17 testing http postman

我在POSTMAN中有一组请求.我想在两个请求之间添加暂停,但我无法通过阅读他们的文档找到这样做的方法.任何的想法?

更新我只想在一个请求之后暂停,而不是在集合中的每个请求之后.

小智 16

如果有人还在寻找这个 - 你可以在一个可以使用的集合中的许多测试之后/之前添加延迟:

setTimeout(function(){}, [number]);
Run Code Online (Sandbox Code Playgroud)

其中'number'是毫秒.如果它在"测试"中添加,它将在发送请求后执行.如果它在'预请求测试'中添加,它将在发送请求之前执行.

  • 为了清楚语法,插入数字时不应出现方括号:例如 `setTimeout(function(){}, 1500);` (7认同)
  • 谢谢您的帮助!小评论:“预请求测试”应该是“预请求脚本” (2认同)

小智 13

举个简单的例子,相信你会明白的。

setTimeout(() => {}, 15000); 
Run Code Online (Sandbox Code Playgroud)

15000 这是一个以毫秒为单位的值


Muk*_*sal 9

尝试这样的事情 -

if(jsonBody.responseCode=="SUCCESS"){

  setTimeout(function(){
          console.log("Sleeping for 3 seconds before next request.");
  }, 3000);

  postman.setNextRequest("nextAPI");

}
Run Code Online (Sandbox Code Playgroud)


小智 7

我知道有两种方法可以做到这一点

方法一

将您的请求作为集合运行.(https://www.getpostman.com/docs/collections)使用Newman(Postman的命令行集合运行器)使用--delay标志运行您的集合.延迟输入值以毫秒为单位.

方法二

这是一个很好的黑客,我在这里找到https://github.com/postmanlabs/postman-app-support/issues/1038.您可以在Postman中为测试脚本添加延迟功能.

  • 感谢您的回答.方法1是我一直在做的事情.但我只想在***请求之后暂停,而不是在每次请求之后.看起来我正在使用你的方法2.邮差应该添加此功能.Runscope有它,所以我想我被宠坏了. (2认同)

Siy*_*iyu 6

使用javascript的繁忙等待是一个不错的选择,但是它会使您的CPU变热并且应用程序无响应。我使用postman-echo找出了这个解决方案。

假设您要在Request_A和Request_B之间添加较长的延迟。

首先,在Request_A的测试脚本中设置一个环境变量以标记开始。

environment.delayTimerStart = new Date();

然后,在创建的内容中创建一个GET请求(此处称为“延迟10秒”)。它在https://postman-echo.com/delay/10上进行GET (10秒后返回)

在其测试脚本中,添加

var curDate = new Date();
if (curDate - environment.delayTimerStart < delay_time_in_sec*1000) {
    postman.setNextRequest('Delay 10s');
} else {
    postman.setNextRequest("Request_B");
}
Run Code Online (Sandbox Code Playgroud)

这样,您可以添加任何长度的延迟。

注意:10秒是postman-echo接受的最大值。如果您只需要短暂的延迟,只需获取https://postman-echo.com/delay/[1~10]即可