【问题标题】:Gatling: How to pass value in next request when previous request doesn't have JSON response?Gatling:当上一个请求没有 JSON 响应时,如何在下一个请求中传递值?
【发布时间】:2016-09-28 13:20:38
【问题描述】:

请考虑场景... 在这里,在 GET 请求中我找到了“derId”,但它的响应不是 JSON。 所以我无法在那个请求中保存这个值。

    .exec(http("OnClick")
        .get("/url/apz?action_id=1&SelectRadiobutton=1_${abcID}_${xyzID}_${zipID}")
        .headers(headers_1))
    .pause(2)
    .exec(http("PopUp")
        .post("/url/dis")
        .headers(headers_1)
        .formParam("action_id", "2")
        .formParam("abcId", "${abcID}")
        .formParam("rmft", "${rmftID}")
        .formParam("msg_id", "${msgID}")
        .formParam("matId", "${matID}"))
    .pause(1)
    .exec(http("Bananana")
        .post("/url/abc")
        .headers(headers_1)
        .formParam("abcId", "${abcID}")
        .formParam("msg_id", "${msgID}")
        .formParam("matId", "${matID}")
        .formParam("derId", "${??}"))

有没有什么方法或方式可以从GET请求中传递下一个请求中的值???

或者

当请求没有 JSON 响应时如何保存值???

GET 请求可以有 JSON 响应吗???

您的帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: scala load-testing gatling


    【解决方案1】:

    我能够使用来自类似问题的答案 (https://stackoverflow.com/a/40736282/9371636) 发出请求,然后使用来自第一个请求的 JSON 响应的输入参数的另一个请求。

    我正在测试的示例 API:

    /step1 -> returns { "key": 888 }
    /step2/{key} -> returns { "key": 999 } if {key} passed in is == 888
    

    Scala 代码:

    var step1 = exec(http("step1")
        .get("/step1")
        .check(jsonPath("$..key").optional.saveAs("key")))
    
    var step2 = exec(http("step2")
        .get("/step2/${key}"))
    
    val scn: ScenarioBuilder = scenario("SimulationName").exec(step1,
        doIf(session => session.contains("key")) {
            exec(step2)
        })
    

    【讨论】:

      【解决方案2】:

      通过使用regex方法,我们可以保存jsp页面中的值(不是json)。

      例如:

      .check(regex("""type="hidden" name="abcId" id="abcId" value="([\w=\/.\d_%+-.$]*)"""").saveAs("abcID"))
      

      谢谢!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-22
        • 1970-01-01
        • 2020-01-16
        • 1970-01-01
        • 2020-11-08
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多