gatling - 如何在 Gatling 中使用 tryMax 获取空白属性,注销并重新开始迭代?
问题描述
我知道我可以使用 tryMax 重新启动场景并使用 .exists() 来验证属性是否存在。我如何将两者结合在一起?
解决方案
如果你在 tryMax 中检查了一个 exec 并且检查失败,它将从 tryMax 块的开头再次尝试。
前任:
val TestScenarioThatRestartsOnFail: ScenarioBuilder = scenario("ScenarioNameHere")
.tryMax(2) {
exec(
http("zzzz")
.get("zzz")
.check(xxxx)
)
.exec(
http("zzzz")
.get("zzz")
.check(xxxx)
)
}
所以基本上任何在整个 tryMax{} 块中失败的检查都会使整个块再次运行。
如果您需要重试不同请求的不同次数,您还可以链接多个 tryMax 块
val TestScenarioThatRestartsOnFail: ScenarioBuilder = scenario("ScenarioNameHere")
.tryMax(2) {
exec (
http ("zzzz")
.get ("zzz")
.check (xxxx)
)
}.tryMax(2) {
exec(
http("zzzz")
.get("zzz")
.check(xxxx)
)
}
如果您遇到“可选”的检查,因此它们有时可能会失败,但您不想为这些检查触发 tryMax,请使用以下optional
方法:
.check(regex("/admin-ng/login.[^\"]*.css").find.optional.saveAs("login_css"))
如果不满足,这不会使检查失败,在这个例子中,我们搜索的元素不在响应中。
推荐阅读
- javascript - 空白屏幕 - Matter.js
- druid - Druid Concat String 和 Measure 聚合
- javascript - MongoDB如何按索引替换数组项
- c - 使用 ARM Neon 内在函数实现 64 位变量的乘法时面临的问题
- rest-assured - 使用 RestArrured 触发时 API 返回 text/html 而不是 JSON
- python - 在python中循环两个文本文件
- midi - csound中的midipolyaftertouch是否损坏?
- django - 如何从重复查询中优化查询集
- c# - “没有足够的权限来完成操作”,尽管授予了所有必要的权限
- python - 将数据帧内的字符串转换为数组的有效方法