在基于Selenium Webdriver(Java) + Junit4 + Jenkins 的web 自动化测试中,进行失败test的截图,同时发布到Jenkins上。
这两天在研究这个问题,这是一点总结,首先需要版本够高的Jenkins,并安装Junit Attachments plugin,同时注意要去Jenkins配置Additional test report features,选择启用 Publish test attachments,这样这个Junit Attachments插件可以帮助检查标准输出中,是否有特定格式的关于附件的log,然后依据log中的附件文件的地址,把该附件上传至Jenkins中。
还需要代码里的支持,我手上的web自动化测试,是基于Selenium Webdriver(Java) + Junit4实现的,这里需要实现一个Junit4里的 rule,我这是ScreenshotRule,继承于TestWatcher,改写其中的failed()方法,也即当 test case failed 的时候,执行截图操作,具体代码如下:
1 | package com.ibm.robot.web.testrules; |
最后还要去test的基类中,启用这个rule,注意这个rule类在使用的时候,需要传入test的基类中使用的driver,也即:
1 |
|