إنشاء شبكة سيلينيوم لاختبار السيلينيوم الموزع



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

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

  1. لماذا ومتى يتم استخدام شبكة السيلينيوم؟
  2. ما هي شبكة السيلينيوم؟
  3. شبكة السيلينيوم 1 مقابل شبكة السيلينيوم 2
  4. عمارة شبكة السيلينيوم
  5. بناء شبكة سيلينيوم

لماذا ومتى يتم استخدام شبكة السيلينيوم؟

هناك الكثير من متصفحات الويب التي يتم استخدامها اليوم. قد يستخدم المستخدمون Chrome أو Firefox أو Safari أو Opera أو حتى Internet Explorer لقراءة هذه المدونة بالذات. ربما يستخدمون إصدارات مختلفة من المتصفحات. قد يقومون أيضًا بتشغيل هذه المتصفحات على أي نظام تشغيل ، سواء كان نظام التشغيل Windows أو Mac أو Ubuntu أو أي توزيع آخر لنظام Linux.





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

كذلك يجب عليك!



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

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

ما هي شبكة السيلينيوم؟

شبكة السيلينيوم هي أداة مهمة أخرى في مجموعة أدوات السيلينيوم. Grid قادرة على تنسيق اختبارات WebDriver / اختبارات RC التي يمكن تشغيلها في وقت واحد على متصفحات ويب متعددة أو يمكن أن تبدأ على أنظمة تشغيل مختلفة أو حتى مستضافة على أجهزة مختلفة.



عمل الشبكة - شبكة السيلينيومإذن ، كيف يعمل ذلك؟ توظف الشبكة بنية Hub-Node حيث يوجد Hub واحد يعمل كعقد رئيسي وعقد أو أكثر تعمل كعبيد.

ما يعنيه هذا هو ، إذا كان لديك ما مجموعه 100 مهمة / اختبار تحتاج إلى التنفيذ ، فيمكن تنفيذ الاختبارات في وقت واحد في 5 آلات ، حيث سيجري كل جهاز 20 اختبارًا. في الواقع ، يمكنك تنفيذ هذه الاختبارات في مجموعات مختلفة من أنظمة التشغيل والمتصفحات. يمكن أن يكون كل جهاز هنا من نظام تشغيل مختلف وداخل كل نظام تشغيل ، يمكن إجراء الاختبارات على متصفحات مختلفة.

هذا الفعل سيوفر بسهولة الكثير من وقتك في تنفيذ الاختبار. إذا كنت تفكر في المثال أعلاه ، فيمكننا تقليل وقت التنفيذ إلى حوالي 1/5 من إجمالي الوقت الذي يستغرقه تنفيذ الاختبارات على جهاز واحد.

إذا كنت تستطيع أن تتذكر من مدوناتي السابقة ، فقد ذكرت عددًا لا يحصى من المرات أن Grid كانت جزءًا من مشروع السيلينيوم منذ بدايته ، أي منذ Selenium v1. كانت شبكة السيلينيوم أيضًا جزءًا من السيلينيوم v2 وهي حاليًا جزء من السيلينيوم v3. لا يوجد فرق كبير بين الإصدارين 2 و 3 لشبكة السيلينيوم. ومع ذلك ، يحتوي الإصدار 1 على الكثير من الاختلافات نسبيًا. لذا ، دعونافهم الاختلافات بين v1 و v2.

شبكة السيلينيوم 1 مقابل شبكة السيلينيوم 2

يتمثل الاختلاف الأساسي بين Grid v1.0 و v2.0 في أنه ، تم استخدام RC في الشبكة 1 ، وتم استخدام WebDriver في الشبكة 2. الجدول أدناه يوضح الاختلافات في التفاصيل.

الشبكة 1 الشبكة 2
يتطلب تثبيت Apache Antتثبيت Apache Ant غير مطلوب
لديه جهاز التحكم عن بعد الخاص به (هذا يختلف عن خادم RC)مرفق مع ملف جرة خادم السيلينيوم
يدعم أوامر Selenium RC فقطيدعم كل من البرامج النصية Selenium RC و WebDriver
يمكنك أتمتة متصفح واحد فقط لكل جهاز تحكم عن بعديمكنك أتمتة ما يصل إلى 5 متصفحات لكل جهاز تحكم عن بعد


