我已实现了一系列执行,每次执行都会向服务器发送HTTP请求,并检查响应状态是否为2XX。我需要实现一个同步模型,其中链中的下一次执行只应在前一次执行成功时触发,即响应状态为2xx。 以下是执行链的快照。
feed(postcodeFeeder).
exec(Seq(LocateStock.locateStockExecution, ReserveStock.reserveStockExecution, CancelOrder.cancelStockExecution,
ReserveStock.reserveStockExecution, ConfirmOrder.confirmStockExecution, CancelOrder.cancelStockExecution)
由于gatling具有异步IO模型,目前正在观察的是,许多用户以异步方式将HTTP请求发送到服务器,并且对于单个用户执行之间没有真正的依赖关系。
此外,我想知道一个演员/用户,如果链中的执行因检查而失败,是否不继续进行链中的下一次执行?
答案 0 :(得分:1)
单个用户的执行之间没有真正的依赖关系
不,你错了。除了使用" resources"以外,对于给定用户,请求是连续的。如果要在遇到错误时停止给定用户的流,可以使用exitblockonfail。
答案 1 :(得分:1)
Gatling在链中的下一个触发之前不会考虑先前请求的失败响应。您可能需要使用exitBlockOnFail {}来覆盖整个块,以阻止接下来开火。