2016-09-28 87 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) 
    }) 
相关问题