业务需求:团课上课2分钟以后自动下课
遇到的问题
Postman是HTTP API测试工具,它有一个非常有用的功能,就是Run Collection。这能把将全部Collection中的Request都跑一遍,可以用来批量测试API。如下图所示:
在这个图中我们发现,可以设置Delay参数,表示发送完每个请求后,延迟一段时间再发送下一个请求。这个设置会对每个Request都生效,而有时我们只需要为在某个Request设置Delay时间,并不需要让每个Request都延迟发送。此时我们就不能用这个Delay参数了。
实现思路:
1.无法通过postman的GUI去进行延迟请求,那么只能通过代码来实现
2.时间换算 1秒= 1000毫秒,2分钟 = 2*60秒=120,000毫秒
3.使用JavaScript的设置延迟时间函数 setTimeout 和 sleep 分别实现
实现函数:setTimeout
方法1:
极简版
在Tests脚本输入框输入代码如下:
setTimeout(function() {},[number]);
方法2 :
复杂版(推荐)
在Tests脚本输入框输入代码如下:
pm.test("上课2分钟", function () {
setTimeout(()=>{console.log("2分钟后下课");}, 120000);
console.log('2分钟后下课');
});
实现函数:sleep
方法3:
超级复杂版(不推荐)
在Tests脚本输入框输入代码如下:
function sleep(numberMillis){
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true){
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
sleep(10000);
具体操作
在Tests脚本输入框输入代码如下:
pm.test("上课2分钟", function () {
setTimeout(()=>{console.log("2分钟后下课");}, 120000);
console.log('2分钟后下课');
实现效果
经过实测 方法2 没有报错,业务需求实现,个人经验推荐,用它!~
希望对刚接触postman接口测试的同学有所帮助,也希望大家多多点赞收藏转发,您的鼓励是对我付出最大的支持!~