ما هي تفاصيل Selenium؟ مقدمة البرنامج التعليمي

⚡ ملخص ذكي

Selenium إطار عمل اختبار آلي مجاني ومفتوح المصدر، مصمم للتحقق من صحة تطبيقات الويب عبر المتصفحات والمنصات باستخدام لغات برمجة متعددة. يُمكّن هذا الإطار من أتمتة اختبارات قوية وفعالة وقابلة للتطوير لممارسات ضمان الجودة الحديثة.

  • المبدأ الرئيسي: Selenium يسهل التحقق التلقائي من صحة تطبيقات الويب على متصفحات وأنظمة تشغيل متنوعة، ويدعم لغات مثل Java، C #، Python، وأكثر من ذلك.
  • هيكل مجموعة الأدوات: Selenium يتضمن أربعة مكونات رئيسية - IDE، والتحكم عن بعد، وWebDriver، والشبكة - كل منها يعالج احتياجات الأتمتة المميزة.
  • بيئة التطوير المتكاملة والنموذج الأوليping: Selenium IDE هو امتداد للمتصفح لإنشاء الحالات والنماذج الأولية بسرعةping، ولكنه الأنسب لسيناريوهات الاختبار البسيطة.
  • تطور التحكم عن بعد: Selenium كان RC، الذي كان الآن في وضع الصيانة، هو الإطار الأول الذي يسمح بنصوص الاختبار بالعديد من اللغات، مما أدى إلى حل قيود سياسة المتصفح.
  • تنفيذ WebDriver: يتواصل WebDriver بشكل مباشر مع المتصفحات، مما يوفر التحكم على مستوى نظام التشغيل والاستقرار الفائق للأتمتة المعقدة.
  • شبكة للتوازي: Selenium تتيح الشبكة تنفيذ الاختبارات بالتوازي عبر أجهزة ومتصفحات متعددة، مما يقلل بشكل كبير من مدة دورة الاختبار.
  • دعم عبر المتصفحات والمنصات: Selenium يدعم مجموعة واسعة من المتصفحات وأنظمة التشغيل، مما يوفر مرونة لا مثيل لها لضمان الجودة على الويب.
  • تأثير العالم الحقيقي: تستخدم الفرق Selenium لتسريع دورات الإصدار، وتقليل الاختبار اليدوي، وضمان تجربة مستخدم متسقة عبر المتصفحات، مع نتائج مثبتة في SaaS، وCI/CD، وتسليم الميزات.

ما هو السيلينيوم

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

Selenium هو إطار اختبار آلي مجاني (مفتوح المصدر) يستخدم للتحقق من صحة تطبيقات الويب عبر متصفحات ومنصات مختلفة. يمكنك استخدام لغات برمجة متعددة مثل Java، C #، Pythonالخ لخلق Selenium مخطوطات الاختبار. تم الاختبار باستخدام Selenium يُشار عادةً إلى أداة الاختبار باسم Selenium الاختبار.

رؤى الخبراء

تجنب استخدام تأخيرات السكون الثابتة في اختباراتك. استخدم بدلاً من ذلك فترات انتظار صريحة (مثل WebDriverWait) لانتظار تحميل العناصر. هذا يجعل نصوصك البرمجية أكثر موثوقية وسرعة، حيث تستجيب ديناميكيًا لظروف الصفحة الفعلية - وهي ممارسة أساسية للطلاب في كل مكان، بدءًا من Selenium".

— هيمناشو شيث، Selenium Camel

👉 سجل مجانًا للبث المباشر Selenium مشروع الاختبار

Selenium مجموعة الأدوات

Selenium البرمجيات ليست مجرد أداة واحدة، بل هي مجموعة من البرامج، كل قطعة تلبي احتياجات مختلفة Selenium احتياجات اختبار ضمان الجودة للمنظمة. هنا قائمة الأدوات

  • Selenium بيئة التطوير المتكاملة (IDE)
  • Selenium جهاز التحكم عن بعد (أرسي)
  • ويب درايفر
  • Selenium شبكة

