在后台使用 KarateFramework 重试

问题描述

我正在尝试实现重试,直到场景通过。

代码后台或场景中工作:

* retry until response.status == 200

但我的场景响应代码与 200,204,404 不同 我想重试,直到场景通过而不仅仅是状态代码检查。 因为如果我不能在后台编写,我必须将这段代码写到我的每个场景中。

我可以这样做吗?

解决方法

对于这种简单的情况,我不建议“重用”。请花一些时间阅读本文。代码重复没问题。真的:https://stackoverflow.com/a/54126724/143475

也就是说你可以定义一个可重用的函数并重用它。像这样:

* def isStatusOk = function(x){ return x.status == 200 || x.status == 204 }

然后你可以这样做:

* retry until isStatusOk(response)

最后,请阅读:https://twitter.com/KarateDSL/status/1364433453412851714