2016-09-28 88 views
2

請考慮場景... 在這裏,在GET請求中,我發現'derId',但它的響應不是JSON。 所以我不能在該請求中保存這個值。Gatling:當前一個請求沒有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響應?

您的幫助將不勝感激。

謝謝!

回答

0

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

例如:

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

謝謝!

0

我能夠從類似問題中使用此答案(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) 
    }) 
相關問題