JLineup هي أداة مفيدة لاختبارات الانحدار المرئي الآلية لصفحات الويب، خاصة في مسارات التسليم المستمر. يمكن استخدامه كأداة سطر أوامر بسيطة أو كخدمة ويب صغيرة يتم التحكم فيها عبر REST API.
تقوم JLineup بتصوير لقطات الشاشة لصفحة الويب ومقارنتها في نقطتين متتاليتين في الوقت المناسب. فهو يقوم بمقارنة البكسل بالبكسل لكلا التشغيلين وينشئ تقرير HTML وJSON. خلف الكواليس، يستخدم السيلينيوم والمتصفح المفضل (يدعم حاليًا Chrome وChromium وFirefox).
ليس لدى JLineup أي تبعيات أخرى غير متصفح الويب (Firefox أو Chrome/Chromium) وJVM. تجريبي : هناك أيضًا إصدار Linux AMD64 قائم بذاته لإصدار CLI والذي لا يتطلب حتى JVM.
لنأخذ هذا المثال الصغير للتهيئة للتحقق من otto.de أثناء النشر:
{ "عناوين URL": { "https://www.otto.de": { "المسارات": [ "/" ]، "الأجهزة" : [ { "العرض" : 850، "الارتفاع" : 600، "نسبة البكسل" : 1.0، "اسم الجهاز" : "سطح المكتب"، "اللمس" : خطأ }، { "العرض" : 1000، "الارتفاع" : 850، "نسبة البكسل" : 1.0، "اسم الجهاز" : "سطح المكتب"، "اللمس" : خطأ }، { "العرض" : 1200، "الارتفاع" : 1000، "نسبة البكسل" : 1.0، "اسم الجهاز" : "سطح المكتب"، "اللمس" : خطأ } ] } }، "الانتظار بعد تحميل الصفحة" : 0.5، "المتصفح" : "مجهول الكروم"}
يتم تشغيل JLineup قبل النشر وبعده ويقوم بإنشاء تقرير مثل هذا:
يوجد أيضًا تقرير JSON، وهو أمر رائع إذا كنت تريد التحقق من الأشياء حسب البرنامج النصي:
مثال لتقرير JLineup JSON
يأتي JLineup CLI كأرشيف Java قابل للتنفيذ. يجب أن يتوفر Java 17 أو أعلى لتشغيله.
افتح Terminal وقم بتنزيله مثل هذا:
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 كخادم الويب
تكوين وظيفة JLineup
تستخدم JLineup بعض أدوات ومكتبات الطرف الثالث
السيلينيوم مرخص بموجب ترخيص Apache 2.0.
تم ترخيص Webdrivermanager بموجب ترخيص Apache 2.0.
جاكسون مرخص بموجب ترخيص 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 ترخيص المنتج الخاص بها.
تم ترخيص Image Compare Viewer بموجب ترخيص MIT.
يتم استخدام خطوط Google في تقرير HTML. هذه هي الشروط.
تم ترخيص AWS SDK for Java 2.0 بموجب ترخيص Apache 2.0.
تم نقل بعض التعليمات البرمجية من Pixelmatch إلى Java لـ JLineup.
تم ترخيص Pixelmatch بموجب ترخيص ISC.
تم نقل بعض التعليمات البرمجية من Looks-same إلى Java لـ JLineup.
يبدو الأمر نفسه مرخصًا بموجب ترخيص معهد ماساتشوستس للتكنولوجيا (MIT).
JLineup هو بديل متوافق مع التكوين لـ Lineup، ويتم تنفيذه في Java. كانت التشكيلة الأصلية عبارة عن أداة روبي، ولكن لم تعد تتم صيانتها بعد الآن.
يعود الفضل في التشكيلة الأصلية إلى Finn Lorbeer.
إذا كانت لديك أسئلة أو مقترحات، يرجى فتح مشكلة أو إرسال بريد إلكتروني إلى marco DOT geweke AT otto.de