Selenium التكامل مع Maven و Jenkins

⚡ ملخص ذكي

مخضرم Jenkins Selenium يُنشئ التكامل مسار اختبار مستمر مؤتمت حيث يدير Maven تبعيات المشروع ودورة حياته. Jenkins جداول عمليات البناء وتفعيلها، و Selenium يقوم بتنفيذ اختبارات المتصفح، مما ينتج عنه أتمتة ويب شاملة قابلة للتكرار وموثوقة وقابلة للتوسع.

  • 📦 دور الخبير: يدير Maven 3.x التبعيات ودورة حياة البناء والمكونات الإضافية من خلال ملف pom.xml، مما يلغي الحاجة إلى التعامل اليدوي مع ملفات JAR. Selenium المشاريع.
  • 🔁 Jenkins وظيفة: Jenkins جداول LTS Selenium تقوم هذه المجموعات بمراقبة تغييرات إدارة التحكم في البرمجيات، وتشغيل عمليات التحقق من الانحدار التلقائية في كل عملية إيداع أو مهمة cron ليلية.
  • 🚀 الطاقة عبر خطوط الأنابيب: دمج مافن، Jenkins, Seleniumو TestNG يشكل حلقة CI/CD كاملة تكتشف العيوب في غضون دقائق من تغيير الكود.
  • ✅ التقرير: تقارير Surefire بالإضافة إلى Jenkins تاريخ البناء يعطي tracنتائج اختبار قابلة للمشاركة مع مخرجات وحدة التحكم ولوحات معلومات HTML.
  • 🧪 تعزيز الذكاء الاصطناعي: تُعطي إضافات الذكاء الاصطناعي الحديثة الأولوية للاختبارات المتأثرة، وتتنبأ بالحالات غير المستقرة، وتُقلّص حجم البيانات. Jenkins دورات التغذية الراجعة في الداخل Selenium خطوط الأنابيب.

مافن و Jenkins التكامل مع Selenium

ما هي تفاصيل Jenkins in Selenium?

Jenkins هي الأداة الرائدة مفتوحة المصدر للتكامل المستمر، والتي طُوّرت في الأصل بواسطة مختبر هدسون. وهي متعددة المنصات وتعمل على Windows، لينكس ، macOSو Solaris البيئات. Jenkins مكتوب باللغة Java ويتم توزيعها الآن على النحو التالي: Jenkins نظام دعم طويل الأمد (LTS) للاستخدام المستقر في بيئات الإنتاج. ويتمثل استخدامه الرئيسي في مراقبة أي مهمة، سواء كانت عملية سحب من نظام إدارة تكوين البرمجيات (SCM)، أو جدولة مهمة مجدولة (cron)، أو أي حالة تطبيق. Jenkins يقوم بتنفيذ الإجراءات المُعدة مسبقًا عند حدوث خطوة معينة في المهام.

ميزات مهمة Jenkins

  • دعم التغيير: Jenkins يقوم بإنشاء قائمة بجميع التغييرات التي تم إجراؤها في مستودعات مثل Git أو SVN.
  • روابط دائمة: Jenkins يوفر روابط مباشرة لأحدث إصدار أو آخر إصدار فاشل، مما يبسط التواصل بين أعضاء الفريق.
  • تركيب: Jenkins يسهل تثبيته باستخدام برنامج تثبيت أصلي، أو ملف WAR يتم نشره على خادم التطبيقات، أو صورة Docker.
  • تكامل البريد الإلكتروني: Jenkins يمكن ضبطه لإرسال محتوى وحالة كل عملية بناء عبر البريد الإلكتروني.
  • التكوين السهل: تهيئة المهام المختلفة على Jenkins الأمر بسيط من خلال لوحة التحكم على الويب.
  • TestNG اختبار: Jenkins يمكن تهيئته لتشغيل إصدار اختبار الأتمتة على TestNG بعد كل عملية إيداع في المستودع.
  • أجهزة افتراضية متعددة: Jenkins يمكن توزيع عمليات البناء على عدة أجهزة وكيلة.
  • مشروع البناء: Jenkins تتضمن الوثائق تفاصيل ملفات JAR، وإصدارات ملفات JAR، والخريطة.ping من أرقام الإصدارات إلى القطع الأثرية.
  • الإضافات: 3rd يمكن إضافة إضافات الحفلات في Jenkins لتوسيع الميزات والوظائف الإضافية.

