أدوات من Chrome لإجراء اختبار تلقائي سلس

إنّ الاختبار مهم. وقبل تسليم ما أنشأته إلى المستخدِمين، سواء كان موقعًا إلكترونيًا أو تطبيقًا كاملاً أو ميزة جديدة، من المهم التأكّد من أنّه يعمل على النحو المتوقّع. ومع ذلك، لا يزال الكثير من الاختبارات يتم يدويًا، ويُطلب من الزملاء أو مهندسي الاختبار فحص الميزة الجديدة والإبلاغ عن المشاكل.

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

لهذا السبب، يؤمن فريق Chrome بأهمية الاختبار المبرمَج. من خلال استخدام مجموعة اختبارات تختبر الميزة بشكل موثوق ومتكرّر بحثًا عن أي مشاكل، يمكنك التأكّد من اختبار كل التفاصيل الصغيرة الآن وبعد التطوير في المستقبل. يتم تجميع معرفتك كمطوّر ميزة في أحد الاختبارات.

ندرك أنّ الاختبار الآلي قد يكون صعبًا. لهذا السبب، يقدّم فريق Chrome الأدوات والإرشادات التالية لتسهيل عملية الإعداد قدر الإمكان.

محرك العرائس

‫Puppeteer هي مكتبة Node.js. يتيح لك هذا الإطار التشغيل الآلي لمتصفّحات Chrome وChromium وFirefox باستخدام واجهة برمجة تطبيقات عالية المستوى وسهلة الاستخدام.

على الرغم من أنّ واجهة برمجة التطبيقات هذه كانت تستند في الأصل إلى بروتوكول أدوات مطوري البرامج في Chrome، إلا إنّ الهدف هو جعل بروتوكول WebDriver BiDi الجديد والمتقدّم أساسًا لواجهة Puppeteer بحلول نهاية السنة. إنّ WebDriver BiDi، الذي تم إنشاؤه بشكلٍ مشترَك من قِبل جميع مورّدي المتصفّحات الرئيسيين، يبسط الكثير من حالات استخدام التشغيل الآلي ويتيح الكثير من الحالات الجديدة، وهو متوافق مع جميع المتصفّحات.

.

ولكن لا داعي للانتظار. تتيح واجهة برمجة تطبيقات Puppeteer حاليًا العديد من حالات استخدام التشغيل الآلي، والتي ستتحسن فقط باستخدام WebDriver BiDi. بدءًا من الاختبار والزحف المرئي وبرمجة العمليات، هناك الكثير مما يمكنك فعله باستخدام ميزات مثل التفاعلات مع الصفحة واعتراض الطلبات ولقطات الشاشة. يمكنك أيضًا استخدامها لاختبار نماذج الذكاء الاصطناعي على الويب في السحابة الإلكترونية باستخدام WebGPU وWebGL.

يتم استخدام Puppeteer أيضًا من خلال أدوات مثل WebdriverIO، وهو إطار عمل كامل لاختبار المتصفحات، وأداة تحليل "مبادرة حماية الخصوصية"، ما يتيح لك فهم استخدام ملفات تعريف الارتباط وبيانات المستخدمين على موقعك الإلكتروني بشكلٍ أفضل.

Chrome بلا واجهة مستخدم رسومية

إذا سبق لك استخدام Puppeteer لأتمتة Chrome، ربما لاحظت عدم ظهور نافذة متصفّح أثناء إجراء الاختبارات. يبدأ Puppeteer Chrome تلقائيًا في وضع بلا واجهة مستخدم. وهذا يعني أنّه لا تتوفّر نافذة متصفّح فعلية أثناء تشغيل عملية التشغيل الآلي.

هل تعلم أنّ وضع Chrome "بلا واجهة مستخدم رسومية" ليس هو Chrome بدون نافذة فحسب، بل هو إصدار من Chrome يتم الاحتفاظ به بشكل منفصل تمامًا؟ وقد أدّى ذلك لفترة طويلة إلى حدوث التباس وصعوبة في تتبُّع الأخطاء والمشاكل.

