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