لماذا Jenkins و Selenium?

  • الركض Selenium الاختبارات في Jenkins يتيح لك تنفيذ اختباراتك في كل مرة يتغير فيها البرنامج ونشر البرنامج في بيئة جديدة عندما تجتاز الاختبارات.
  • Jenkins يمكننا تحديد موعدك Selenium الاختبارات التي يتم تشغيلها في وقت محدد.
  • يمكنك حفظ سجل التنفيذ وتقارير الاختبار لـ tracالقدرة.
  • Jenkins يدعم Maven للبناء و الاختبار مشروع في التكامل المستمر.

ما هو مافن في Selenium?

Maven أداة قوية لإدارة المشاريع وعمليات البناء، تعتمد على مفهوم نموذج كائن المشروع (POM) الذي يتضمن معلومات المشروع وبيانات التكوين الخاصة بـ Maven، مثل دليل البناء، ودليل المصدر، والتبعيات، ودليل مصدر الاختبار، والأهداف، والمكونات الإضافية، وغير ذلك. يُعد Maven 3.x الإصدار المستقر الحالي، ويُستخدم على نطاق واسع في Selenium أطر الاختبار.

لماذا مافن و Jenkins

Selenium يُعد WebDriver أداةً رائعةً لأتمتة المتصفح. ولكن عند استخدامه للاختبار وبناء إطار عمل للاختبار، قد يبدو غير كافٍ. دمج Maven مع Selenium يوفر الفوائد التالية.
Apache Maven يوفر الدعم لإدارة دورة الحياة الكاملة لمشروع الاختبار.

  • يتم استخدام Maven لتحديد هيكل المشروع والتبعيات وإدارة البناء والاختبار.
  • باستخدام ملف pom.xml (Maven) يمكنك تكوين التبعيات اللازمة لبناء واختبار وتشغيل التعليمات البرمجية.
  • يقوم Maven تلقائيًا بتنزيل الملفات الضرورية من المستودع المركزي أثناء بناء المشروع.

كيفية تثبيت Maven واستخدامه مع TestNG Selenium

إليك خطوات تثبيت Maven واستخدامه مع TestNG Selenium.

في هذا البرنامج التعليمي، سوف نستخدم Eclipse (Junoبيئة تطوير متكاملة لـ Java المطورون لإعداد Selenium مشروع WebDriver. بالإضافة إلى ذلك، نحتاج إلى إضافة ملحق m2eclipse إلى Eclipse لتسهيل عملية البناء وإنشاء ملف pom.xml.
لنضف إضافة m2eclipse إلى Eclipse بالخطوات التالية:

الخطوة 1) In Eclipse IDE، حدد المساعدة | تثبيت برنامج جديد من Eclipse القائمة الرئيسية.

الخطوة 2) في مربع حوار التثبيت، أدخل URL https://www.eclipse.org/m2e/. حدد العمل مع والملحق m2e كما هو موضح في لقطة الشاشة التالية:

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 3) انقر على الزر لتالي اضغط على الزر وأكمل عملية التثبيت.

ضبط Eclipse مع مافن

بعد تثبيت المكون الإضافي m2e، نحتاج الآن إلى إنشاء مشروع Maven.

الخطوة 1) In Eclipse IDE، قم بإنشاء مشروع جديد عن طريق التحديد قم بتقديم | جديد | خدمات أخرى من Eclipse القائمة.

