对于web系统的自动化测试,selenium使用比较多,它支持多种语言java、python、C#等,本文中使用java。selenium执行case时,支持截图,代码如下:
File file = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(file, new File("screen.png"));
后面用Robotium写android自动化的时候,在github上发现android-spoon这个插件,可以将android自动化运行时的截图生成html报表,提供单机图片预览,多机图片比较等功能。于是想到也可以用到selenium上。初步做了实现,后续逐步改进。现在实现的功能有:
- html浏览单独浏览器上case执行中的截图
- 预览单个case截图的gif动态图
- 查看case执行过程中日志(使用log4j)
插件源码https://github.com/yeetrack/selenium-spoon-plugin
使用该插件的selenium样例工程https://github.com/yeetrack/selenium-spoon-sampler
插件生成的报表预览:http://htmlpreview.github.io/?https://github.com/yeetrack/selenium-spoon-sampler/blob/master/target/screenshotResult/report/firefox.html,推荐使用chrome访问。
截图如下:
插件使用方式:
在你的selenium项目的pom中添加下面的依赖:
<dependency>
<groupId>com.yeetrack.selenium</groupId>
<artifactId>spoon</artifactId>
<version>1.0</version>
</dependency>
添加plugin:
<plugin>
<groupId>com.yeetrack.selenium</groupId>
<artifactId>spoon</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>spoon report</id>
<phase>post-integration-test</phase>
<goals>
<goal>spoon</goal>
</goals>
</execution>
</executions>
</plugin>
注意:如果在maven repo仓库中找不到selenium-spoon的包,可以将selenium-spoon的包安装到本地maven仓库里,方法是:
- 下载插件源码,github地址: https://github.com/yeetrack/selenium-spoon-plugin
- 在插件项目跟路径执行
mvn clean install
在截图时,不要再使用selenium提供的方法,要使用插件提供的方法:
DriverCapture.snapShot("这里输入图片描述", driver);
插件使用log4j日志框架,已经添加了log4j的包,这里直接使用即可。
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("info");
logger.debug("debug");
logger.error("error");
执行:
mvn clean install
截图存放路径:target/screenshots
html报告路径: target/screenshotResult/report
生成gif图片代码,使用的是Kevin Weiner这哥们之前写的,具体信息https://www.yeetrack.com/?p=943
版权声明
本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。
© 空空博客,本文链接:https://www.yeetrack.com/?p=947
近期评论