يسعدنا اليوم الإعلان عن إطلاق Chrome for Testing، وهو صيغة جديدة من Chrome تستهدف على وجه التحديد اختبار تطبيقات الويب وحالات الاستخدام المبرمَجة. توضّح هذه المقالة سبب احتياج فريق Chrome إلى ذلك، كما تستعرض أمثلة ملموسة قد تفيدك بصفتك مطوِّرًا كمطوِّر من خلال Chrome for Testing.
الخلفية
فاختبار المتصفح هو عنصر حيوي لإنشاء تجربة ويب عالية الجودة، بصرف النظر عما إذا كانت تتم يدويًا أو تلقائيًا. في الوقت نفسه، يُعدّ إعداد بيئة اختبار مناسبة للمتصفّح أمرًا صعبًا للغاية، لدرجة أنّه يتم الإبلاغ باستمرار عن المشكلة التي يواجهها المطوّرون على الويب. واليوم، نعلن عن تغيير نأمل أن يخفّف من هذه المعاناة.
التحديث التلقائي: رائع للمستخدمين ويؤثر سلبًا على المطوّرين
إحدى أبرز ميزات Chrome هي قدرته على التحديث التلقائي. يسر المستخدمين معرفة أنّهم يستخدمون إصدارًا حديثًا وآمنًا من المتصفّح، بما في ذلك ميزات Web Platform الحديثة وميزات المتصفّح وإصلاح الأخطاء في جميع الأوقات.
ومع ذلك، بصفتك مطوّرًا يجري مجموعة من الاختبارات الشاملة، قد تكون لديك منظور مختلف تمامًا:
- إذا كنت تريد الحصول على نتائج متسقة وقابلة للتكرار على مستوى عمليات الاختبار المتكرّرة، ولكن قد لا يحدث هذا إذا قرّر برنامج المتصفِّح القابل للتنفيذ أو البرنامج الثنائي تحديث نفسه بين عمليتَي تشغيل.
- إذا كنت تريد تثبيت إصدار معيّن من المتصفّح والتحقّق من رقم الإصدار في مستودع رمز المصدر، يمكنك الاطّلاع على عمليات التنفيذ والفروع القديمة وإعادة ��جراء الاختبارات باستخدام البرنامج الثنائي للمتصفح من تلك الفترة الزمنية.
ولا يمكن تنفيذ أي من هذه الإجراءات باستخدام البرنامج الثنائي للمتصفح الذي يتم تحديثه تلقائيًا. ونتيجة لذلك، قد لا تحتاج إلى استخدام تثبيت 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 for Testing. بالإضافة إلى حل هذه المشكلة التي تواجه المستخدمين، يؤدي ذلك أيضًا إلى مواءمة إصدارات 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 API مع أحدث الإصدارات المتاحة لكل قناة من قنوات إصدارات Chrome (الثابتة والتجريبية وإصدار مطوّري البرامج وإصدار Canary). للحصول على نظرة عامة سريعة حول أحدث حالة، يمكنك الرجوع إلى لوحة البيانات الخاصة بمدى توفّر Chrome for Testing.