منذ الإصدار 112 من Chrome، طرحنا وضعًا جديدًا بلا واجهة مستخدم رسومية، وهو يستند الآن إلى قاعدة الرموز المبرمَجة نفسها المستخدَمة في Chrome العادي. لا يؤدي ذلك إلى تقليل الالتباس السابق فحسب، بل يوفّر أيضًا وظائف لم تكن متاحة من قبل، مثل استخدام الإضافات أثناء العمليات المبرمَجة.

يستخدم Puppeteer وضع "التشغيل بلا واجهة مستخدم رسومية" الجديد هذا كإعداد تلقائي منذ الإصدار 22. إذا كنت تستخدم Chrome Headless من خلال حلول التشغيل الآلي الأخرى، يمكنك فرض وضع Headless الجديد باستخدام مفتاح التبديل --headless=new في سطر الأوامر.

على الرغم من أنّ "وضع Chrome بدون واجهة مستخدم" الجديد أكثر فعالية، إلا أنّه ليس خفيفًا مثل "وضع Chrome بدون واجهة مستخدم" القديم. إذا كانت الموارد محدودة جدًا أو لم تكن بحاجة إلى كل ميزات Chrome، يمكنك استخدام الوضع القديم من "Chrome بلا واجهة مستخدم رسومية" كchrome-headless-shell.

Chrome for Testing

عند إجراء الاختبار، تحتاج إلى التحكّم بشكل دقيق في بيئة الاختبار: نظام التشغيل والمتصفّح وإصدار المتصفّح. قد يكون من الصعب إجراء ذلك باستخدام ميزة التحديث التلقائي في Chrome.

لهذا السبب، أنشأنا Chrome for Testing، وهو إصدار من Chrome بدون التحديث التلقائي، ويتم إصداره مع كل إصدار من Chrome، ولكل نظام تشغيل رئيسي، ويمكن الوصول إليه من أرشيف يتضمّن إصدارات مختلفة. يتيح لك ذلك تنفيذ مهام سير العمل المبرمَجة مع إصدار محدّد من Chrome بدون الحاجة إلى تعديلاتٍ كثيرة.

يمكنك الوصول إلى الثنائيات في Chrome for Testing من لوحة بيانات مدى توفّر Chrome for Testing، JSON API، أو باستخدام أداة سطر الأوامر Puppeteer.


لا يشكّل Puppeteer ووضع Chrome المُعدَّل "بدون إطار" وChrome for Testing سوى جزءٍ من العمل الذي يبذله فريقنا حاليًا لتسهيل التشغيل المبرمَج للمتصفّح وإجراء الاختبارات. وتساعدك الأدوات ذات الصلة، مثل أداة تسجيل أدوات مطوري البرامج، في إنشاء الاختبارات: تسجيل مسار مستخدم في Chrome وإعادة تشغيله في Puppeteer.

التعرّف على اختبار الأداء على web.dev

ستساعدك الأدوات التي تتناولها هذه المشاركة في تحسين الاختبار الآلي. ولكن إذا كنت لا تزال في خطواتك الأولى، قد يبدو لك أنّ هناك الكثير من المعلومات التي يجب فهمها وتعلمها. لهذا السبب، أنشأنا دورة تدريبية جديدة تتألف من 10 وحدات، وهي التعرّف على الاختبار على web.dev. تتناول هذه الدورة التدريبية المفصّلة المفاهيم الأساسية للاختبار، وأماكن إجراء الاختبارات وكيفية إجرائها، وأنواع الاختبارات، والعناصر التي يجب اختبارها. وهي نقطة انطلاق رائعة لرحلة الاختبار. بعد اكتساب الأساسيات، يمكنك الانتقال إلى مجموعة اختبارات التشغيل الآلي التي تتضمّن تحليلات عميقة ونصائح عملية حول أسئلة الاختبار الأكثر تحديدًا.