وظائف السيلينيوم مع المؤقتات
الوظيفة | هذا المكون الإضافي مخصص لاختبار الويب باستخدام إطار عمل Selenium. وهو يقوم بتشغيل الاختبارات القائمة على RobotFramework أو Python على متصفح Chrome بدون واجهة مستخدم موجود على جهاز تجميع البيانات، وينتظر انتهاء التنفيذ، ثم يسترد ملفات السجل التي تم إنشاؤها ويعرضها في صفحة نظرة عامة. |
|---|---|
التنبيهات | وقت التشغيل، رمز الاستجابة، رمز النتيجة |
معلومات عامة عن مهمة Selenium
يمكن إنشاء مشاريع Selenium إما باستخدام RobotFramework أو لغة Python.
RobotFramework
يتم إنشاء ملف الروبوت باستخدام الرأس الموجود في /opt/eranger/collector/robot.robot ويتم إلحاقه بالملف المقدم في المحرك. قد يرغب المستخدم في تقديم ملف روبوت كامل فقط في حالات خاصة. يُعد دليل مستخدم RobotFramework مصدرًا جيدًا للمعلومات حول الإمكانيات المتاحة. سيتم وضع ملفات الروبوت في /opt/eranger/collector/upload/
قسم المعلومات في تكوين المهمة:
يمكن استخدام ملحق Chrome أو Firefox المسمى Katalon Recorder لتسجيل إجراء الاختبار وتصدير جزء حالة الاختبار (التنسيق: Robot Framework).
أمثلة على البرامج النصية:
قد يبدو ملف الروبوت البسيط كما يلي:
[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
Python
يتم تثبيت وحدات Selenium و SKOOR Python الخاصة باختبار الويب باستخدام Selenium مسبقًا مع SKOOR Collectors. يمكن تطوير نصوص Python واستخدامها مع المكون الإضافي فور تطويرها. بالإضافة إلى ذلك، يمكن استخدام Selenium IDE لتسجيل حالات الاستخدام.
قسم المعلومات في تكوين المهمة:
مثال على البرنامج النصي: أولاً، يتم استيراد الوحدات المطلوبة وتعيين معلمات المتصفح. بعد ذلك، يتم تشغيل مؤقت SKOOR totalTime ويتم تنفيذ خطوة اختبار في كتلة try/except باستخدام مؤقت ثانٍ هو 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 import ChromeOptions
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
opts = ChromeOptions()
opts.add_argument("--headless=new")
opts.add_argument("--no-sandbox")
opts.add_argument("--disable-setuid-sandbox")
opts.add_argument("--disable-gpu")
opts.add_argument("--allow-running-insecure-content")
opts.add_argument("--disable-extensions")
opts.add_argument("--ignore-certificate-errors")
opts.binary_location = os.getenv("SKOOR_PUPPETEER_CHROME_EXECUTABLE")
cap = DesiredCapabilities().CHROME
cap["marionette"] = True
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_<name> إلى كتلة try في البرنامج النصي لـ 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 import ChromeOptions 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
عند إنشاء جهاز Selenium، تظهر شاشة خيارات التكوين التالية:
سيتم تشغيل المكون الإضافي Selenium في متصفح بدون واجهة مستخدم مباشرةً على المجمع المحدد.
معلمات مهمة Selenium
المعلمة | الوصف |
|---|---|
حد وقت التشغيل | حدد المدة الزمنية المسموح بها لتشغيل المشروع. يعتمد ذلك على ما يقوم به المشروع. هذه المعلمة اختيارية، والقيمة 0 أو تركها فارغة تعني عدم تعيين أي مهلة على الإطلاق. |
اسم المجموعة | إذا تم توفير ملف روبوت كامل مع "الإعدادات" وما إلى ذلك، فسيتم تنفيذه دون تعديل. عادةً ما يكون جزء "حالة الاختبار" هو المطلوب فقط. في هذه الحالة، يتم أخذ الرأس من /opt/eranger/collector/robot.robot. |
خصائص Selenium
المعلمة | الوصف |
|---|---|
خيار Selenium | يمكن تعيين تسلسلات الهروب والخيارات الأخرى بواسطة هذه الخاصية. |
متغيرات سيلينيوم | يمكن تعريف المتغيرات الخاصة بملف الروبوت في هذه الخاصية مثل INFO:info أو TIMEOUT:0 |
تفاصيل مؤقت Selenium
بنفس الطريقة التي تُضاف بها مهام المؤقت إلى مهام مشروع EEM، يمكن إضافة مهام المؤقت أسفل مهمة السيلينيوم. المعلمة الوحيدة هي اسم المؤقت.
تُعتبر المؤقتات التي تحتوي على إدخال بدء وإيقاف (يتم إنشاؤها إما بواسطة "إيقاف المؤقت" أو "إيقاف المؤقت مؤقتًا") ناجحة.
الكلمات الرئيسية التالية متاحة لاستخدام المؤقتات في ملف الروبوت
بدء المؤقت $name
إيقاف المؤقت مؤقتًا $name
استئناف المؤقت $name
إيقاف المؤقت $name
معلمات مؤقت Selenium
المعلمة | الوصف |
|---|---|
اسم المؤقت | يمكن تكوين اسم المهمة واسم المؤقت فقط في مهمة مؤقت Selenium. يمكن أن يختلف اسم المهمة عن اسم المؤقت، ولكن يجب أن يتطابق اسم المؤقت مع اسم المؤقت كما هو مكتوب في ملف الروبوت. |
قيم مؤقت Selenium وحدود التنبيه
القيمة / حد التنبيه | الوصف |
|---|---|
وقت التشغيل | وقت تشغيل هذا المؤقت بالذات |
رمز النتيجة | 0 = صحيح - |
رمز الخطأ | رمز خطأ عام في المهمة (انظر قسم رموز أخطاء المهام) |
نتائج Selenium
بعد تشغيل المكون الإضافي، يبدو قسم القيم في مهمة Selenium كما يلي:
أو في حالة حدوث خطأ أثناء التنفيذ:
سيؤدي النقر على رابط "ملفات النتائج" في قسم "القيم" إلى فتح علامة تبويب جديدة في المتصفح كما يلي:
تقدم هذه الصفحة نظرة عامة على الاختبارات التي تم تشغيلها ونتائجها. لكل عملية تشغيل تم فيها جمع السجلات بواسطة محرك SKOOR، يوجد سطر يحتوي على طابع زمني ورابط إلى ملف النتائج المقابل. إذا حدثت أخطاء أثناء التشغيل، فسيتم وضع الرابط في عمود «الاختبارات الفاشلة»، إلى جانب لقطة شاشة (إذا تم التقاطها بواسطة البرنامج النصي) والمؤقت (المؤقتات) الفاشلة. وهذا يعطي في الغالب فكرة جيدة عن سبب فشل تشغيل الاختبار.
سيؤدي النقر فوق ملف التقرير في قسم "القيم" إلى ظهور صفحة HTML تتضمن نظرة عامة على مخرجات التنفيذ بالإضافة إلى رابط لملف تقرير HTML أكثر تفصيلاً (وهو نفس الملف الذي يمكن الوصول إليه مباشرةً في قسم "القيم").
قيم Selenium وحدود الإنذار
القيمة / حد الإنذار | الوصف |
|---|---|
وقت التشغيل | وقت تشغيل المكون الإضافي |
رمز النتيجة | 0 = صحيح - |
رمز الخطأ | رمز خطأ عام في المهمة (انظر قسم رموز أخطاء المهام) |






