如何在PollingConditions.within超时前提前终止测试?
实现PollingConditions触发业务规则失败时立即终止
要实现当status变为20时立即终止测试、无需等待超时,你可以在PollingConditions的检查闭包中优先判断不可逆转的失败条件,一旦触发就直接触发断言失败,让PollingConditions立刻停止重试流程。
修改后的代码示例:
def pollingConditions = new PollingConditions() def status = 5; // 后台任务修改status的逻辑 pollingConditions.within(10, { // 先检查业务规则中的"致命失败"状态 assert status != 20 : "Status reached 20, which can never become 10 - aborting immediately" // 再检查目标状态 assert status == 10 : "Timed out waiting for status to become 10" })
逻辑说明:
- 每次轮询检查时,先判断
status是否为20:如果是,断言直接失败,PollingConditions会立刻终止重试,不会继续等待剩余超时时间。 - 只有当
status未触发致命条件时,才会继续检查是否达到目标值10,保留正常的轮询等待逻辑。
这种方式既满足了轮询等待目标状态的需求,又能在触发业务规则中的不可逆失败时快速终止测试,避免不必要的超时等待。
内容的提问来源于stack exchange,提问作者Antoniossss
相关产品推荐
相关产品推荐