الخطوة 2) على جديد الحوار، حدد مخضرم | مشروع مافن وانقر فوق التالي.

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 3) على مشروع مافن الجديد تحديد مربع الحوار إنشاء مشروع بسيط وانقر فوق التالي.

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 4) أدخل اختبار Webdriver في معرف مجموعة: و معرف القطعة الأثريةثم انقر فوق "إنهاء".

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 5) Eclipse سيصنع اختبار برنامج تشغيل الويب بالهيكل التالي:

قم بتثبيت Maven واستخدمه مع TestNG Seleniuml

الخطوة 6) انقر بزر الماوس الأيمن على مكتبة نظام JRE وحدد عقارات الخيار من القائمة.

قم بتثبيت Maven واستخدمه مع TestNG Selenium

على خصائص مكتبة نظام JRE مربع الحوار، تأكد مساحة العمل الافتراضية JRE يتم تحديده ثم انقر فوق "موافق".

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 7) اختر pom.xml من مستكشف المشروع.

قم بتثبيت Maven واستخدمه مع TestNG Selenium

سيتم فتح ملف pom.xml في قسم المحرر.

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 8) إضافة Seleniumمافن, TestNGو JUnit تبعيات pom.xml في ملف العقدة:

	<dependencies>			
        <dependency>				
             <groupId>junit</groupId>								
             <artifactId>junit</artifactId>								
             <version>3.8.1</version>								
             <scope>test</scope>								
        </dependency>				
        <dependency>				
            <groupId>org.seleniumhq.selenium</groupId>								
            <artifactId>selenium-java</artifactId>								
            <version>2.45.0</version>								
		</dependency>				
        <dependency>				
            <groupId>org.testng</groupId>								
            <artifactId>testng</artifactId>								
            <version>6.8.8</version>								
            <scope>test</scope>							  			
       </dependency>				
</dependencies>

الخطوة 9) قم بإنشاء ملف TestNG أدخل اسم الحزمة "example" و"NewTest" في حقل "الفئة". الاسم: مربع النص وانقر على نهاية الزر كما هو موضح في لقطة الشاشة التالية:

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 10) Eclipse سيتم إنشاء فئة NewTest كما هو موضح في لقطة الشاشة التالية:

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 11) أضف الكود التالي إلى NewTest الفئة. سيتحقق هذا الكود من عنوان Guru99 Selenium .

package example;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		
import org.testng.Assert;		
import org.testng.annotations.Test;	
import org.testng.annotations.BeforeTest;	
import org.testng.annotations.AfterTest;		
public class NewTest {		
	    private WebDriver driver;		
		@Test				
		public void testEasy() {	
			driver.get("https://demo.guru99.com/test/guru99home/");  
			String title = driver.getTitle();				 
			Assert.assertTrue(title.contains("Demo Guru99 Page")); 		
		}	
		@BeforeTest
		public void beforeTest() {	
		    driver = new FirefoxDriver();  
		}		
		@AfterTest
		public void afterTest() {
			driver.quit();			
		}		
}	

الخطوة 12) انقر بزر الماوس الأيمن على مشروع WebdriverTest وحدد TestNG | حول الى TestNG.
Eclipse سيتم إنشاء ملف testng.xml الذي ينص على أنك تحتاج إلى تشغيل اختبار واحد فقط بالاسم NewTest كما هو موضح في لقطة الشاشة التالية:

قم بتثبيت Maven واستخدمه مع TestNG Selenium

قم بتحديث المشروع وتأكد من ظهور الملف في الشجرة. مستكشف الحزمة (انقر بزر الماوس الأيمن على المشروع - تحديث).

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 13) الآن عليك تشغيل الاختبار من خلال هذا اختبار.xml.

لذا ، اذهب إلى تشغيل التكوينات وإنشاء إطلاق جديد TestNGحدد المشروع، ثم اضبط الحقل التالي as اختبار.xmlثم انقر فوق "تشغيل".

قم بتثبيت Maven واستخدمه مع TestNG Selenium

تأكد من إتمام عملية البناء بنجاح.

