مكتبة جافا مجانية لتسجيل الفيديو تلقائيًا
مكتبة جافا مفتوحة المصدر لدمج مسجل الفيديو في شبكة Selenium الخاصة بك، والتقاط فيديوهات العقد البعيدة، وتحليل الأخطاء باستخدام دليل بصري ملموس.
ما هو مسجل الفيديو؟
اختبار واجهات المستخدم، خاصة عبر متصفحات وأجهزة مختلفة، يمكن أن يكون كأنك تحاول الإمساك بالدخان بيديك العاريتين. عندما يفشل اختبار، تجد نفسك تحك رأسك متسائلاً ما الخطأ. هل هو مشكلة توقيت؟ عنصر مفقود؟ حالة سباق غريبة؟ هنا يأتي دور مكتبة مسجل الفيديو – أداة جافا تقوم تلقائيًا بالتقاط فيديو لاختبارات واجهة المستخدم الخاصة بك باستخدام بضع تعليقات توضيحية فقط. المكتبة، المتاحة على GitHub بواسطة سيرجي بيريغوف، تجعل تسجيل الفيديو بسيطًا للغاية من خلال السماح للمطورين بإضافة بعض التعليقات أو الإعدادات لبدء التسجيل تلقائيًا أثناء الاختبارات. بدلاً من إعادة إنتاج الأخطاء يدويًا، يمكن للفرق ببساطة مشاهدة الفيديوهات المسجلة لفهم ما حدث أثناء تنفيذ الاختبار.
Video Recorder هو مكتبة جافا مفتوحة المصدر تتكامل بسلاسة مع أطر الاختبار الشهيرة مثل JUnit 4/5 و TestNG و Spock. بدلاً من بدء وإيقاف تسجيل الشاشة يدويًا، يمكنك ببساطة إضافة توضيح @Video إلى أساليب الاختبار الخاصة بك. تتولى المكتبة الباقي – بدء التسجيل قبل تشغيل الاختبار وحفظ الفيديو عند الانتهاء، عادةً فقط عندما يفشل الاختبار (على الرغم من أنه يمكنك تكوينها بطريقة أخرى). تستخدم المكتبة إما Monte Media (جافا نقي، إعداد أسهل لكن صيغ محدودة) أو FFmpeg (أقوى، دعم أفضل لمختلف الترميزات وإعدادات الشاشة) كمسجل أساسي. للاختبار عن بُعد، مثل على Selenium Grid، يمكنها حتى تسجيل الفيديو على العقدة البعيدة دون إعداد إضافي.
البدء مع مسجل الفيديو
الطريقة الموصى بها لاستخدام مكتبة Video Recorder هي إضافة تبعية Maven. يرجى استخدام الأمر التالي لضمان عمل سلس.
اعتماد Maven لمكتبة مسجل الفيديو
<dependency> <groupId>com.automation-remarks</groupId> <artifactId>video-recorder-testng</artifactId> <version>LATEST</version> </dependency>تثبيت documents4j من GitHub
implementation 'com.automation-remarks:video-recorder-junit5:2.0'
تسجيل الفيديو القائم على التعليقات التوضيحية عبر جافا
إحدى أكبر مزايا مكتبة مسجل الفيديو مفتوحة المصدر هي تصميمها القائم على التعليقات التوضيحية. يمكن للمطورين تمكين التسجيل ببساطة عن طريق إضافة التعليقات التوضيحية إلى فئات الاختبار أو الأساليب. هذا يقلل من الشيفرة الزائدة ويجعل التكامل مباشرًا لإطارات اختبار جافا مثل JUnit. تقوم التعليمة @Video تلقائيًا ببدء التسجيل قبل بدء الاختبار وإيقافه بعد الانتهاء. هناك فوائد متعددة لهذا، مثل الحد الأدنى من تغييرات الشيفرة، سهولة الاعتماد، وملفات اختبار أنظف.
كيف يتم تسجيل الفيديو القائم على التعليقات التوضيحية عبر مكتبة جافا؟
import com.automation.remarks.video.annotations.Video;
public class LoginTest {
@Video
public void testLogin() {
System.out.println("Executing login test...");
}
}
ustom Video Naming
تسمية الفيديو المخصصة عبر مكتبة جافا
تمكن مكتبة مسجل الفيديو مفتوحة المصدر مطوري جافا من تنفيذ قواعد تسمية مخصصة للتسجيلات، مما يساعد الفرق على تنظيم التسجيلات بشكل أكثر كفاءة. هذا مفيد عند تشغيل مجموعات اختبارات متعددة. إنها مفيدة جدًا وتوفر فوائد مثل تحسين تنظيم الملفات، سهولة البحث عن القطع الأثرية، وتحسين تكامل التقارير. إليكم مثالًا بسيطًا يوضح كيفية تنفيذ هذه العملية.
كيف يتم إنشاء ملف فيديو عبر مكتبة جافا؟
@Video(name = "checkout_flow_test")
public void checkoutTest() {
System.out.println("Checkout process running");
}
تسمية الفيديو المخصصة عبر مكتبة جافا
مسجل الفيديو قوي جدًا ويتحكم في كل شيء – من مجلد الإخراج ووضع التسجيل (دائمًا، عند الفشل،
كيف تطبق خصائص التسجيل المتنوعة باستخدام مكتبة مسجل الفيديو؟
# Only record tests annotated with @Video (default)
video.mode=ANNOTATED
# Save videos only when a test fails (saves disk space)
video.save.mode=FAILED_ONLY
# Output directory – use an environment variable for CI
video.folder=${user.home}/test-reports/videos
# Frame rate – lower for faster processing, higher for smooth playback
video.frame.rate=15
# Use FFmpeg for better codec support
recorder.type=FFMPEG
دمج FFmpeg لتسجيل عالي الأداء
للمستخدمين المتقدمين، يمكن للمكتبة استدعاء FFmpeg مباشرةً (بدلاً من Monte Media). يقدم FFmpeg استهلاكًا أقل للمعالج، ومزيدًا من الترميزات (H.264، VP9)، وإمكانية تسجيل نافذة تطبيق معينة أو منطقة محددة. كل ما تحتاجه هو تثبيت FFmpeg على جهاز الاختبار وأداة SendSignalCtrlC.exe على نظام Windows لإيقافٍ سلس.