Selenium مجموعة الأدوات

في هذه اللحظة، Selenium يتم دمج RC وWebDriver في إطار عمل واحد لتشكيله Selenium 2. Selenium 1، بالمناسبة، يشير إلى Selenium RC.

فيديو تعليمي Selenium

انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو

الذي طور Selenium?

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

المتقدمة Selenium

في المقام الأول، Selenium وكان أنشأه جيسون هوجينز في عام 2004كان مهندسًا في شركة ThoughtWorks، وكان يعمل على تطبيق ويب يتطلب اختبارات متكررة. وبعد أن أدرك أن الاختبارات اليدوية المتكررة للتطبيق أصبحت أقل فعالية، أنشأ Javaسيناريو برنامج يتحكم تلقائيًا في تصرفات المتصفح. أطلق على هذا البرنامج اسم "Java"ScriptTestRunner."

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

نفس مشكلة سياسة المنشأ

نفس سياسة الأصل تحظر Javaكود البرنامج النصي من الوصول إلى العناصر من مجال مختلف عن المكان الذي تم إطلاقه فيه. على سبيل المثال، يستخدم كود HTML في www.google.com Javaبرنامج نصي "randomScript.js". سياسة المصدر نفسها تسمح فقط لبرنامج randomScript.js بالوصول إلى صفحات ضمن google.com، مثل google.com/mail أو google.com/login أو google.com/signup. ومع ذلك، لا يمكنه الوصول إلى صفحات من مواقع مختلفة مثل yahoo.com/search أو guru99.com لأنها تنتمي إلى نطاقات مختلفة.

نفس مشكلة سياسة المنشأ

وهذا هو السبب، قبل Selenium RC، يحتاج المختبرون إلى تثبيت نسخ محلية من كليهما Selenium جوهر (أ Javaبرنامج نصي) وخادم الويب الذي يحتوي على تطبيق الويب الذي يتم اختباره، وبالتالي فإنهما ينتميان إلى نفس المجال

ولادة Selenium جهاز التحكم (Selenium أرسي)

بول هامانت

لسوء الحظ، يستخدم المختبرون Selenium كان على Core تثبيت التطبيق بأكمله قيد الاختبار وخادم الويب على أجهزة الكمبيوتر المحلية الخاصة به بسبب القيود التي يفرضها سياسة المنشأ نفسه. لذا فإن مهندس آخر من ThoughtWorks، بول هامانتقرر إنشاء خادم يعمل كوكيل HTTP "لخداع" المتصفح ليصدق ذلك Selenium يأتي Core وتطبيق الويب الذي يتم اختباره من نفس المجال. أصبح هذا النظام يعرف باسم Selenium جهاز التحكم or Selenium 1.

ولادة Selenium شبكة

باتريك لايت بودي

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

ولادة Selenium IDE

شينيا كاساتاني

شينيا كاساتاني خلقت اليابان Selenium IDEأو المعلم Firefox وإضافة كروم تُمكّن من أتمتة المتصفح من خلال ميزة التسجيل والتشغيل. وقد ابتكر هذه الفكرة لزيادة سرعة إنشاء حالات الاختبار. وقد تبرع Selenium IDE إلى Selenium مشروع في 2006.

ولادة WebDriver

سيمون ستيوارت

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

ولادة Selenium 2

In 2008، وكلها Selenium قرر الفريق دمج WebDriver و Selenium RC لتشكيل أداة أكثر قوة تسمى Selenium 2، مع WebDriver هو جوهر. حاليا، Selenium لا يزال RC قيد التطوير، ولكن في وضع الصيانة فقط. معظم Selenium وتتركز جهود المشروع الآن على Selenium 2.

فلماذا الاسم Selenium?