الخطوة 14) بالإضافة إلى ذلك، نحتاج إلى إضافة

  1. maven-compiler-plugin
  2. البرنامج المساعد maven-surefire-plugin
  3. اختبار.xml

إلى ملف pom.xml.

تُستخدم إضافة maven-surefire-plugin لتهيئة الاختبارات وتنفيذها. هنا، تُستخدم هذه الإضافة لتهيئة ملف testing.xml الخاص بـ TestNG اختبار وإنشاء تقارير الاختبار.

تُستخدم إضافة maven-compiler-plugin للمساعدة في تجميع الكود واستخدام إصدار محدد من JDK للتجميع. أضف جميع التبعيات في مقتطف الكود التالي إلى ملف pom.xml في العقدة:

قم بتثبيت Maven واستخدمه مع TestNG Selenium

الخطوة 15) لتشغيل الاختبارات في دورة حياة Maven، انقر بزر الماوس الأيمن على مشروع WebdriverTest وحدد اهرب مثل | اختبار مافنسيقوم Maven بتنفيذ الاختبار من المشروع.

قم بتثبيت Maven واستخدمه مع TestNG Selenium

تأكد من إتمام عملية البناء بنجاح.

كيفية الدمج Jenkins مع Selenium ويب درايفر

فيما يلي خطوات التثبيت Jenkins قم بتهيئته لتشغيل Maven باستخدام LTS TestNG Selenium.

التركيب

الخطوة 1) انتقل إلى البرنامج المساعد في التأليف https://www.jenkins.io/download/ وقم بتنزيل الملف الصحيح Jenkins حزمة LTS لنظام التشغيل الخاص بك. قم بتثبيتها. Jenkins.

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 2) بفك Jenkins إلى مجلد محدد. شغّل ملف exe كما هو موضح في لقطة الشاشة التالية:

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 3) في خانة رمز الخصم، أدخل TABBYDAY. Jenkins اقامة نافذة ، انقر على لتالي .

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 4) انقر على الزر تثبيت زر في النهاية.

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 5) بعد اكتمال التثبيت، انتقل إلى Jenkins لوحة التحكم (http://localhost:8080 افتراضيًا) في نافذة المتصفح.

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 6) انقر على الزر جديدنا رابط لإنشاء وظيفة CI.

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 7) حدد زر الاختيار الخاص بمشروع Maven كما هو موضح في لقطة الشاشة التالية:

الاندماج في Jenkins مع Selenium ويب درايفر

باستخدام البناء أ مشروع مافن اختيار، Jenkins يدعم بناء واختبار مشاريع Maven.

الخطوة 8) انقر على زر "موافق". سيتم إنشاء مهمة جديدة باسم "WebdriverTest" في Jenkins لوحة القيادة.

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 9) انتقل إلى البرنامج المساعد في التأليف إدارة Jenkins => تكوين النظام كما هو موضح في الصورة التالية.

الاندماج في Jenkins مع Selenium ويب درايفر

انقر فوق تثبيتات JDK وقم بتكوين JDK كما هو موضح في لقطة الشاشة التالية:

الاندماج في Jenkins مع Selenium مساحات تخزينية

الخطوة 10) انتقل إلى نبنيها قسم من الوظيفة الجديدة.

  • في خانة رمز الخصم، أدخل TABBYDAY. بوم الجذر أدخل المسار الكامل لملف pom.xml في مربع النص
  • في قسم الأهداف والخيارات، أدخل "اختبار نظيف".

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 11) انقر على الزر تطبيق .

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 12) في صفحة مشروع WebdriverTest، انقر فوق بناء الآن الرابط.

الاندماج في Jenkins مع Selenium ويب درايفر

سيقوم Maven ببناء المشروع. سيكون بعد ذلك TestNG تنفيذ حالات الاختبار.

