Selenium-spoon-plugin插件开发

对于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访问。

截图如下:

spoon

插件使用方式:
在你的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仓库里,方法是:

在截图时,不要再使用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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

(Spamcheck Enabled)