postman多次运行相同请求

问题描述 投票:0回答:1

我想使用不同的预定脚本多次运行相同的请求?有什么想法,如果不使用数据驱动(CSV)测试,我该怎么做?

eg。,我必须运行以下url多次获得URL(每2分钟),但是每次运行时,我都需要进行不同的预请求测试!

{{url}}/legacy/col

enter image description here

automated-tests postman postman-pre-request-script
1个回答
1
投票

年时间操作:

如果您想发送10次请求(包括第一个请求11),然后创建两个包含计数的环境变量。您可以通过简单地复制以前或测试脚本(删除所有其他代码)来创建变量。
 pm.environment.set("repeat",10);
 pm.environment.set("repeat",10);

变量一旦添加了脚本中的上述行。

在测试脚本中:

我们可以使用pm.sendrequest或pm.setnextrequest多次发送雷奎斯特。此处示例显示了使用PM.SetNextrequest.

呼叫相同请求的10次。

可以使用Settimeout JavaScript函数设置2分钟或3分钟的延迟,该功能在执行其中的代码之前等待上述时间(此处3秒)。因此,在这种情况下,SetNextrequest仅在3秒钟后才能执行,您可以将其更改为2分钟。

let repeatTemp = pm.environment.get("repeatTemp"); if (repeatTemp === 0) { pm.environment.set("repeatTemp", pm.environment.get("repeat")); } else { let repeatTemp = pm.environment.get("repeatTemp") let increment = pm.environment.get("increment")===0?15:pm.environment.get("increment")+5 pm.environment.set("increment",increment) pm.environment.set("repeatTemp", repeatTemp-1); setTimeout(function () { postman.setNextRequest("something") }, 3000); }
因此,如果您的请求名称为“您的requestName”,则将发送此请求1+10次

pre-request脚本:

在您的格式中,您提到的是Yyyy-mm,它是错误的mm,即持续几分钟,而不是一年,您必须给予Capital Yyyy-Mm

let repeatTemp = pm.environment.get("repeatTemp"); let repeat = pm.environment.get("repeat"); if (repeatTemp===repeat) { pm.environment.set("increment", 0) } let moment = require('moment') pm.environment.set('estimatedTimeArrival', moment().add(30 + pm.environment.get("increment"), 'minutes').format("YYYY-MM-DDThh:mm:ss")); pm.environment.set('estimatedTimeDeparture', moment().add(2, 'hours').format("YYYY-MM-DDThh:mm:ss")); pm.environment.set('scheduledTimeArrival', moment().add(10, 'minutes').format("YYYY-MM-DDThh:mm:ss")); console.log(pm.environment.get('increment')) console.log(pm.environment.get('estimatedTimeArrival'))

输出:

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.