الاسم Selenium جاءت من نكتة قالها جيسون لفريقه ذات مرة. خلال Seleniumتطوير، آخر اختبار آلي تم تصنيع الإطار بشكل شائع بواسطة شركة تسمى Mercury تفاعلي (نعم، الشركة التي صنعت في الأصل QTP قبل أن تستحوذ عليها شركة HP). منذ ذلك الحين Selenium هو ترياق معروف ل Mercury التسمم، اقترح جيسون هذا الاسم وأخذه زملاؤه. إذن هذه هي الطريقة التي نطلق بها على هذا الإطار حتى الوقت الحاضر.

لماذا الاسم Selenium

ما هي تفاصيل Selenium IDE؟

Selenium بيئة التطوير المتكاملة (IDE) هي أبسط إطار في Selenium جناح وهو أسهل واحد للتعلم. بل هو كروم و Firefox المساعد التي يمكنك تثبيتها بسهولة قدر الإمكان مع المكونات الإضافية الأخرى. ولكن بسبب بساطته، Selenium يجب استخدام IDE فقط كـ النموذج الأوليping أداة. إذا كنت تريد إنشاء حالات اختبار أكثر تقدمًا، فستحتاج إلى استخدام أي منهما Selenium RC أو WebDriver.

Selenium IDE

ما هي تفاصيل Selenium جهاز التحكم (Selenium RC)؟

Selenium كان RC هو إطار الاختبار الرئيسي من الكل Selenium المشروع لفترة طويلة. هذا هو أول الآلي اختبار الويب أداة ذلك يسمح للمستخدمين باستخدام لغة البرمجة التي يفضلونهااعتبارًا من الإصدار 2.25.0، يمكن لـ RC دعم لغات البرمجة التالية:

Selenium جهاز التحكم (Selenium أرسي)

ما هو برنامج تشغيل الويب؟

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

اللغات المدعومة هي نفسها الموجودة في Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • بيرل
  • روبي

برنامج تشغيل الويب

ما هي تفاصيل Selenium شبكة؟

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

المميزات:

  • تمكن تشغيل الاختبارات في وقت واحد in متصفحات وبيئات متعددة.
  • يوفر الوقت بشكل كبير.
  • يستخدم المحور والعقد مفهوم. يعمل المحور كمصدر مركزي لل Selenium أوامر لكل عقدة متصلة بها.

Selenium دعم المتصفح والبيئة

بسبب اختلافاتهم المعمارية، Selenium SDI ، Selenium يدعم RC وWebDriver مجموعات مختلفة من المتصفحات وبيئات التشغيل.

  Selenium IDE ويب درايفر
دعم المتصفح موزيلا Firefox والكروم Google Chrome 12+
Firefox
إنترنت إكسبلورر 7+ والحافة
رحلات السفاري،
htmlUnit وPhantomUnit
نظام التشغيل Windows، ماك أو إس إكس، لينكس جميع أنظمة التشغيل التي يمكن تشغيل المتصفحات المذكورة أعلاه عليها.

ملاحظة: Opera السائق لم يعد يعمل

كيفية اختيار الحق Selenium أداة لتلبية احتياجاتك

أداة لماذا الاختيار؟
Selenium IDE
  • للتعرف على المفاهيم المتعلقة بالاختبار الآلي و Selenium، بما في ذلك:
  • أوامر سيلينية مثل الكتابة والفتح والنقر والانتظار والتأكيد والتحقق وما إلى ذلك.
  • محددات المواقع مثل المعرف، والاسم، وXpath، ومحدد CSS، وما إلى ذلك.
  • تنفيذ حسب الطلب Javaكود البرنامج النصي باستخدام runScript
  • تصدير حالات الاختبار بتنسيقات مختلفة.
  • لإنشاء اختبارات مع معرفة سابقة قليلة أو معدومة في البرمجة.
  • لإنشاء حالات اختبار بسيطة ومجموعات اختبار يمكنك تصديرها لاحقًا إلى RC أو WebDriver.
  • لاختبار تطبيق ويب ضد Firefox والكروم فقط.
