当前位置: 首页 > 知识库问答 >
问题:

邮递员多次运行同一请求

凤经国
2023-03-14

我想用不同的预请求脚本多次运行相同的请求?不使用数据驱动(CSV)测试,我能做什么?

例如,我必须多次运行下面的GET url(每2分钟一次),但每当我运行它时,我都需要进行不同的预请求测试!

{{url}}/legacy/COL

在此处输入图像描述

共有1个答案

仲孙经赋
2023-03-14

一次性操作:

如果您想发送请求10次(包括第一个请求11次),那么创建两个包含计数的环境变量。您可以通过简单地将下面两行复制粘贴到预请求或测试脚本中来创建变量(删除所有其他代码)。

 pm.environment.set("repeat",10);
 pm.environment.set("repeat",10);

一旦添加了变量,就从脚本中删除上面的行。

现在在测试脚本中:

我们可以通过使用pm.sendrequest或pm.setNextrequest.多次发送请求。这里的示例显示使用pm.setNextRequest.多次调用相同的请求10次。

可以使用setTimeout javascript函数设置2分钟或3分钟的延迟,该函数在执行其中的代码之前等待所提到的时间(这里是3秒)。

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);

}

因此,如果您的请求名称是“您的请求名称”,那么它将发送此请求1 10次

预请求脚本:

在你的格式中,你提到了yyyy-mm,这是错误的,mm代表分钟,而不是月,你必须给出大写的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'))

输出:

 类似资料:
  • https://stackoverflow.com/questions/36157105/Postman-how-to-make-multiple-requests-at-the-ym同时#:~:text=just%20create%20a%20runner%20with,to%20bring%20up%20multiple%20instances。 但我需要提出相同的请求一个给定的次数。例如。对

  • 如果是的话,有谁能向我解释如何做到这一点?

  • 有人能帮助我如何使用以下参数发送POST请求吗: 我试着在《邮递员的身体》中发送一个带有以下参数的: 然而,在发送上述请求时,我得到的位置字符串为null。

  • 我刚接触Postman,遇到了一个我无法解决的经常性问题。我试图使用在预请求脚本上建立的数据数组多次运行同一个请求,但是,当我转到runner时,请求只运行一次,而不是3次。 预请求脚本: 测试: 我已经查看了文档,但我找不到我的代码有什么问题。 谢谢!

  • 我正试着在邮递员上打API。API正在服务器上工作,但我没有收到任何数据。以下是视觉图像: 它是回应我与“没有数据”和400错误的要求。

  • 我有一个对服务器的Authenticate post调用,如下所示: 用这样的尸体: 我总是必须在Postman中执行两次这个Authenticate调用,以正确填充我的全局var“安全令牌”,并在此后的下一次调用中使用该令牌进行身份验证,因此,似乎预请求脚本实际上是在脚本之后运行的,或者是预请求脚本中设置的全局var对当前请求不容易可用? 我做错了什么? 以下是预先请求的SRIPT: