setTimeout实际还是异步执行的,最后一行的consollog语句并不会等待60秒后才执行,只有setTimeout内部第一个参数中的语句才会在延迟60秒后才执行。
Postman的TestScript来设置在发送Request后延迟一段时间再发送下一个请求的方法。
在测试的过程中发现这种写法会有一个问题:接口的ResponseBody会在执行完等待时间后才返回
function sleep(numberMillis){
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true){
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
sleep(10000);
。。。。。。【综上所述:等待十分重要】
获取当前时间,但是服务器时间响应时间较慢
而有时我们只需要为在某个Request设置Delay时间,并不需要让每个Request都延迟发送。此时我们就不能用这个Delay参数了
其实只要使用javascript的setTimeout方法即可。
pm.test('DescribeJob', function () {
setTimeout(()=>{console.log('这里的语句才会等待60秒后执行');}, 60000);
console.log('setTimeout后面的操作会异步执行,不会等待60秒后再执行');
});
方法setTimeout方法【异步】
方法个别项目运行时,全局增加等待时间
设置Delay参数,表示发送完每个请求后,延迟一段时间再发送下一个请求。这个设置会对每个Request都生效,
增加等待的方法
输出:
发送接口调试时,响应超时时间设置的太短导致接口访问失败
方法所有项目集合全局添加等待
例子:
for (var i = 1;i <= 5;i ++) {
setTimeout(function timer() {
console.log(i)
},i * 1000)
}
方法setTimeout【简约版】
setTimeout(function() {},[number]);
上一个接口未请求完成,下一个接口需要使用上一个接口的参数
注意:
第一次循环,隔一秒输出1;第二次循环,隔两秒输出2;第三次循环,隔三秒输出3;第四次循环,隔四秒输出4;第五次循环,隔五秒输出5;
方法sleep函数
文章为作者独立观点,不代表股票交易接口观点