当 tryMax 块中的尝试失败时将组状态设置为 OK
Setting Group status to OK when an attempt in tryMax block fails
我有一个场景使用群组来模拟我应用中页面上的操作。
我的一个要求是在我的模拟中使用生产数据的副本,但该数据可能存在一些问题,例如缺少某些操作所需的字段等。
为了处理这个问题,我将这些操作包装在一个 tryMax 块中,这样我就可以在第一次执行时捕获数据错误,然后从会话中删除有问题的数据并重试。 (无法在调用之前验证数据)
问题是即使操作最终成功(报告显示执行了 2 次,一次 OK,另一次 KO),包含的组被标记为 KO。
所以我有类似...
group("group1") {
tryMax(2) {
exec(http("action1")
.post("someURL")
.body("${ids}")
.check(
checkIf((response: Response, session: Session) => response.status.code == 400) {
jsonPath("$..failedIds").findAll.transform(
(failed, session) => {
session("ids").as[Seq[String]].diff(failed)
).saveAs("ids")
},
status.is(201)
)
)
}
}
这是有效的,因为 'action1' 被执行,从 'ids' 会话变量中提取失败的 ID,再次尝试并成功。但我希望 'group1' 在报告中被标记为 OK - 使用此解决方案是 KO,这会误导我的目的。
我正在使用加特林 3.1.1
这是 Gatling 中的一个错误,将在 3.2.0 中修复,参见 https://github.com/gatling/gatling/issues/3738
我有一个场景使用群组来模拟我应用中页面上的操作。
我的一个要求是在我的模拟中使用生产数据的副本,但该数据可能存在一些问题,例如缺少某些操作所需的字段等。
为了处理这个问题,我将这些操作包装在一个 tryMax 块中,这样我就可以在第一次执行时捕获数据错误,然后从会话中删除有问题的数据并重试。 (无法在调用之前验证数据)
问题是即使操作最终成功(报告显示执行了 2 次,一次 OK,另一次 KO),包含的组被标记为 KO。
所以我有类似...
group("group1") {
tryMax(2) {
exec(http("action1")
.post("someURL")
.body("${ids}")
.check(
checkIf((response: Response, session: Session) => response.status.code == 400) {
jsonPath("$..failedIds").findAll.transform(
(failed, session) => {
session("ids").as[Seq[String]].diff(failed)
).saveAs("ids")
},
status.is(201)
)
)
}
}
这是有效的,因为 'action1' 被执行,从 'ids' 会话变量中提取失败的 ID,再次尝试并成功。但我希望 'group1' 在报告中被标记为 OK - 使用此解决方案是 KO,这会误导我的目的。
我正在使用加特林 3.1.1
这是 Gatling 中的一个错误,将在 3.2.0 中修复,参见 https://github.com/gatling/gatling/issues/3738