انتقل إلى المحتوى

شبكة السيلينيوم: ما هي وكيفية إعدادها

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

هذا هو المكان الذي تأتي فيه شبكة السيلينيوم - وهي أداة تغير قواعد اللعبة فيما يتعلق بتنفيذ الاختبار الموزع.

في هذا الدليل الشامل، ستتعلم كيف يمكن لـ Selenium Grid تعزيز أتمتة الاختبار لديك من خلال الاختبار المتوازي.

سنغطي:

  • ما هي شبكة السيلينيوم وكيف تعمل؟
  • فوائد استخدام شبكة السيلينيوم
  • حالات وسيناريوهات الاستخدام الشائعة
  • كيفية إعداده مع الأمثلة
  • أفضل الممارسات للتحسين

هيا بنا نبدأ!

ما هي شبكة السيلينيوم؟

شبكة السيلينيوم هي بيئة تنفيذ اختبار موزعة يتم تمكينها بواسطة جهاز التحكم عن بعد بالسيلينيوم (RC).

فهو يسمح لك بإجراء اختبارات السيلينيوم الآلية بالتوازي عبر أجهزة ومتصفحات وأنظمة تشغيل متعددة - كل ذلك من مركز مركزي.

فيما يلي القدرات الأساسية التي توفرها شبكة السيلينيوم:

  • تنفيذ الاختبار المتوازي – تشغيل الاختبارات عبر عقد متعددة في وقت واحد
  • الاختبار عبر المتصفحات – تنفيذ الاختبارات عبر المتصفحات وإصدارات المتصفح المختلفة
  • اختبار أنظمة التشغيل المتعددة – اختبار عبر أنظمة التشغيل Windows وLinux وmacOS وما إلى ذلك.
  • التوسع حسب الطلب – زيادة إمكانية تنفيذ الاختبار عن طريق إضافة العقد
  • موازنة التحميل - يقوم Hub بتوزيع الاختبارات بكفاءة عبر العقد

هذه الميزات تجعل شبكة السيلينيوم لا تقدر بثمن لاختبار الأتمتة والتكامل على نطاق واسع.

المكونات الرئيسية

تحتوي شبكة السيلينيوم على 3 مكونات رئيسية:

محور شبكة السيلينيوم – المحور هو وحدة التحكم المركزية التي تتلقى طلبات الاختبار وتوزعها على العقد للتنفيذ.

عقد شبكة السيلينيوم – العقد هي بيئات تنفيذ الاختبار حيث يحدث الاختبار الفعلي. يمكن أن يكون لديك عقد متعددة متصلة بالمحور.

الاختبارات / البرامج النصية للاختبار - البرامج النصية للاختبار الآلي باستخدام Selenium WebDriver API التي تحتوي على التعليمات البرمجية لتنفيذ حالات وسيناريوهات اختبار محددة.

كيف تعمل شبكة السيلينيوم

إليك كيفية تمكين شبكة السيلينيوم من تنفيذ الاختبار الموزع:

  1. يتم تكوين البرامج النصية للاختبارات لطلب جلسات اختبار من Grid Hub لتشغيل حالة اختبار.
  2. استنادًا إلى متطلبات المتصفح والنظام الأساسي لحالة الاختبار، يقوم Hub بتعيينها إلى عقدة تلبي هذه الإمكانات.
  3. تقوم العقدة بتشغيل المتصفح وتنفيذ البرنامج النصي للاختبار.
  4. يتم إرسال حالة تنفيذ الاختبار والنتائج مرة أخرى إلى المركز من العقدة.
  5. يقوم Hub بإبلاغ النتائج إلى البرنامج النصي للاختبار.

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

لماذا نستخدم شبكة السيلينيوم؟

دعونا نلقي نظرة على بعض الفوائد الرئيسية لاستخدام شبكة السيلينيوم:

تنفيذ اختبار أسرع

هذا هو الدافع الأكبر لمعظم الفرق لاستخدام شبكة السيلينيوم.

قد يستغرق تنفيذ الاختبارات بشكل تسلسلي وقتًا طويلاً جدًا مع نمو مجموعات الاختبار الخاصة بك.

إن تشغيل 1000 حالة اختبار بشكل تسلسلي مع 10 دقائق لكل اختبار سيستغرق 167 ساعة أو ما يقرب من 7 أيام!

ولكن باستخدام شبكة السيلينيوم، يمكنك بسهولة موازنة عمليات الاختبار عبر عقد متعددة - مما يقلل وقت التنفيذ بشكل كبير.

