移动测试基础 【已解决】做集成测试的时候怎么让单个测试 case 在出错后重新再跑,直到跑成功为止。

wuming · 2015年02月10日 · 最后由 JennyHui 回复于 2015年04月13日 · 1538 次阅读

集成测试的时候一次性要跑 20 多个 case。有可能由于环境的问题,有时候跑一个 case 的时候会报错。
只要中间一个 case 出错,那前面跑的都白跑了。费时又费力。
有没有一种方法,可以让这个 case 报错的时候,重新开始跑,一直到成功为止。
昨天听小道消息 -- 快钱之 webdriver,恒温有一句带过这个方法。我到网上去查了查,而且问过开发。都说没有相关的方法。。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 18 条回复 时间 点赞

为啥单个 case 出错后,其他 case 会白跑?

如果是不稳定,重跑可能过。如果设计有问题或者有 Bug,怎么能让失败的一直跑,一直跑成功为止呢?那这样的 case 还有意义吗?

你可以设置 retry 的次数,不能去设置一直跑,不然失去意义

wuming #15 · 2015年02月10日 Author

@anikikun 因为领导要看 100%pass 的结果~~

@beerbox 恩,是的。我的意思是因为环境问题造成的 fail~~

@kasi 我试试设置 retry 的次数。。

#4 楼 @woshizh 你们领导有才啊,改 case 啊。让其 pass 就行了

#4 楼 @woshizh 我以前的公司也陷入了这种误区,而且产品还及其不稳定,因此加上了各种的容错内容,累的半死! 其实回头想想这个是强迫症吧,只要设计好 Case 以及代码,让它中间一个 fail 不影响其他的 case 就好了,你要说服你的领导,不是 100% 成功才是常态。

@doctorq case 没有问题,一般都是环境造成的。觉得@weamylady说得对,还是跟领导沟通比较重要,不然累死了。感谢各位。。

每个 case 里面写 try cathe 里面再外面套层 for 循环加一些等待时间

@testly 已解决。。具体是 for(int i=0;i<=5;i++) { try{.......} catch{..... continue;} }。但是不打算用了,跟领导沟通沟通去。。。

Junit、TestNG 都有提供重跑失败用例的功能。失败的再运行两三遍,就可以排除不少环境不稳定造成的失败了。
剩下失败的我都是要人工分析的。

一直不懂集成测试 要怎么整 是保证模块和模块直接接口结果数据的正确之类的吗

wuming #15 · 2015年04月10日 Author

@jennyhui 要看你做哪方面的集成了,只做功能的话,集成就相当于回归

#15 楼 @woshizh 你这边的集成 相当于一个脚本内多个 case 吗

wuming #17 · 2015年04月10日 Author

@jennyhui 是的~~

#17 楼 @woshizh 我觉得没必要考虑说 case 错了 就再重跑吧 除非你要记录那个什么跑了几次才成功 那个成功率

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