Selenium التكامل مع Maven و Jenkins
⚡ ملخص ذكي
مخضرم Jenkins Selenium يُنشئ التكامل مسار اختبار مستمر مؤتمت حيث يدير Maven تبعيات المشروع ودورة حياته. 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 كما هو موضح في لقطة الشاشة التالية:
الخطوة 3) انقر على الزر لتالي اضغط على الزر وأكمل عملية التثبيت.
ضبط Eclipse مع مافن
بعد تثبيت المكون الإضافي m2e، نحتاج الآن إلى إنشاء مشروع Maven.
الخطوة 1) In Eclipse IDE، قم بإنشاء مشروع جديد عن طريق التحديد قم بتقديم | جديد | خدمات أخرى من Eclipse القائمة.
الخطوة 2) على جديد الحوار، حدد مخضرم | مشروع مافن وانقر فوق التالي.
الخطوة 3) على مشروع مافن الجديد تحديد مربع الحوار إنشاء مشروع بسيط وانقر فوق التالي.
الخطوة 4) أدخل اختبار Webdriver في معرف مجموعة: و معرف القطعة الأثريةثم انقر فوق "إنهاء".
الخطوة 5) Eclipse سيصنع اختبار برنامج تشغيل الويب بالهيكل التالي:
الخطوة 6) انقر بزر الماوس الأيمن على مكتبة نظام JRE وحدد عقارات الخيار من القائمة.
على خصائص مكتبة نظام JRE مربع الحوار، تأكد مساحة العمل الافتراضية JRE يتم تحديده ثم انقر فوق "موافق".
الخطوة 7) اختر pom.xml من مستكشف المشروع.
سيتم فتح ملف pom.xml في قسم المحرر.
الخطوة 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" في حقل "الفئة". الاسم: مربع النص وانقر على نهاية الزر كما هو موضح في لقطة الشاشة التالية:
الخطوة 10) Eclipse سيتم إنشاء فئة NewTest كما هو موضح في لقطة الشاشة التالية:
الخطوة 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 كما هو موضح في لقطة الشاشة التالية:
قم بتحديث المشروع وتأكد من ظهور الملف في الشجرة. مستكشف الحزمة (انقر بزر الماوس الأيمن على المشروع - تحديث).
الخطوة 13) الآن عليك تشغيل الاختبار من خلال هذا اختبار.xml.
لذا ، اذهب إلى تشغيل التكوينات وإنشاء إطلاق جديد TestNGحدد المشروع، ثم اضبط الحقل التالي as اختبار.xmlثم انقر فوق "تشغيل".
تأكد من إتمام عملية البناء بنجاح.
الخطوة 14) بالإضافة إلى ذلك، نحتاج إلى إضافة
- maven-compiler-plugin
- البرنامج المساعد maven-surefire-plugin
- اختبار.xml
إلى ملف pom.xml.
تُستخدم إضافة maven-surefire-plugin لتهيئة الاختبارات وتنفيذها. هنا، تُستخدم هذه الإضافة لتهيئة ملف testing.xml الخاص بـ TestNG اختبار وإنشاء تقارير الاختبار.
تُستخدم إضافة maven-compiler-plugin للمساعدة في تجميع الكود واستخدام إصدار محدد من JDK للتجميع. أضف جميع التبعيات في مقتطف الكود التالي إلى ملف pom.xml في العقدة:
الخطوة 15) لتشغيل الاختبارات في دورة حياة Maven، انقر بزر الماوس الأيمن على مشروع WebdriverTest وحدد اهرب مثل | اختبار مافنسيقوم Maven بتنفيذ الاختبار من المشروع.
تأكد من إتمام عملية البناء بنجاح.
كيفية الدمج Jenkins مع Selenium ويب درايفر
فيما يلي خطوات التثبيت Jenkins قم بتهيئته لتشغيل Maven باستخدام LTS TestNG Selenium.
التركيب
الخطوة 1) انتقل إلى البرنامج المساعد في التأليف https://www.jenkins.io/download/ وقم بتنزيل الملف الصحيح Jenkins حزمة LTS لنظام التشغيل الخاص بك. قم بتثبيتها. Jenkins.
الخطوة 2) بفك Jenkins إلى مجلد محدد. شغّل ملف exe كما هو موضح في لقطة الشاشة التالية:
الخطوة 3) في خانة رمز الخصم، أدخل TABBYDAY. Jenkins اقامة نافذة ، انقر على لتالي .
الخطوة 4) انقر على الزر تثبيت زر في النهاية.
الخطوة 5) بعد اكتمال التثبيت، انتقل إلى Jenkins لوحة التحكم (http://localhost:8080 افتراضيًا) في نافذة المتصفح.
الخطوة 6) انقر على الزر جديدنا رابط لإنشاء وظيفة CI.
الخطوة 7) حدد زر الاختيار الخاص بمشروع Maven كما هو موضح في لقطة الشاشة التالية:
باستخدام البناء أ مشروع مافن اختيار، Jenkins يدعم بناء واختبار مشاريع Maven.
الخطوة 8) انقر على زر "موافق". سيتم إنشاء مهمة جديدة باسم "WebdriverTest" في Jenkins لوحة القيادة.
الخطوة 9) انتقل إلى البرنامج المساعد في التأليف إدارة Jenkins => تكوين النظام كما هو موضح في الصورة التالية.
انقر فوق تثبيتات JDK وقم بتكوين JDK كما هو موضح في لقطة الشاشة التالية:
الخطوة 10) انتقل إلى نبنيها قسم من الوظيفة الجديدة.
- في خانة رمز الخصم، أدخل TABBYDAY. بوم الجذر أدخل المسار الكامل لملف pom.xml في مربع النص
- في قسم الأهداف والخيارات، أدخل "اختبار نظيف".
الخطوة 11) انقر على الزر تطبيق .
الخطوة 12) في صفحة مشروع WebdriverTest، انقر فوق بناء الآن الرابط.
سيقوم Maven ببناء المشروع. سيكون بعد ذلك TestNG تنفيذ حالات الاختبار.
الخطوة 13) بمجرد اكتمال عملية البناء، في Jenkins انقر على لوحة التحكم اختبار برنامج تشغيل الويب مشروع.
الخطوة 14) تعرض صفحة مشروع WebdriverTest سجل البناء وروابط للنتائج كما هو موضح في لقطة الشاشة التالية:
الخطوة 15) انقر على رابط "أحدث نتيجة اختبار" لعرض نتائج الاختبار كما هو موضح في لقطة الشاشة التالية:
الخطوة 16) اختر إصدارًا محددًا، وسترى الحالة الحالية بالنقر على "إخراج وحدة التحكم".
جدولة Jenkins للتنفيذ التلقائي
جدولة عمليات البناء (Selenium الاختبارات) هي إحدى السمات المهمة لـ Jenkins، حيث يقوم تلقائيًا بتشغيل عملية البناء بناءً على معايير محددة. Jenkins يوفر طرقًا متعددة لتشغيل عملية البناء ضمن إعدادات تشغيل البناء.
فمثلا:
أدخل 0 23 * * * في مربع النص "الجدول الزمني" كما هو موضح في لقطة الشاشة التالية. سيؤدي هذا إلى تشغيل عملية البناء كل يوم في الساعة 11 مساءً
باستخدام Jenkins بدون مافن
لتشغيل نظام نقي TestNG النصي في Jenkinsأدخل ما يلي في قسم البناء:
D:>java -cp “Pathtolibfolder\lib\*;Pathtobinfolder\bin” org.testng.TestNG اختبار.xml
- انقر على زر حفظ.
- ملاحظة: يجب إضافة المسار الفعلي لمجلدات lib و bin في الأمر أعلاه.
- بعد حفظ الأمر، Jenkins سيتم بناء المشروع في الوقت المحدد مسبقًا، وسيتم تشغيل هذا الأمر باستخدام TestNG.
- سيتم تخزين النتيجة في ملف تقرير HTML مخصص يمكن إرساله عبر البريد الإلكتروني باستخدام Jenkins ترتيب.
- ستكون مخرجات الكود كالتالي:
فوائد الاستخدام Jenkins
- اكتشاف المشكلات مبكراً – يمكن اكتشاف الأخطاء في المرحلة المبكرة من تطوير البرمجيات.
- التكامل التلقائي – لا يتطلب الأمر أي جهد منفصل لدمج جميع التغييرات.
- المثبت - نظام قابل للنشر متاح في أي مرحلة من مراحل التطوير.
- يتم الاحتفاظ بسجلات البناء السابقة.
- الدعم والإضافات – أحد أسباب Jenkinsتكمن شعبية البرنامج في توفر دعم مجتمعي واسع. كما تتوفر العديد من الإضافات الجاهزة التي تساعدك على توسيع وظائفه.




