Selenium RC
  • تصميم اختبار باستخدام لغة أكثر تعبيراً من اللغة السيلينية
  • لتشغيل الاختبار الخاص بك على متصفحات مختلفة (باستثناء HtmlUnit) على أنظمة تشغيل مختلفة.
  • لنشر اختباراتك عبر بيئات متعددة باستخدام Selenium الشبكة.
  • لاختبار التطبيق الخاص بك مقابل متصفح جديد يدعم Javaالنصي.
  • لاختبار تطبيقات الويب باستخدام سيناريوهات معقدة تعتمد على AJAX.
ويب درايفر
  • لاستخدام لغة برمجة معينة في تصميم حالة الاختبار الخاصة بك.
  • لاختبار التطبيقات الغنية بالوظائف المستندة إلى AJAX.
  • لتنفيذ الاختبارات على متصفح HtmlUnit.
  • لإنشاء نتائج اختبار مخصصة.
Selenium شبكة
  • لتشغيل ملفات Selenium نصوص RC في متصفحات وأنظمة تشغيل متعددة في وقت واحد.
  • لتشغيل مجموعة اختبار ضخمة يجب إكمالها في أقصر وقت ممكن.

دراسات حالة في العالم الحقيقي

🔍 دراسة الحالة 1: التوافق بين المتصفحات المختلفة للوحة معلومات SaaS

سيناريو

كانت إحدى شركات البرمجيات كخدمة تستعد لإصدار لوحة معلومات تحليلية تحتاج إلى العمل بشكل متسق عبر المتصفحات الحديثة (Chrome، Firefox، Edge، Safari).

التحدي

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

الحل مع Selenium

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

نتيجة

  • تم تقليل مدة الانحدار بنسبة 80%.
  • تم اكتشاف أخطاء عرض خاصة بالمتصفح في وقت مبكر (على سبيل المثال، الرسوم البيانية غير المحاذاة في IE).
  • تم الحفاظ على تجربة مستخدم متسقة في لوحة التحكم عبر مصفوفة المتصفح دون دورات يدوية إضافية.

⚙️ دراسة الحالة 2: تكامل CI/CD لتطبيق الويب عبر Selenium + TestNG

سيناريو

تعتمد شركة تطوير مواقع ويب متوسطة الحجم على خط أنابيب التكامل المستمر/التسليم المستمر (CI/CD) باستخدام Jenkinsكان عليهم التأكد من أن مسارات المستخدم الأساسية تعمل بعد كل تغيير في الكود.

التحدي

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

الحل مع Selenium

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

نتيجة

  • تم تحقيق ردود الفعل السريعة: تم وضع علامة على التدفقات المكسورة على الفور.
  • تم تقليل الأخطاء بعد النشر بنسبة تزيد عن 60%.
  • تمكين المطورين من معالجة المشكلات قبل وصولها إلى مرحلة ضمان الجودة.

🚀 دراسة الحالة 3: تسريع إصدار الميزات لمجمع السفر

سيناريو

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

التحدي

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

الحل مع Selenium &نموذج كائن الصفحة

قدم أحد قادة أتمتة ضمان الجودة بنية نموذج كائن الصفحة (POM) بلغة C#. Selenium تضمّنت نصوص WebDriver عناصر الصفحة وإجراءاتها (البحث عن الرحلات، وتطبيق الفلاتر، وحالات الدفع). تم تشغيل اختبارات آلية كل ليلة على GitLab CI.

نتيجة

  • تم تخفيض وقت الاختبار من 3 أيام إلى 4 ساعات فقط.
  • يؤدي إعادة استخدام البرنامج النصي عبر ميزات متعددة إلى تقليل جهد البرمجة النصية بنسبة 50%.
  • تم تعزيز الثقة: تم إصدار الإصدار في الموعد المحدد مع الحد الأدنى من تقارير الأخطاء.

