JLineup 是一个对于网页的自动视觉回归测试非常有用的工具,特别是在持续交付管道中。它可以用作简单的命令行工具或通过 REST API 控制的小型 Web 服务。
JLineup 拍摄并比较连续两个时间点的网页屏幕截图。它对两次运行进行逐像素比较,并生成 HTML 和 JSON 报告。在幕后,它使用 Selenium 和选择的浏览器(目前支持 Chrome、Chromium 和 Firefox)。
除了 Web 浏览器(Firefox 或 Chrome/Chromium)和 JVM 之外,JLineup 没有其他依赖项。实验性:还有一个独立的 Linux AMD64 版本的 CLI 版本,甚至不需要 JVM。
让我们使用这个小示例配置来在部署期间检查 otto.de:
{ “urls”:{ “https://www.otto.de”:{ “路径”:[ “/” ],“设备”:[{“宽度”:850,“高度”:600,“像素比”:1.0,“设备名称”:“桌面”,“触摸”:假 }, { “宽度”: 1000, “高度”: 850, “像素比”: 1.0, “设备名称”: “桌面”, “触摸”: false }, { “宽度”: 1200, “高度”: 1000, “像素比”: 1.0, “设备名称”: “桌面”, “触摸”: false }] } },“页面加载后等待”:0.5,“浏览器”:“chrome-headless”}
JLineup 在部署之前和之后运行并生成如下报告:
还有一个 JSON 报告,如果您想通过脚本检查内容,这非常有用:
JLineup JSON 报告示例
JLineup CLI 作为可执行的 Java Archive 提供。 Java 17 或更高版本必须可用才能运行它。
打开终端并像这样下载:
wget https://repo1.maven.org/maven2/de/otto/jlineup-cli/4.12.1/jlineup-cli-4.12.1.jar -O jlineup.jar
然后输入
java -jar jlineup.jar --help
查看命令行帮助。
有关更多详细信息和小教程,请参阅 CLI 文档。
这是一个示例,说明 JLineup 如何帮助您的自动化构建和部署管道。让我们假设,这是持续集成管道的一部分:
JLineup 4.13 已成功测试
铬128.x
火狐浏览器 130.x
如果您想使用 Chrome 或 Firefox 之一,则必须在系统上安装它们。
JLineup 作为 CLI 工具
JLineup 作为 Web 服务器
JLineup作业配置
JLineup 使用一些第三方工具和库
Selenium 根据 Apache 2.0 许可证获得许可。
Webdrivermanager 根据 Apache 2.0 许可证获得许可。
Jackson 根据 Apache 2.0 许可证获得许可。
Logback 根据 Eclipse 公共许可证获得许可。
SLF4J API 根据 MIT 许可证获得许可。
Thymeleaf 根据 Apache 2.0 许可证获得许可。
Edison Microservice 根据 Apache 2.0 许可证获得许可。
Spring Boot 根据 Apache 2.0 许可证获得许可。
二进制 cli 版本是使用 GraalVM Community Edition 构建的。 GraalVM CE 带来了自己的产品许可证。
图像比较查看器根据 MIT 许可证获得许可。
HTML 报告中使用 Google 字体。这些是条款。
AWS SDK for Java 2.0 根据 Apache 2.0 许可证获得许可。
Pixelmatch 的一些代码已移植到 Java 中以用于 JLineup。
Pixelmatch 根据 ISC 许可证获得许可。
Looks-same 的一些代码被移植到 Java 中以用于 JLineup。
Looks-same 已根据 MIT 许可证获得许可。
JLineup 是 Lineup 的配置兼容替代品,用 Java 实现。最初的 Lineup 是一个 Ruby 工具,但不再维护。
最初的阵容归功于 Finn Lorbeer。
如果您有疑问或建议,请提出问题或写电子邮件至 marco DOT geweke AT otto.de