如何多次运行单个端点?

时间:2016-11-18 19:06:16

标签: postman

我有一个有三个端点的Collection。第一个创建资产,第二个创建资产,第三个列出所有资产。

如何运行第二个,即每个迭代的Runner多次向资产添加文件?

我喜欢测试来创建资产并为每次迭代添加多个文件。

有什么建议吗?我知道我可以复制端点,但我想知道是否有一种编程方式来实现它。

3 个答案:

答案 0 :(得分:2)

到目前为止,使用Postman没有直接的解决方案,可以在文件夹/集合中为同一个请求配置多个匹配。

尽管如此,您可以在Pre-request script部分编写一些代码,添加一个包含所需匹配数量的计数器并调用postman.setNextRequest("request_name")方法(here了解更多相关内容)与您当前的请求。

Out of Postman应用范围,您可以导出您的收藏集(作为 JSON 文件)并使用newman编写一些javascript代码,run是Postman的命令行伴随工具(更多关于来自here 的newman,它获得了一个带有大量迭代计数的Beanstalk方法和可以帮助你的数据选项(例如,将你的第二个请求放在文件夹中并迭代通过它)。

希望有所帮助!

答案 1 :(得分:2)

  1. 创建2个环境变量:

    • "计数器" (您希望请求运行的次数)
    • " RequestNumber" = 1(跟踪当前请求编号)
  2. 将此代码添加到您要多次运行的请求的测试部分:

    var counter = postman.getEnvironmentVariable("Counter");
    var requestNumber = postman.getEnvironmentVariable("RequestNumber");
    if (requestNumber < counter) {
        postman.setNextRequest("RequestName");
        requestNumber ++;
        postman.setEnvironmentVariable("RequestNumber", requestNumber);
    }
    else {
        postman.setEnvironmentVariable("RequestNumber", 1);
    }
    

答案 2 :(得分:1)

使用postman.setNextRequest()代替使用pm.sendRequest(),更干净的方法来达到相同的端点。

Test 预请求脚本中,您可以创建一个请求对象,该对象将描述您要发送的请求 (URL,HTTP方法,标头主体等),并将其放在pm.sendRequest() function 中。

考虑:

const requestObject = {
    url: 'https://postman-echo.com/post',
    method: 'POST',
    header: 'headername1:value1',
    body: {
        mode: 'raw',
        raw: JSON.stringify({ key: "this is json" })
    }
}

pm.sendRequest(requestObject, (err, res) => {
    console.log(res);
});

要多次运行同一请求,只需将函数放在for / for..in / for..of / forEach 循环中。

>

考虑:

for(let iteration = 0; iteration < 5; iteration++) {
  pm.sendRequest(requestObject, (err, res) => {
      console.log(res);
  });
}

如果需要,可以在循环中修改requestObject

查看Postman Documentation以获得更多详细信息。