自动化测试报告html生成图片

通常在自动化执行结束之后会通过邮件生成测试报告,java一般都是通过自带的模板或者allure生成的html报告。可是在具体使用过程中,我们发现,即使是测试同学,对于测试报告的html邮件也是视而不见,没有足够的重视。于是我们便决定将报告内容截图放在邮件正文,这样即使不下载附件,也能对测试结果有一个比较详细的认识。

技术选型

以前在做web UI自动化的时候有一款PhantomJS的工具,可以模拟无界面的操作进行截图,但是因为开发团队的一些问题,导致这款工具在2018年暂停开发切不再支持chrome浏览器了。
Headless Chrome指在headless模式下运行谷歌浏览器,且对chrome的各种特性都支持,使用devtools协议能完成请求。在github上有一个开源的三方包提供了这个支持

环境搭建

在centos下,首先需要安装chrome 浏览器

sudo yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

cntos安装之后可能无法运行,需要修改配置文件 参考:https://blog.youkuaiyun.com/zxc19854/article/details/115966801

测试安装chrome :

google-chrome --headless --disable-gpu --dump-dom --no-sandbox https://www.baidu.com

执行之后生成的图片,发现文字内容字体显示方框 ,需要下载依赖
在这里插入图片描述

yum groupinstall “X Window System” -y
yum -y groupinstall Fonts

生产图片

通过maven下载相关依赖,参考官方给出的示例

<dependency>
   <groupId>com.github.kklisura.cdt</groupId>
   <artifactId>cdt-java-client</artifactId>
   <version>2.1.0</version>
</dependency>

图片生成示例具体代码

  public static void main(String[] args) {
    // Create chrome launcher.
    final ChromeLauncher launcher = new ChromeLauncher();

    // Launch chrome either as headless (true) or regular (false).
    final ChromeService chromeService = launcher.launch(false);

    // Create empty tab ie about:blank.
    final ChromeTab tab = chromeService.createTab();

    // Get DevTools service to this tab
    final ChromeDevToolsService devToolsService = chromeService.createDevToolsService(tab);

    // Get individual commands
    final Page page = devToolsService.getPage();

    page.onLoadEventFired(
        event -> {
          System.out.println("Taking screenshot...");

          captureFullPageScreenshot(devToolsService, page, "screenshot.png");

          System.out.println("Done!");

          devToolsService.close();
        });

    // Enable page events.
    page.enable();

    // Navigate to github.com.
    page.navigate("http://github.com");

    devToolsService.waitUntilClosed();
  }

这样就能直接生成测试报告图片
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值