selenium 中如何run已失败的case

阅读更多

ITeye的用户名和密码找不到了,苦逼的我,只能转战新浪博客了。在我们的CI环境下的自动化项目,加之webservice test case 已经有了6个节点了,由于每天忙于其他,一直没有关注其中有一个run failed test case的节点,偶然看到,发现之前写的build脚本完全是shit,我不知道这个东西是如何一直存在下来的,先不说是否完美,单单是主要功能,就没有实现,或许是开始做这个任务的队友没有了解我的目的是什么。 ok, 4天之后,我看到了一个极为瘫痪的ant脚本,至此我不得不去自己关注这个问题。 我们令人欣喜的使用了selenium grid和testng的集成来使得所有的case可以支持多任务并发,ok,被CI执行过服务器里,找到我们的项目,看看到底生成了什么? 我们只看重要的,embedded.html 打开一看,哇塞,testng模式的自动化报告生成,再一看失败了30个case,咋办呢?看看detail吧,o shit,timeout,鄙视一下美国的service以及各种环境。我看到这30个失败的case但我依然对代码有信心,因为我认为大部分问题是环境以及机器性能导致的。我需要一键触发我的失败用例。再看另一个有价值的东西,${basedir}/target/reports/testng-failed.xml,这个也是很重要的信息,记录了所有失败的用例。 由于开始的种种原因,整个项目的所有case 我没有放在xml文档中,而是单独建立了一个class来让这些case自得其所,进行统一管理,当然起初我在这样设计的时候固然是有其他的考虑在里面的,易定位,方便调试等。当然testng可以很好的来execute装在xml里的case,这也是我最后解决这个问题的灵感。


selenium 中如何run已失败的case_第1张图片
 

 ../reports/testng-failed.xml失败则存在,成功则不生成,我的队友在做这个run failed需求的时候,只是想着如何把testng-failed.xml里面的case抽取出来,这导致最后各种问题的不能解决。


selenium 中如何run已失败的case_第2张图片
 

ok 主要问题一下子解决了,大家可以看到我在一个参数的设计上做了一个变化。但是大家思考一下,主要问题解决了之后衍生出一个新问题,如果最后run了多次,经过各种修改,所有的失败case全都通过了,那么这个时候CI依然会报错。这是因为runtime.AnalysisRunFailedReport这个小工具只会分析是否生成了testng-failed.xml,../reports下的testng-failed.xml只会保留最后一次出错时的记录。没有关系,一句话搞定

问题目前为止已经全部解决了。

     其实很多问题不是太难解决,只是我们在解决问题前不能一味的去埋头解决,而不关乎方式,我要的当然仅仅是一个结果,我上司也是一样,问题是我们如何去分析问题,从而四两拨千斤的去解决他,我觉得这个比有多少年开发经验或者是编程能力神马的要重要的多。先思考,在做事。

 

 

 

  • selenium 中如何run已失败的case_第3张图片
  • 大小: 26.2 KB
  • selenium 中如何run已失败的case_第4张图片
  • 大小: 31 KB
  • 查看图片附件

你可能感兴趣的:(脚本,ant,selenium,自动化测试)