0
簡化我的情況,以確認使用。exitBlockOnFail或清除會話控制流
我在會話中存儲itemId以用於進一步執行。我添加了doIf,以便只有在itemId存在的情況下才會執行進一步的執行。
用戶將持續循環直到持續時間以分鐘爲單位。
如果在第一次執行itemId存儲在會話中,但在第二次執行POST調用無法生成itemId。我仍然在會話中獲得itemId。
我的期望是有明確的會話用於同用戶場景的每個週期。我嘗試session.reset但我得到這個錯誤java.util.NoSuchElementException: key not found: timestamp.
我可以使用exitBlockOnFail()並更改我的POST失敗,通過添加檢查,如果itemId不存在。這是推薦的方法嗎?
有什麼選擇嗎?我正確使用這個嗎?
val testScenario = scenario("Test scenario").during(durationInMinutes) {
exec(http("Create")
.post("/items")
.body(StringBody(session => write(Item(1, "Item name"))(DefaultFormats))).asJSON
.check(status.is(201), header("Location")
.transform(extractId(".*/items/(.*)".r, _))
.saveAs("itemId")))
.doIf(_.contains("itemId")) {
// do something with the itemId
}
}
setUp(testScenario.inject(atOnceUsers(10)))
.pauses(constantPauses)
.protocols(httpProtocol)
.assertions(global.failedRequests.count.is(0))