【问题标题】:Execute a request a given number of times (postman)执行给定次数的请求(邮递员)
【发布时间】:2021-02-11 01:19:03
【问题描述】:

相关:

https://stackoverflow.com/questions/36157105/postman-how-to-make-multiple-requests-at-the-same-time#:~:text=Just%20create%20a%20runner%20with,to%20bring%20up%20multiple%20instances.

但我需要多次发出相同的请求。例如。对于端点:

(GET) http://localhost/gadgets/{{gadget_id}}/buy_gadget

gadget_id 变量可以从文件中读取,但这会导致多个具有不同 id 的 GET 请求。如何向具有相同 gadget_id 的同一端点发出预定义数量的请求?

【问题讨论】:

    标签: javascript postman postman-collection-runner postman-pre-request-script postman-testcase


    【解决方案1】:

    您需要以某种方式获取gadget_id 和运行次数,因为这不是这里的核心问题,我只是将它们设置为环境变量。

    在预请求脚本中,如果环境变量counter 不存在,则将其设置为1。如果存在,则增加1

    pm.environment.set("gadged_id", 1234);
    pm.environment.set("numberOfRuns", 3)
    
    if (!pm.environment.get("counter")) {
        pm.environment.set("counter", 1);
    } else {
        let counter = parseInt(pm.environment.get("counter"));
        counter++;
        pm.environment.set("counter", counter);
    }
    

    在测试选项卡中,正在检查是否已达到运行次数。如果不是,则通过postman.setNextRequest() 再次调用相同的请求(您需要将postman.setNextRequest() 的参数值修改为您的请求名称)。如果它被执行得足够频繁,counter 变量将被取消设置:

    let numberOfRuns = parseInt(pm.environment.get("numberOfRuns"));
    let counter = parseInt(pm.environment.get("counter"));
    
    if (counter < numberOfRuns) {
        postman.setNextRequest("buyGadget");
    } else {
        pm.environment.unset("counter")
    }
    

    【讨论】:

    • 是否 postman.setNextRequest("buyGadget");使用相同的 gadget_id 调用相同的 url(在这种情况下)?
    • 是的,它是使用完全相同的预请求脚本调用的,在本例中它始终是相同的,因为它是硬编码的。你也可以依赖numberOfRuns 和/或counter
    猜你喜欢
    • 2015-10-26
    • 2021-03-16
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2020-05-22
    • 2019-02-10
    • 2017-12-30
    相关资源
    最近更新 更多