الخطوة 13) بمجرد اكتمال عملية البناء، في Jenkins انقر على لوحة التحكم اختبار برنامج تشغيل الويب مشروع.

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 14) تعرض صفحة مشروع WebdriverTest سجل البناء وروابط للنتائج كما هو موضح في لقطة الشاشة التالية:

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 15) انقر على رابط "أحدث نتيجة اختبار" لعرض نتائج الاختبار كما هو موضح في لقطة الشاشة التالية:

الاندماج في Jenkins مع Selenium ويب درايفر

الخطوة 16) اختر إصدارًا محددًا، وسترى الحالة الحالية بالنقر على "إخراج وحدة التحكم".

الاندماج في Jenkins مع Selenium ويب درايفر

جدولة Jenkins للتنفيذ التلقائي

جدولة عمليات البناء (Selenium الاختبارات) هي إحدى السمات المهمة لـ Jenkins، حيث يقوم تلقائيًا بتشغيل عملية البناء بناءً على معايير محددة. Jenkins يوفر طرقًا متعددة لتشغيل عملية البناء ضمن إعدادات تشغيل البناء.

فمثلا:
أدخل 0 23 * * * في مربع النص "الجدول الزمني" كما هو موضح في لقطة الشاشة التالية. سيؤدي هذا إلى تشغيل عملية البناء كل يوم في الساعة 11 مساءً

Jenkins للتنفيذ التلقائي

باستخدام Jenkins بدون مافن

لتشغيل نظام نقي TestNG النصي في Jenkinsأدخل ما يلي في قسم البناء:

D:>java -cp “Pathtolibfolder\lib\*;Pathtobinfolder\bin” org.testng.TestNG اختبار.xml

Jenkins للتنفيذ التلقائي

  • انقر على زر حفظ.
  • ملاحظة: يجب إضافة المسار الفعلي لمجلدات lib و bin في الأمر أعلاه.
  • بعد حفظ الأمر، Jenkins سيتم بناء المشروع في الوقت المحدد مسبقًا، وسيتم تشغيل هذا الأمر باستخدام TestNG.
  • سيتم تخزين النتيجة في ملف تقرير HTML مخصص يمكن إرساله عبر البريد الإلكتروني باستخدام Jenkins ترتيب.
  • ستكون مخرجات الكود كالتالي:

Jenkins للتنفيذ التلقائي

فوائد الاستخدام Jenkins

  1. اكتشاف المشكلات مبكراً – يمكن اكتشاف الأخطاء في المرحلة المبكرة من تطوير البرمجيات.
  2. التكامل التلقائي – لا يتطلب الأمر أي جهد منفصل لدمج جميع التغييرات.
  3. المثبت - نظام قابل للنشر متاح في أي مرحلة من مراحل التطوير.
  4. يتم الاحتفاظ بسجلات البناء السابقة.
  5. الدعم والإضافات – أحد أسباب Jenkinsتكمن شعبية البرنامج في توفر دعم مجتمعي واسع. كما تتوفر العديد من الإضافات الجاهزة التي تساعدك على توسيع وظائفه.

الأسئلة الشائعة

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

استخدم Maven 3.x لإدارة التبعيات وعمليات البناء، و Jenkins إصدارات الدعم طويل الأمد (LTS) للتكامل المستمر المستقر. توفر هذه الإصدارات دعمًا طويل الأمد، وتحديثات أمنية، وتوافقًا واسعًا مع الإضافات. Selenium WebDriver، TestNG، ومكونات Surefire الإضافية لإعداد التقارير.

نعم. Jenkins يستخدم قسم "مشغلات البناء" صيغة مشابهة لصيغة cron لجدولة العمليات. Selenium الأجنحة. على سبيل المثال، يقوم 0 23 * * * بتشغيل الجناح كل ليلة في تمام الساعة 11 مساءً Jenkins يمكن أيضًا تشغيل عمليات البناء بناءً على استطلاعات نظام إدارة الإصدارات أو أحداث الويب هوك.

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

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

تلخيص هذه التدوينة بـ: