如何在 newman 中设置 setTimeout/Thread.sleep

Posted

技术标签:

【中文标题】如何在 newman 中设置 setTimeout/Thread.sleep【英文标题】:How to set setTimeout/Thread.sleep in newman 【发布时间】:2018-05-15 12:34:02 【问题描述】:

如何在newman(postman的节点模块)中设置setTimeout/Thread.sleep。

我正在使用以下功能:

setTimeout(function() 

        console.log('sleep for ten min');
    , 600000);

以上功能在邮递员的收集运行器中完美运行。

但是当我尝试 newman 时,它会抛出错误

'setTimeout 在沙箱中不可用,没有副作用。'

我发现了一个类似的帖子,如下所示:

https://github.com/postmanlabs/newman/issues/304

但他们也没有提供任何解决方案。

无论如何我可以将我的单个 API 标记为延迟一段时间。

我已经在使用 Newman 参数 --delay-request 60000,它在 API 之间有延迟,所以它不起作用。

任何解决方案都会有所帮助

【问题讨论】:

【参考方案1】:

所以打开你给我们的link他们说:


所以要明确一点,您将使用newman 一种并非设计用于的方式。


话虽如此,您可以尝试实现自定义睡眠:

function sleep(milisecond) 
  const date = Date.now();

  // Sleep in an *infinite* loop
  while ((date + milisecond) > Date.now());

【讨论】:

谢谢@Gregory .. 我也尝试过.. 我找到了解决方案.. 测试它.. 将发布一次确认.. 投票给你寻求帮助;)【参考方案2】:

将 newman 更新到 3.8.3 或更高版本。

老版本的newman不支持setTimeout

【讨论】:

很好,你找到了 :) 也许其他人也会遇到同样的麻烦

以上是关于如何在 newman 中设置 setTimeout/Thread.sleep的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个变量没有在 setTimeout 函数中设置?

postman中设置流程控制

Jenkins+postman+newman

iOS在H5中设置title

在javascript中设置计时器

在 Node.js 中设置计时器