على سبيل المثال، يؤدي نشر هذه الاختبارات الـ 1000 عبر 10 عقد إلى تقليل وقت التنفيذ الإجمالي إلى 17 ساعة فقط - أي أسرع 4 مرات.

وفقا لمسح أجرته Testim، أبلغت الفرق تنفيذ اختبار أسرع بنسبة 70% إلى 90% بعد تنفيذ شبكة السيلينيوم.

تغطية الاختبار المحسنة

يعد اختبار تطبيقك على متصفحات وإصدارات وأنظمة تشغيل مختلفة أمرًا بالغ الأهمية للجودة.

لكن إعداد كل بيئات الاختبار هذه يدويًا يتطلب جهدًا كبيرًا.

تعمل شبكة السيلينيوم على حل هذه المشكلة من خلال السماح لك بتشغيل كل حالة اختبار عبر مزيج من البيئات التي توفر:

  • عبر اختبار المتصفح
  • اختبار عبر منصة
  • اختبار على إصدارات متعددة
  • اختبار على دقة الشاشة المختلفة

وهذا يضمن أن اختباراتك تغطي الحد الأقصى من التباديل وتجد المشكلات مبكرًا.

منظور التكلفه

تعمل شبكة السيلينيوم على تقليل تكاليف البنية التحتية من خلال تمكينك من الاستفادة من الأجهزة الموجودة لديك بالفعل كعقد.

ليست هناك حاجة لأجهزة فعلية أو افتراضية إضافية.

كما أنه يقلل من تكاليف صيانة الاختبار من خلال توزيع الاختبار والإدارة المركزية عبر المركز.

اختبار موثوق

يساعد توزيع الاختبارات عبر العقد في الحفاظ على الاستقرار حتى في حالة فشل الاختبارات على عقدة معينة.

يقوم المركز تلقائيًا بإعادة تشغيل الاختبارات الفاشلة على عقدة أخرى متاحة، مما يوفر نتائج موثوقة.

قابلة لل

إذا كنت بحاجة إلى زيادة قدرة تنفيذ الاختبار لديك، فيمكنك إرفاق عقد جديدة ديناميكيًا بمركز شبكة السيلينيوم.

إن توفير بيئات الاختبار عند الطلب يجعل شبكة السيلينيوم قابلة للتطوير بشكل كبير.

على سبيل المثال، يمكن لموزيلا توسيع نطاق شبكة السيلينيوم من 400 عقدة إلى 2500 عقدة لإدارة احتياجات الاختبار المتزايدة.

حالات الاستخدام لشبكة السيلينيوم

فيما يلي بعض سيناريوهات أتمتة الاختبار الشائعة حيث يمكن لشبكة السيلينيوم تعزيز جهودك:

أجنحة اختبار كبيرة

بالنسبة لمجموعات الاختبار التي تحتوي على آلاف أو عشرات الآلاف من حالات الاختبار، يمكن أن يؤدي التنفيذ الموازي إلى تقليل إجمالي أوقات التشغيل من أيام إلى ساعات فقط.

عدد الاختباراتوقت التنفيذ المتسلسلوقت التنفيذ الموازي
10001 أسبوع17 ساعة (10 عقد)
5000أسابيع 53.5 أيام (10 عقد)
10000أسابيع 10أسبوع واحد (1 عقدة)

اختبار التكامل

في خطوط أنابيب CI/CD، تعد سرعة تنفيذ الاختبار أمرًا بالغ الأهمية للحصول على ردود فعل سريعة.

تعمل شبكة السيلينيوم على تسريع اختبار التكامل من خلال توزيع اختبارات واجهة المستخدم الآلية عبر عقد متعددة للتشغيل بشكل متزامن.

شهد Testim أن أحد عملاء الخدمات المالية قام بتقليل أوقات تشغيل اختبار CI من 120 دقيقة إلى 10 دقائق فقط باستخدام شبكة السيلينيوم.

عبر متصفح اختبار

يعد الاختبار عبر المتصفحات أمرًا حيويًا ولكنه كثيف الموارد. تعمل شبكة السيلينيوم على تبسيط الاختبار عبر المتصفح من خلال التعامل مع توزيع الاختبار تلقائيًا.

يمكنك أن ترى كيف يتصرف التطبيق الخاص بك على جميع المتصفحات الرئيسية في تشغيل اختباري واحد.

فرق موزعة جغرافيا

عندما يتم توزيع فرق التطوير عالميًا، يمكنك توفير عقد شبكة السيلينيوم بالقرب من مواقعهم.

وهذا يوفر ملاحظات اختبارية أسرع ويكتشف المشكلات الخاصة بالموقع.

توسيع نطاق البنية التحتية للاختبار

بالنسبة للفرق والتطبيقات المتنامية، يعد توسيع نطاق إمكانية التشغيل الآلي يدويًا أمرًا شاقًا.

باستخدام شبكة السيلينيوم، يمكنك زيادة سعة الاختبار بسهولة عن طريق ربط عقد جديدة ديناميكيًا بناءً على الطلب.

هندسة شبكة السيلينيوم

الآن بعد أن رأينا الفوائد الهائلة، دعونا نلقي نظرة تحت الغطاء على بنية شبكة السيلينيوم:

المحور

يعد مركز شبكة السيلينيوم بمثابة نقطة التحكم المركزية التي تتعامل مع:

  • توزيع الاختبار - يتلقى طلبات الاختبار ويعينها للعقد
  • التعامل مع العقدة - يتتبع التسجيلات وحالات العقد
  • إدارة الجلسة – تدير جلسات الاختبار النشطة عبر العقد
  • موازنة التحميل – توزيع الاختبارات بالتساوي عبر العقد المتاحة

يوفر نقطة نهاية واحدة لبرامج الاختبار النصية للاتصال بها.

العقد

العقدة هي بيئة تنفيذ اختبار تم تكوينها لتشغيل الاختبارات الآلية.

التعامل مع العقد:

  • تنفيذ الاختبار - تشغيل البرامج النصية للاختبار المعينة
  • إدارة المتصفح - تشغيل المتصفح الذي تم تكوينه للجلسة
  • إعداد التقارير - إرسال حالة الاختبار والنتائج إلى المركز
  • التنظيف – إعادة ضبط الحالة بين فترات التشغيل الاختبارية

يمكنك تكوين كل عقدة مختلفة:

  • أنواع المتصفحات وإصداراتها – Chrome وFirefox وSafari وما إلى ذلك.
  • أنظمة التشغيل – ويندوز، لينكس، ماك وما إلى ذلك.
  • دقة الشاشة - 720 بكسل، 1080 بكسل وما إلى ذلك.

يتيح لك ذلك إنشاء مجموعة متنوعة للغاية من بيئات الاختبار.

نصوص الاختبار

تحتوي البرامج النصية للاختبار على تعليمات خطوة بخطوة لتنفيذ حالات اختبار محددة، مكتوبة باستخدام Selenium WebDriver API.

يتفاعلون مع المركز من أجل:

  • طلب جلسات اختبار لتكوين المتصفح/نظام التشغيل المطلوب
  • تنفيذ خطوات الاختبار على العقدة للجلسة المخصصة
  • الإبلاغ عن نتائج الاختبار مرة أخرى إلى المركز

يمكنك كتابة نصوص اختبارية بلغات مثل Java وPython وC# وRuby وما إلى ذلك.

إعداد شبكة السيلينيوم

دعنا نستعرض الخطوات الأساسية التي يتضمنها إعداد شبكة السيلينيوم:

الشروط المسبقة

  • Java JDK 8+ مثبت على الأجهزة
  • تم تنزيل ملف JAR لخادم السيلينيوم المستقل
  • تم تكوين برامج تشغيل الويب لكل متصفح

إطلاق المحور

قم بتشغيل هذا الأمر لتشغيل مركز شبكة السيلينيوم:


java -jar selenium-server-.jar hub 

سيؤدي هذا إلى بدء تشغيل المحور على المنفذ 4444 بشكل افتراضي.

تسجيل العقد

على كل جهاز تريده كعقدة، قم بتشغيل:

  
java -jar selenium-server-.jar node

سيؤدي هذا إلى تسجيل الجهاز بالتكوينات الافتراضية.

يمكنك تحديد إمكانيات المتصفح للعقدة مثل:


java -jar selenium-server-.jar node --browser browserName=chrome,version=109

قم بتشغيل هذا الأمر على كافة الأجهزة التي تريد تكوينها كعقد السيلينيوم.

تكوين البرامج النصية للاختبار

قم بتحديث البرامج النصية للاختبار للاتصال بالمركز من خلال توفير عنوان URL الخاص به:


WebDriver driver = new RemoteWebDriver(new URL("http://<hub_ip>:4444/"), options); 

سيقوم المركز بتوزيع الاختبارات على العقد تلقائيًا.

زيادة

يمكنك إرفاق المزيد من العقد عن طريق تكرار الخطوة 2. سيقوم المحور بموازنة التحميل عبر جميع العقد المتاحة.

تنفيذ الاختبارات على شبكة السيلينيوم

دعونا نرى كيف يمكننا إجراء اختبارات السيلينيوم على الشبكة باستخدام مثال بايثون:

from selenium import webdriver

grid_hub = "http://1.2.3.4:4444/wd/hub"

# Browser options
chrome_options = webdriver.ChromeOptions() 
firefox_options = webdriver.FirefoxOptions()

# Test for Chrome
driver = webdriver.Remote(command_executor=grid_hub, options=chrome_options)
driver.get("http://www.google.com")
print("Chrome title is: " + driver.title)
driver.quit() 

# Test for Firefox
driver = webdriver.Remote(command_executor=grid_hub, options=firefox_options) 
driver.get("http://www.google.com")
print("Firefox title is: " + driver.title)
driver.quit()

يوضح هذا البرنامج النصي تشغيل نفس الاختبار بالتوازي على كل من Chrome وFirefox باستخدام شبكة السيلينيوم.

ويبرز الرئيسية

  • يتصل البرنامج النصي للاختبار بالمركز باستخدام RemoteWebDriver
  • يتم تكوين الخيارات الخاصة بالمتصفح بشكل منفصل
  • يقوم المركز تلقائيًا بتوزيع الاختبارات على العقد المناسبة
  • يتطلب التوسع فقط إرفاق المزيد من العقد

من خلال التعامل مع توزيع الاختبار، تمكنك شبكة السيلينيوم من التركيز على كتابة نصوص اختبار رائعة بدلاً من إدارة البنية التحتية.

أفضل الممارسات

فيما يلي بعض النصائح لتحسين إعداد شبكة السيلينيوم لديك:

أتمتة إدارة العقدة

استخدم أدوات مثل Docker وKubernetes لأتمتة العقد الدوارة بناءً على الطلب. وهذا يحسن قابلية التوسع.

حاويات العقد

تساعد منصات الحاويات مثل Docker في إنشاء بيئات عقدة متطابقة وخفيفة الوزن باستمرار.

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

يتم تشغيل اختبار الجدولة لفترات خارج أوقات الذروة لتوزيع الحمل وتحقيق أقصى قدر من الاستفادة من الموارد.

تنفيذ عمليات إعادة المحاولة

قم بتكوين الاختبارات الفاشلة لإعادة المحاولة تلقائيًا على عقدة أخرى لضمان الموثوقية.

إجراء اختبار الحمل

قم باختبار نشر شبكة السيلينيوم الخاصة بك لقياس السعة القصوى ومنع الاختناقات.

مراقبة الاستخدام

تتبع استخدام العقدة بمرور الوقت للتخطيط لتوسيع العقدة وتحسين تسجيل المحور.

الوجبات السريعة الرئيسية

في الختام، إليك الأشياء الأساسية التي يجب معرفتها حول شبكة السيلينيوم:

  • فهو يتيح تنفيذ اختبار متوازي سريع عن طريق توزيع الاختبارات عبر عقد متعددة.

  • يدير المحور تخصيص الاختبار بينما تقوم العقد بتنفيذ الاختبار الفعلي.

  • تجعل شبكة السيلينيوم أتمتة الاختبار واسعة النطاق سريعة وفعالة للغاية.

  • إنه يبسط الاختبار عبر المتصفح واختبار التكامل من خلال عمليات التشغيل المتوازية.

  • يتطلب إعداده الحد الأدنى من الجهد – ما عليك سوى تشغيل المحور وإرفاق العقد.

  • يمكنك زيادة إمكانية الاختبار بسهولة عن طريق إضافة المزيد من العقد عند الطلب.

  • يمكن لأدوات الحاويات والتنسيق أن تعزز الإدارة والاستخدام.

لذا، إذا كنت تتعامل مع أتمتة اختبار بطيئة ومعقدة أو اختناقات CI، فإن شبكة السيلينيوم هي الحل. تُحدث بنيتها الموزعة ثورة في تنفيذ الاختبار على نطاق واسع.

جربها وأخبرني إذا كان لديك أي أسئلة أخرى!

الانضمام إلى محادثة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *