Упрощен мой сценарий для подтверждения использования.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))