في كل عام ، يبحث مهندسو الأتمتة من جميع أنحاء العالم عن أحدث الأدوات والتقنيات لجعل بيئة أتمتة الاختبار الخاصة بهم أكثر استقرارًا وأسرع وأسهل في الاستخدام والصيانة. هذا أمر حيوي لضمان تنفيذ أطر عملهم على نطاق واسع في جميع الأوقات في شركتهم. وفي كلتا الحالتين ، فإن الأطر القديمة المتضخمة تصبح عتيقة الطراز بسرعة.
من المعروف أن شبكة السيلينيوم يصعب إعدادها ، وغير مستقرة ، ويصعب نشرها و / أو التحكم في الإصدار في خط أنابيب CI. طريقة أسهل وأكثر استقرارًا وملاءمة هي استخدام صور Selenium Docker التي تم إنشاؤها مسبقًا.
ملاحظة : العيب الوحيد لهذه الطريقة هو أنها غير مدعومة من قبل IE (Internet Explorer) لأن نظام التشغيل Windows لا يمكن وضعه في حاوية حاليًا.
التحضير للعمل
للبدء ، تحتاج أولاً إلى تثبيت Docker و Docker Compose على جهازك. إذا كنت تستخدم نظام التشغيل Windows 10 أو Mac ، فسيتم تثبيت كلاهما باستخدام Docker Desktop .
تشغيل الشبكة الخاصة بك
يحتوي مستودع Selenium Docker Hub الرسمي على صور Docker سابقة البناء لعقد Selenium Hub و Firefox و Chrome.
أسهل طريقة لاستخدامها في شبكة السيلينيوم المحلية هي إنشاء ملف Docker Compose في الدليل الجذر لمشروعك. اسم الملف ببساطة
docker-compose.yml.
لقد قمت بتضمين مثال أدناه يقوم بإنشاء الشبكة التالية:
- محور سيلينيوم واحد
- عقدة كروم واحدة
- عقدة Firefox واحدة
#docker-compose.yml
version: "3"
services:
selenium-hub:
image: selenium/hub:3.141.59-neon
container_name: selenium-hub
ports:
- "4444:4444"
chrome:
image: selenium/node-chrome:3.141.59-neon
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
firefox:
image: selenium/node-firefox:3.141.59-neon
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
يصف ملف Docker Compose كيفية إعداد شبكتك. لمزيد من المعلومات حول إنشاء ملفات Docker Compose ، راجع الوثائق الرسمية .
لبدء شبكتك ، ما عليك سوى استخدام أي محطة طرفية (
PowerShellأو cmdعلى نظام Windows) ، حيث تقوم بتشغيل الأمر التالي من الدليل الجذر لمشروعك:
docker-compose up
اتصال الشبكة
يمكنك الاتصال بشبكة السيلينيوم الخاصة بك بنفس الطريقة المعتادة ، نظرًا لأن Hub يستمع إلى المنفذ 4444 من جهازك المحلي. إليك مثال حيث قمنا بتكوين برنامج التشغيل الخاص بنا لاستخدام عقدة Chrome الخاصة بنا.
// Driver.java
protected static RemoteWebDriver browser;
DesiredCapabilities cap = new DesiredCapabilities();
ChromeOptions chromeOptions = new ChromeOptions();
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
cap.setBrowserName("chrome");
driver = new RemoteWebDriver(cap);
ثم يمكنك استخدام مكتبة TestNG لإجراء اختبارات على عدة عقد بالتوازي كالمعتاد.
تجدر الإشارة إلى أنه يمكن تشغيل متصفحات متعددة على كل عقدة. لا يُنصح بذلك ، ومع ذلك ، فإن استخدام متصفح واحد لكل عقدة يعتبر أفضل ممارسة لتحقيق الأداء الأمثل.
نصائح وحيل إضافية
إذا كنت ترغب في معرفة ما يحدث في المتصفح من أجل تصحيح أخطاء اختباراتك ، فمن المفيد أن يكون
debugلديك إصدار من ملفك docker-compose.ymlيقوم بتحميل debug عُقد المتصفح . تحتوي على خادم VNC ، لذا يمكنك مشاهدة المتصفح أثناء تشغيل الاختبار.
من الممكن أيضًا تشغيل المتصفحات بدون رأس لزيادة السرعة (بالطريقة المعتادة) ، كما يوفر Selenium أيضًا
baseإصدارات للصور حتى تتمكن من إنشاء صورك الخاصة إذا كنت بحاجة إلى تثبيت برامج إضافية.
يمكنك أيضًا نشر شبكتك في Kubernetes أو Swarm لإنشاء شبكة مستقرة لخط أنابيب CI الخاص بك . هذا يضمن الاسترداد السريع أو استبدال عمال الرصيف في حالة حدوث عطل.
اقرأ أكثر:
- Selenium: 1 — 2
- Selenium: 3 — 5