簡體   English   中英

加特林:上一個請求沒有JSON響應時,如何在下一個請求中傳遞值?

[英]Gatling: How to pass value in next request when previous request doesn't have JSON response?

請考慮這種情況...在這里,在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響應嗎???

您的幫助將不勝感激。

謝謝!

通過使用regex方法,我們可以保存jsp頁面(而不是json)中的值。

例如:

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

謝謝!

我能夠使用類似問題中的這個答案( 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)
    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM