مصدر مفتوح / حاوية.

مختبر المتصفحات.

"browser-tester" هو بيئة اختبار تشبه المتصفح، تعتمد على لغة Rust بالكامل، وتعمل بطريقة محددة وقابلة للتكرار. وهي تتحقق من سلوك عناصر DOM والأحداث دون الحاجة إلى تشغيل متصفح حقيقي.

صدأ. وقت التشغيل المحدد. اختبار نموذج كائن المستند (DOM).

ما هي نقاط القوة والميزات التي يتميز بها هذا المنتج/الحزمة؟

يركز برنامج "browser-tester" على اختبارات سلوك النماذج وواجهات المستخدم المتوقعة، بدلاً من اختبار توافق العرض الكامل للمتصفحات.

وقت تشغيل مخصص للغة رست فقط.

يعمل داخل عملية واحدة مكتوبة بلغة Rust. لا يتطلب أي متصفح خارجي، أو مكتبة WebDriver، أو بيئة Node.js.

تنفيذ حتمي.

تم تصميم هذا النظام لإجراء اختبارات متكررة، وذلك من خلال ميزات مثل: ساعة افتراضية، ومصدر عشوائي محدد، وواجهات برمجة تطبيقات للتحكم الدقيق في المؤقت.

اختبارات واجهة المستخدم (DOM) واختبارات تفاعلية (Event Testing).

يدعم سير العمل العملي المشابه للمتصفحات، بما في ذلك: تحديد العناصر، تنفيذ الأوامر البرمجية المضمنة، نقل الأحداث، وتحديثات نموذج العناصر (DOM).

ملاحظات سريعة ومحلية.

دورة تغذية راجعة سريعة لاختبارات واجهة المستخدم التي تركز على النماذج، مع الحفاظ على تركيز مخرجات الأخطاء على المحددات والقيم المتوقعة/الفعلية.

ابدأ بسرعة.

قم بإنشاء إطار اختبار باستخدام HTML، وقم بتنفيذ التفاعلات، وتحقق من نتائج نموذج العناصر (DOM). ابدأ بإطار اختبار بسيط وقم بتوسيعه باستخدام مؤقتات وواجهات برمجة تطبيقات وهمية.

قم بتثبيت.

إضافة "browser_tester" إلى قائمة الحمولة.

مثال أساسي.

الواجهة الرئيسية لواجهة برمجة التطبيقات (API).

ربط الإجراءات والتأكيدات.

عمليات الاختبار الأساسية لعنصر نموذج كائن المستند (DOM): تتضمن `Harness::from_html`، و`type_text` (لإدخال نص)، و`set_checked` (لتحديد خانة الاختيار)، و`click` (لإجراء النقر)، و`submit` (لإرسال النموذج)، بالإضافة إلى أدوات مساعدة للتحقق من وجود نص أو قيمة أو حالة "محدد" أو وجود العنصر.

مؤقتات حتمية.

يمكن التحكم في السلوك غير المتزامن باستخدام ساعة وهمية. يمكن تحريك الوقت بشكل حتمي باستخدام واجهات برمجة التطبيقات الخاصة بـ `advance_time` و `advance_time_to` و `flush`، بالإضافة إلى واجهات فحص المؤقت.

محاكيات مدمجة.

يمكنك استخدام الدوال `set_fetch_mock` و `enqueue_confirm_response` و `enqueue_prompt_response` لإدخال استجابات عمليات الجلب ونتائج الحوارات في الاختبارات، وذلك للحفاظ على عزلة الاختبارات.

تتبع وتشخيص الأعطال.

قم بتمكين سجلات التتبع واستخراج مسار الأحداث/المؤقتات عند فشل الاختبار. هذا مفيد لتصحيح أخطاء ترتيب الأحداث وسلوك الإجراءات الافتراضية.

سياسة التشغيل.

  • تم تصميم وظيفة "eval" بحيث لا يتم دعمها بشكل متعمد للحفاظ على الأمان والقدرة على التنبؤ.
  • يهدف هذا الإصدار التجريبي إلى تغطية سيناريوهات الاختبار العملية، وليس إلى تحقيق توافق كامل مع جميع متصفحات الويب.
  • لا يندرج ضمن النطاق عمليات الإدخال والإخراج للشبكة الخارجية؛ استخدم محاكيات الاسترجاع لتغطية الاختبار.

إذا كنت بحاجة إلى واجهات برمجة تطبيقات إضافية للمتصفح لمجموعة الاختبارات الخاصة بك، يرجى فتح تذكرة (أو مشكلة) مع مثال بسيط لتوضيح النطاق والأولوية.