نصيحة مهندس الاختبار رقم 1: إرساء شبكة السيلينيوم الخاصة بك

مرحبا مجددا. لقد قمنا بترجمة ملاحظة مفيدة لك قبل بدء دورة Java QA Engineer .










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



من المعروف أن شبكة السيلينيوم يصعب إعدادها ، وغير مستقرة ، ويصعب نشرها و / أو التحكم في الإصدار في خط أنابيب 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 الخاص بك . هذا يضمن الاسترداد السريع أو استبدال عمال الرصيف في حالة حدوث عطل.







اقرأ أكثر:








All Articles