وظائف السيلينيوم مع المؤقتات
الوظيفة | هذا المكون الإضافي مخصص لاختبار الويب باستخدام إطار عمل سيلينيوم. وهو يقوم بتشغيل اختبارات RobotFramework أو Python القائمة على Python على متصفح chrome مقطوع الرأس الموجود على مجمّع، وينتظر انتهاء التنفيذ، ثم يجلب ملفات السجل التي تم إنشاؤها ويعرضها في صفحة نظرة عامة. |
---|---|
الإنذار | وقت التشغيل، رمز الاستجابة، رمز النتيجة |
معلومات عامة عن وظيفة السيلينيوم
يمكن إنشاء مشاريع سيلينيوم إما باستخدام لغة RobotFramework أو لغة Python.
لجعل ملفات مشروع السيلينيوم متاحة على مجمعات خارجية، يجب تكوين وتشغيل خدمات SKOOR syncfs. يجب تهيئة المستخدم reranger لتسجيل الدخول بدون كلمة مرور كما هو موضح في دليل النسخ المتماثل
إطار عمل الروبوت
يتم إنشاء ملف الروبوت باستخدام الرأس من /opt/eranger/collector/robot.robot.robot وإلحاقه بالملف المقدم في المحرك. فقط في حالات خاصة قد يرغب المستخدم في توفير ملف روبوت كامل. مصدر جيد للحصول على معلومات حول الإمكانيات هو دليل مستخدم RobotFramework. سيتم وضع ملفات الروبوت على /opt/eranger/المُجمِّع/التحميل/
قسم المعلومات في تكوين الوظيفة:
يمكن استخدام ملحق كروم أو فايرفوكس كاتالون ريكوردردر لتسجيل إجراء اختبار وتصدير جزء حالة الاختبار (التنسيق: إطار عمل الروبوت).
مثال على البرامج النصية:
يمكن أن يبدو ملف الروبوت البسيط هكذا:
[Teardown] Run Keyword If Test Failed Capture Page Screenshot Set Window Size ${1920} ${1200} Start Timer totalTime Start Timer Open Goto https://my.great.business.com/ Stop Timer Open click link=Business sleep 3s Stop Timer totalTime
برنامج نصي أكثر تقدمًا مع مؤقتات متعددة وكتل TRY/EXCEPT:
Start Timer TotalTime Start Timer Open TRY Goto https://my.great.business.com/ Stop Timer Open EXCEPT Capture Page Screenshot Error Timer Website unavailable ErrorCode Timer 11 Stop Timer Open END Start Timer Contact TRY click link=Contact Stop Timer Contact EXCEPT Capture Page Screenshot Error Timer Contact link failed ErrorCode Timer 22 Stop Timer Contact END sleep 2s Start Timer Home TRY click link=Home Stop Timer Home EXCEPT Capture Page Screenshot Error Timer Home link failed ErrorCode Timer 33 Stop Timer Home END sleep 2s Stop Timer TotalTime
بايثون
يتم تثبيت وحدات Selenium و SKOOR Python النمطية لاختبار الويب Selenium مسبقًا مع مجمّعات SKOOR. يمكن تطوير نصوص Python البرمجية واستخدامها مع المكوّن الإضافي أثناء تطويرها. بالإضافة إلى ذلك، يمكن استخدام Selenium IDE لتسجيل حالات الاستخدام.
قسم المعلومات في تكوين الوظيفة:
مثال على البرنامج النصي: أولاً، يتم استيراد الوحدات المطلوبة وتعيين معلمات المتصفح. بعد ذلك، يتم بدء تشغيل مؤقت SKOOR totalTime ويتم تشغيل خطوة اختبار في كتلة محاولة/استثناء مع مؤقت ثانٍ، step1. بهذه الطريقة، يمكن تكوين المؤقتات واستخدامها لاحقًا في محرك SKOOR.
#!/usr/bin/python3 import sys, time, skoor, traceback from skoor import SkoorTimer, Variables, SkoorScreenshot from selenium import webdriver from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities opts = Options() opts.set_headless() cap = DesiredCapabilities().CHROME cap["marionette"] = True assert opts.headless # Operating in headless mode driver = webdriver.Chrome(chrome_options=opts) skoor.setLogLevel(skoor.INFO) driver.set_window_size(1920,1200) totalTime = SkoorTimer("TotalTime") step1 = SkoorTimer("Step 1") totalTime.start() try: step1.start() skoor.log(skoor.INFO, "Search started") driver.get("https://xyz.com") driver.find_element_by_id("html-element1") skoor.log(skoor.INFO, "Step 1 done") step1.stop() except: skoor.log(skoor.ERROR, traceback.format_exc()) SkoorScreenshot().capture(driver) step1.error(-2, "Step 1 failed") totalTime.stop() driver.quit() skoor.log(skoor.INFO, "Script done")
إذا تم استخدام Selenium IDE لتسجيل حالة اختبار، فيمكن نسخ محتوى الدالة test_<الاسم> إلى كتلة محاولة في نص Python 3:
def test_dict(self): self.driver.get("https://dict.leo.org/englisch-deutsch/") self.driver.set_window_size(1515, 948) self.driver.find_element(By.LINK_TEXT, "Forum").click()
إذا تم استخدام وحدات Python النمطية الإضافية مثل by أو key بواسطة Selenium IDE، فيجب إضافة هذه الوحدات النمطية أيضًا إلى قسم الاستيراد في البرنامج النصي النهائي:
#!/usr/bin/python3 import sys, time, skoor, traceback from skoor import SkoorTimer, Variables, SkoorScreenshot from selenium import webdriver from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys ...
من المهم أن تتم معالجة عملية driver.quit() في أي حال. وإلا سيكون هناك تسرب للموارد!
جهاز سيلينيوم
عند إنشاء جهاز سيلينيوم تظهر شاشة خيارات التكوين التالية:
سيتم تشغيل المكوّن الإضافي لـ Selenium في متصفح مقطوع الرأس مباشرةً على المجمّع المحدد.
معلمات وظيفة السيلينيوم
المعلمة | الوصف |
---|---|
حد وقت التشغيل | حدد مقدار الوقت المسموح به لتشغيل المشروع. هذا يعتمد على ما يقوم به المشروع. هذه المعلمة اختيارية، القيمة 0 أو تركها فارغة يعني أنه لن يتم تعيين مهلة على الإطلاق. |
اسم المجموعة | إذا تم توفير ملف روبوت كامل مع "إعدادات" وما إلى ذلك، فسيتم تنفيذه دون تعديل. عادةً ما يكون جزء "حالة الاختبار" فقط مطلوبًا. في مثل هذه الحالة يتم أخذ الرأس من /opt/eranger/collector/robot.robot.robot. |
خصائص سيلينيوم
المعلمة | الوصف |
---|---|
خيار السيلينيوم | يمكن تعيين تسلسلات الهروب وخيارات أخرى بواسطة هذه الخاصية. |
متغير السيلينيوم | يمكن تعريف المتغيرات الخاصة بملف الروبوت في هذه الخاصية مثل INFO:info أو TIMEOUT:0 |
تفاصيل مؤقت السيلينيوم
بنفس الطريقة التي تتم بها إضافة وظائف المؤقت إلى وظائف مشروع EEM، يمكن إضافة وظائف المؤقت أسفل وظيفة سيلينيوم. المعلمة الوحيدة هي اسم المؤقِّت.
تعتبر الموقتات التي تحتوي على إدخال بدء وإيقاف (تم إنشاؤها بواسطة "إيقاف مؤقت" أو "إيقاف مؤقت") ناجحة.
تتوفر الكلمات المفتاحية التالية لاستخدام المؤقتات في ملف الروبوت
بدء المؤقِّت $ الاسم
مؤقِّت الإيقاف المؤقت $ الاسم
استئناف المؤقِّت $ الاسم
إيقاف المؤقِّت $ الاسم
معلمات مؤقِّت سيلينيوم
المعلمة | الوصف |
---|---|
اسم المؤقِّت | يمكن تكوين اسم المهمة واسم المؤقِّت فقط على مهمة مؤقِّت Selenium Timer. يمكن أن يكون اسم المهمة مختلفًا عن اسم المؤقِّت ولكن يجب أن يتوافق اسم المؤقِّت مع اسم المؤقِّت كما هو مكتوب في ملف الروبوت. |
قيم مؤقِّت السيلينيوم وحدود الإنذار
القيمة / حد الإنذار | الوصف |
---|---|
وقت التشغيل | وقت تشغيل هذا المؤقِّت المحدد |
رمز النتيجة | 0 = موافق |
رمز الخطأ | رمز خطأ عام للمهمة (انظر القسم رموز خطأ المهمة) |
نتائج سيلينيوم
بعد تشغيل المكوّن الإضافي، يبدو قسم القيم في مهمة السيلينيوم كما يلي:
أو في حالة حدوث خطأ أثناء التنفيذ:
سيؤدي النقر على رابط ملفات النتائج في قسم القيم إلى إظهار علامة تبويب المتصفح الجديدة التالية:
توفر هذه الصفحة نظرة عامة على الاختبارات التي تم تشغيلها ونتائجها. لكل عملية تشغيل حيث تم جمع السجلات من قبل محرك SKOOR يوجد سطر مع طابع زمني ورابط لملف النتائج المقابل. إذا كانت هناك أخطاء أثناء التشغيل، يتم وضع الرابط في عمود الاختبارات الفاشلة، إلى جانب لقطة شاشة (إذا تم التقاطها بواسطة البرنامج النصي) والمؤقت (المؤقتات) الفاشلة. يعطي هذا في الغالب فكرة جيدة عن سبب فشل تشغيل الاختبار.
سيؤدي النقر على ملف التقرير في قسم القيم إلى إظهار صفحة html التي تتضمن نظرة عامة على مخرجات التنفيذ بالإضافة إلى رابط لملف تقرير html أكثر تفصيلاً (نفس الملف الذي يمكن الوصول إليه أيضًا مباشرةً في قسم القيم).
قيم السيلينيوم وحدود الإنذار
القيمة / حد الإنذار | الوصف |
---|---|
وقت التشغيل | وقت تشغيل المكون الإضافي |
رمز النتيجة | 0 = موافق |
رمز الخطأ | رمز الخطأ العام للمهمة (انظر القسم رموز خطأ المهمة) |