JLineup は、特に継続的デリバリー パイプラインにおける Web ページの自動ビジュアル回帰テストに役立つツールです。これは、単純なコマンド ライン ツールとして、または REST API 経由で制御される小さな Web サービスとして使用できます。
JLineup は、連続する 2 つの時点で Web ページのスクリーンショットを撮影し、比較します。両方の実行をピクセルごとに比較し、HTML レポートと JSON レポートを生成します。バックグラウンドでは、Selenium と任意のブラウザー (現在、Chrome、Chromium、Firefox がサポートされています) を使用します。
JLineup には、Web ブラウザ (Firefox または Chrome/Chromium) と JVM 以外の依存関係はありません。実験的: JVM を必要としない CLI バージョンの自己完結型 Linux AMD64 ビルドもあります。
デプロイメント中に otto.de をチェックするためのこの小さな設定例を見てみましょう。
{ "url": { "https://www.otto.de": { "パス": [ 「/」 ], "デバイス" : [ { "幅" : 850, "高さ" : 600, "ピクセル比" : 1.0, "デバイス名" : "デスクトップ", "タッチ" : false }, { "幅" : 1000、 "高さ" : 850、 "ピクセル比" : 1.0、 "デバイス名" : "デスクトップ"、 "タッチ" : false }, { "幅" : 1200、 "高さ" : 1000、 "ピクセル比" : 1.0、 "デバイス名" : "デスクトップ"、 "タッチ" : false } ] } }, "ページロード後の待機" : 0.5, "ブラウザ" : "クロームヘッドレス"}
JLineup はデプロイメントの前後に実行され、次のようなレポートを生成します。
JSON レポートもあるので、スクリプトで確認したい場合に最適です。
JLineup JSON レポートの例
JLineup CLI は、実行可能な Java アーカイブとして提供されます。実行するには 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
Firefox 130.x
Chrome または Firefox のいずれかを使用する場合は、システムにインストールする必要があります。
CLIツールとしてのJLineup
WebサーバーとしてJラインナップ
JLineup ジョブ構成
JLineup はいくつかのサードパーティのツールとライブラリを使用します
Selenium は、Apache 2.0 ライセンスに基づいてライセンスされています。
Webdrivermanager は、Apache 2.0 ライセンスに基づいてライセンスされています。
Jackson は、Apache 2.0 ライセンスに基づいてライセンスを取得しています。
Logback は、Eclipse Public License に基づいてライセンスされています。
SLF4J API は、MIT ライセンスに基づいてライセンスされています。
Thymeleaf は、Apache 2.0 ライセンスに基づいてライセンスされています。
Edison Microservice は、Apache 2.0 ライセンスに基づいてライセンスされています。
Spring Boot は、Apache 2.0 ライセンスに基づいてライセンスされています。
バイナリ cli バージョンは GraalVM Community Edition で構築されています。 GraalVM CE には独自の製品ライセンスが付属します。
Image Compare Viewer は、MIT ライセンスに基づいてライセンスされています。
HTML レポートでは Google フォントが使用されます。これらが条件です。
AWS SDK for Java 2.0 は、Apache 2.0 ライセンスに基づいてライセンスされています。
Pixelmatch のコードの一部は、JLineup 用に Java に移植されました。
Pixelmatch は ISC ライセンスに基づいてライセンスされています。
Looks-same のコードの一部は、JLineup 用に Java に移植されました。
Looks-same は MIT ライセンスに基づいてライセンスされています。
JLineup は、Java で実装された、構成互換性のある Lineup の代替品です。オリジナルのラインナップは Ruby ツールでしたが、現在はメンテナンスされていません。
オリジナルのラインナップのクレジットは Finn Lorbeer に与えられます。
ご質問やご提案がある場合は、問題を提起するか、marco DOT geweke AT otto.de に電子メールを書いてください。