الآن بعد أن تعلمنا الاختلافات الأساسية بين النسختين ، دعنا نتعمق في شبكة السيلينيوم.

هندسة شبكة السيلينيوم

كما ذكرت سابقًا ، تعمل الشبكة على أساس محور واحد وعقد متعددة. ولكن ، ما هي Hub و Nodes وماذا تفعل؟

المحور

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

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

تكوين المحور

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

بمجرد تنزيل ملف jar ، ستحتاج إلى وضعه في دليل مناسب. من أجل راحتي ، قمت بتنزيله ووضعته في مجلد السيلينيوم في C Drive. يوصى أيضًا بتنزيل ملف jar ووضعه في دليل مشابه في جميع العقد الأخرى.

لتكوين Hub ، تحتاج إلى تشغيل الأمر في موجه أوامر windows. الأمر موجود في المقتطف أدناه.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

ال سيلينيوم خادم مستقل 3.4.0.jar هو اسم ملف الجرة الذي قمت بتنزيله.
ال -وظيفة يتم استخدام العلم لتعيين هذا الجهاز المضيف المعين على أنه Hub. عندما تضغط على Enter ، ستحصل على الناتج أدناه على شاشتك.

كيفية الحصول على طول المصفوفة في جافا سكريبت

في حال فشلت في ملاحظة لقطة الشاشة أعلاه ، فراجعها مرة أخرى. انها تقول ' -يجب تسجيل العقد في http://192.168.0.11:4444/grid/register '. الآن بعد أن تم تكوين Hub ، نحتاج إلى إعداد Nodes وربطها بهذا Hub.

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

العقد

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

تكوين العقد

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

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://192.168.0.11:4444/grid/register

لا يوجد سوى عدد قليل من الاختلافات في هذا الأمر مقارنة بالأمر المطلوب لبدء Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe يستخدم لتعيين مسار برنامج تشغيل المتصفح. على غرار تعيين مسار برنامج تشغيل المتصفح في رمز WebDriver الخاص بك ، فإنك تحدده هنا لتمكين العقدة من إجراء الاختبارات. من Selenium v3 فصاعدًا ، تحتاج إلى تنزيل متصفح برنامج التشغيل لمتصفح Firefox. برنامج تشغيل متصفح Firefox هو برنامج تشغيل Gecko. ومع ذلك ، في الإصدارين 1 و 2 ، تحتاج إلى تعيين برنامج تشغيل المتصفح لجميع المتصفحات بخلاف Firefox.
عقدة الدور يتم استخدام العلم لتعيين هذا الجهاز المضيف المعين كعقدة.
-hub http://192.168.0.11:4444/grid/register يُعلم العقدة بالاتصال بـ Hub باستخدام عنوان IP الخاص بـ Hub. من النقاط المهمة التي يجب ملاحظتها أنه إذا كنت تقوم بتشغيل أي Node على نفس الجهاز مثل Hub ، فيمكنك تحديد ' -hub http: // المضيف المحلي: 4444 / شبكة / سجل 'في الأمر بدلاً من عنوان IP الخاص بالمركز.

كيفية استخدام mysql workbench

عندما تضغط على Enter ، ستحصل على الإخراج أدناه في موجه الأوامر.

حتى الآن ، كان من الممكن توصيل العقدة بالمركز. يمكنك التحقق من ذلك بالرجوع إلى موجه الأوامر المستخدم لبدء تشغيل Hub وستلاحظ الرسالة التالية: عقدة مسجلة http://192.168.0.11:5555 '.

عنوان IP ورقم المنفذ هو من Node الخاص بك. نظرًا لأن Node لدي على نفس الجهاز مثل My Hub ، فإن المنفذ المستخدم للعقدة هو 5555. عند بدء تشغيله على جهاز آخر ، سيتم استخدام المنفذ الافتراضي.

عند تشغيل عنوان URL التالي في جهاز Hub ، ستحصل على حالة العقد المتصلة بـ Hub. انظر الجزء المميز في لقطة الشاشة أدناه.

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

