QAF使用问题:如何重置执行测试用例时的retry.count参数?
根因说明
你遇到的问题是QAF默认retry.count为单条用例执行周期内的全局共享计数,不会在每个元素定位操作完成后自动重置,所以同一条用例里多个存在加载延迟的元素会累计消耗重试额度,次数耗尽后后续元素定位直接失败。而你观察到的「第5次重试后用例从头启动并失败」,是默认配置触发了用例级失败重试,全局计数用完后直接终止用例导致的。
解决方案
方案1:配置元素级独立重试(推荐)
直接在application.properties中添加以下配置,让每个元素的定位操作都单独占用retry.count的额度,不会和其他元素共享计数:
# 开启元素定位独立重试计数,每次定位新元素时自动重置重试次数 element.retry.count.independent=true # 全局重试次数保留你配置的5次即可 retry.count=5
配置后即解决同用例多元素消耗重试次数的问题。
方案2:手动重置重试计数
如果需要灵活控制重试计数重置时机,可以在测试代码中手动调用配置重置方法:
// Java代码示例:执行完指定操作后重置全局重试次数为5 ConfigurationManager.getBundle().setProperty("retry.count", 5);
如果你用BDD语法编写用例,可以把这段逻辑封装为自定义步骤,在需要重置的位置调用即可。
方案3:关闭用例级重试
如果不需要用例整体失败后自动重试,添加以下配置即可解决重试5次后用例从头启动的问题:
# 关闭用例级失败重试 testcase.retry.count=0
补充说明
- 如果只有个别元素需要更高的重试额度,不需要修改全局配置,可以单独给该元素设置更长的显式等待时间,优先级高于全局
retry.count - 开启元素独立重试后,不要设置过大的
retry.count,避免页面确实加载失败时,用例整体执行超时太长
内容的提问来源于stack exchange,提问作者Renish
相关产品推荐
相关产品推荐

