Chrome for Testing: عمليات تنزيل موثوقة لميزة التشغيل الآلي للمتصفّح

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

الخلفية

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

التحديث التلقائي: ميزة رائعة للمستخدمين، ولكنها مزعجة للمطوّرين

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

ومع ذلك، بصفتك مطوّرًا يُجري مجموعة من الاختبارات الشاملة، قد يكون لديك منظور مختلف تمامًا:

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

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

البرامج الثنائية للمتصفّح التي تتضمّن أرقام إصدارات

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

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

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

الحلّ: Chrome for Testing

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

لإنشاء Chrome for Testing، أجرينا تغييرات على قواعد بيانات Chromium وChrome وأعددنا البنية الأساسية لإنشاء هذه الملفات الثنائية وتحميلها إلى حزمة متاحة للجميع بالتزامن مع عملية إصدار Chrome على جميع القنوات (الإصدار الثابت والإصدار التجريبي وقناة إصدارات المطوّرين و"إصدار Canary").

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

كيف يمكنني الحصول على ملفات Chrome for Testing الثنائية؟

أسهل طريقة لتنزيل ملفات Chrome for Testing الثنائية لمنصتك هي استخدام أداة سطر الأوامر @puppeteer/browsers المتوفّرة من خلال npm. وإليك بعض الأمثلة:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

إذا كنت تفضّل إنشاء نصوص برمجية مبرمَجة خاصة بك لتنزيل هذه الملفات الثنائية، يمكنك الاستفادة من المعلومات التالية. نقدّم نقاط نهاية لواجهة برمجة تطبيقات JSON مع أحدث الإصدارات المتوفّرة لكل قناة إصدار من Chrome (الإصدار الثابت والإصدار التجريبي وإصدار المطوّرين و"إصدار Canary"). للحصول على نظرة عامة سريعة على الحالة الأخيرة، يمكنك الرجوع إلى لوحة بيانات مدى توفّر Chrome for Testing.