بناء شبكة سيلينيوم

لقد قمت بتشغيل البرنامج النصي الخاص بي في Eclipse IDE. يعتمد تنفيذ هذا البرنامج النصي على حزمتين هامتين من حزم المكتبة. هم انهم القدرات المطلوبة كائن و RemoteWebDriver موضوع.

يتم استخدام DesiredCapabilities لتعيين نوع المتصفح ونظام تشغيل Node الخاص بنا. لاستيراد كائن DesiredCapabilities ، استخدم الكود أدناه.

استيراد org.openqa.selenium.remote.DesiredCapabilities

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

استيراد java.net.MalformedURLException استيراد java.net.URL استيراد org.openqa.selenium.remote.RemoteWebDriver

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

عندما تقوم بالمناورة فوق شعارات أي متصفح موجود في وحدة تحكم Selenium Hub ، فستحصل على تفاصيل مثل اسم المتصفح و ال منصة من العقدة التي تريد أتمتة. تشير الصورة أيضًا إلى عدد مثيلات المتصفحات التي يمكنني فتحها في Node. يمكنني تكوين بحد أقصى 5 نسخ كروم و 5 فايرفوكس و 1 حالات Internet Explorer. هذه التفاصيل موجودة في لقطة الشاشة أدناه.

يمكنك استخدام الرمز في المقتطف أدناه لإعداد الشبكة الأولى الخاصة بك.

الحزمة GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver public class TestGrid {static WebDriver driver static String nodeUrlceptionBeforeLETest public vformed nodeUrl = 'http://192.168.0.11:5555/wd/hub' قدرات DesiredCapabilities = DesiredCapabilities.chrome () features.setBrowserName ('chrome') drivers.setPlatform (Platform.WINDOWS) driver = new RemoteWebDriver (URL جديد (nodeUrl )، features)}Test public void simpleTest () Edureka '، driver.getTitle ())AfterTest public void afterTest () {driver.quit ()}}

لقد قسمت نص الاختبار بالكامل إلى ثلاثة تعليقات توضيحية للاختبار. BeforeTest وTest وAfterTest. فيBeforeTest ، استخدمت كائني DesiredCapablities و RemoteWebDriver لتكوين عقدي. فيTest ، طلبت من Node الانتقال إلى صفحة Edureka الرئيسية والتأكيد على عنوان الصفحة. فيAfterTest ، طلبت من العقدة إنهاء مثيل المتصفح.

عندما يجتاز اختبارك التنفيذ ، ستحصل على الناتج أدناه.

18 مايو ، 2017 3:09:07 مساءً org.openqa.selenium.remote.ProtocolHandshake createSession INFO: اللهجة المكتشفة: OSS PASSED: simpleTest ====================== ========================== الاختبار الافتراضي تشغيل الاختبارات: 1 ، الإخفاقات: 0 ، التخطي: 0 ========== ==================================================== =================================== المجموعة الافتراضية إجمالي الاختبارات التي تم تشغيلها: 1 ، الإخفاقات: 0 ، التخطيات: 0 = ================================================

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

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

يمكنك مشاهدة الفيديو أدناه لمشاهدة عرض توضيحي لكيفية بناء شبكة سيلينيوم. يشرح المدرب الذي يقدم الفيديو نفس المفاهيم الموضحة في هذه المدونة.

دروس شبكة السيلينيوم للمبتدئين | دروس السيلينيوم | إدوريكا

إذن ، هذا يقودنا إلى نهاية مدونة شبكة السيلينيوم هذه. إذا كان لديك أي شك أو مشكلة في أي كود / محتوى لسلسلة المدونات هذه ، فيرجى تركها في قسم التعليقات أدناه وسأقوم بحل مشكلتك في أقرب وقت ممكن.

إذا كنت ترغب في تعلم السيلينيوم وبناء مستقبل وظيفي في مجال الاختبار ، فقم بإلقاء نظرة على موقعنا التفاعلي المباشر عبر الإنترنت هنا ، يأتي ذلك مع دعم 24 * 7 لإرشادك طوال فترة التعلم.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات وسنعاود الاتصال بك.