自动化工具 如何重试 TestNg 中参数化的单条用例?

狂天 · 2024年03月06日 · 最后由 狂天 回复于 2024年03月11日 · 2950 次阅读

我看网上说实现 IRetryAnalyzer 类,然后配置在测试用例上。

可我的测试用例是参数化的,一个@Test里面一堆用例,用了上面的方法后,我失败一条就重跑所有参数化的用例,这可该咋整?

最佳回复

解决了,花了至少两天,有点墨迹,说下思路吧。
开始就是百度,发现有人说 testng 版本会对执行结果有影响,就更新了他说的版本,
仍然无效。
又看一个帖子说,他在官网(GITHUB)的 ISSUE 里看到了自己的问题,然后更新到了对应解决的版本就好了。
我也效仿,在 issue 里搜关键词 “retried",发现了一个跟我基本一样的问题,这个问题在 7.8.0 版本中得到修复。
我就更新到该版本,再执行有 dataprovider 的测试用例失败时,只会重试失败的用例,而不会重试所有。
所以最终解决方法是:去官网修改 BUG ISSUE,然后更新对应版本

共收到 4 条回复 时间 点赞

我的方案是把失败的用例(包括用例中的所有步骤)记录下来,套件执行完毕后再把失败的用例组成一个新的 suite 重新执行。最后出报告时可以把几轮测试的结果融合起来一起发,也可以单独发每一轮的结果

fiskeryang 回复

大佬方法可以,一语惊醒梦中人

解决了,花了至少两天,有点墨迹,说下思路吧。
开始就是百度,发现有人说 testng 版本会对执行结果有影响,就更新了他说的版本,
仍然无效。
又看一个帖子说,他在官网(GITHUB)的 ISSUE 里看到了自己的问题,然后更新到了对应解决的版本就好了。
我也效仿,在 issue 里搜关键词 “retried",发现了一个跟我基本一样的问题,这个问题在 7.8.0 版本中得到修复。
我就更新到该版本,再执行有 dataprovider 的测试用例失败时,只会重试失败的用例,而不会重试所有。
所以最终解决方法是:去官网修改 BUG ISSUE,然后更新对应版本

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册