مشترك Selenium التحديات (والإصلاحات)

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

  1. الاختبارات المتقشرة:
    قد تفشل الاختبارات بشكل عشوائي بسبب مشاكل التوقيت أو الشبكة.
    إصلاح: استخدم الانتظارات الصريحة ومحددات المواقع المستقرة؛ وتجنب Thread.sleep().
  2. عناصر الويب الديناميكية:
    يؤدي تغيير معرفات العناصر أو XPaths إلى حدوث أخطاء عدم العثور على العنصر.
    إصلاح: استخدم XPaths النسبية، أو محددات CSS، أو معالجة السمات الديناميكية.
  3. Syncقضايا التأريخ:
    يتم تحميل العناصر بشكل أبطأ من تنفيذ البرنامج النصي.
    إصلاح: تنفيذ WebDriverWait مع الظروف المتوقعة.
  4. التناقضات بين المتصفحات:
    تتصرف الاختبارات بشكل مختلف على Chrome، Firefox، أو الحافة.
    إصلاح: تشغيل الاختبارات على Selenium منصات الشبكة أو السحابة للتحقق عبر المتصفحات.
  5. التعامل مع النوافذ المنبثقة والتنبيهات:
    قد تؤدي النوافذ المنبثقة غير المتوقعة إلى مقاطعة تدفق الاختبار.
    إصلاح: استعمل Seleniumواجهة التنبيه أو كتل try–catch للتعامل معها بسلاسة.
  6. تكاليف صيانة الاختبار:
    تؤدي التغييرات المتكررة في واجهة المستخدم إلى جعل الاختبارات هشة.
    إصلاح: استخدم نموذج كائن الصفحة (POM) والتحكم في الإصدار لتسهيل التحديثات.
  7. تحديات الاندماج:
    قد تفشل خطوط أنابيب CI/CD بسبب مشكلات في برنامج التشغيل.
    إصلاح: استعمل Selenium مدير (Selenium 4+) أو WebDriver Manager لإدارة برامج التشغيل تلقائيًا.

باختصار: معظم Selenium وتنشأ المشاكل من ضعف المزامنة أو هشاشة أجهزة تحديد المواقع، وكلاهما قابل للحل من خلال الانتظار الذكي والتصميم المعياري والصيانة المستمرة.

الأسئلة الأكثر شيوعا:

Selenium إطار عمل أتمتة مفتوح المصدر يُستخدم لاختبار تطبيقات الويب عبر مختلف المتصفحات والمنصات. يتيح للمختبرين محاكاة تفاعلات المستخدم، مثل النقرات وإرسال النماذج والتنقل، باستخدام لغات برمجة متنوعة.

Selenium يُستخدم بشكل أساسي لأتمتة الاختبارات القائمة على المتصفحات. فهو يضمن عمل تطبيقات الويب بشكل صحيح عبر المتصفحات، ويدعم اختبارات الانحدار والاختبارات الوظيفية، ويتكامل بسهولة مع أنابيب CI/CD للاختبار المستمر.

Selenium يتكون من أربعة مكونات رئيسية: Selenium IDE (أداة التسجيل/التشغيل)، Selenium RC (إهمال)، Selenium ويب درايفر (واجهة برمجة التطبيقات للأتمتة الحديثة)، و Selenium شبكة (لتنفيذ الاختبار المتوازي عبر المتصفحات).

الأنواع الأربعة هي: Selenium IDE لتسجيل الاختبارات، Selenium RC لأتمتة الإرث، Selenium ويب درايفر للتحكم المباشر بالمتصفح، و Selenium شبكة للاختبار الموزع والمتوازي عبر متصفحات متعددة.

Selenium WebDriver هو المكون الأساسي الذي يتفاعل مباشرةً مع المتصفحات باستخدام واجهات برمجة التطبيقات الأصلية. يُمكّن المطورين من كتابة نصوص برمجية قوية ومتكاملة مع المتصفحات بلغات مثل Java, Python، و C#، دون الاعتماد على Javaالنصي.

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

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