Close

ما هي السايبرس ولماذا تستعمل وما سبب تميزها ؟؟

التاريخ

 
إذا أردت الحصول على أسرع نتيجة فحص لواجهة مستخدم عليك استعمال السايبرس
هذا الادعاء هو واحد من أكثر الأشياء التي نسمعها في مجال أتمتة فحص واجهات المستخدم (Automation UI Testing)
 وتحديدا عند المقارنة بين أطر العمل المختلفة
 وفعلا هذا صحيح بنسبة كبيرة وهو من أقوى ميزات سايبرس
 لكن في البداية
 ما هي سايبرس بالأصل
 
سايبرس هي مكتبة Nodejs تستعمل بشكل أساسي لتطوير ما يعرف ب End to End (E2E Testing)
وهي باختصار وببساطة العملية التي يتم فيها فحص المنتج النهائي الذي سيقوم المستخدم باستعماله، على سبيل المثال أي موقع يتكون من مجموعة عناصر (باك أند وفرونت أند ….) يمكنك فحص كل منها بشكل منفصل.
ولكن عملية فحص الموقع بالشكل الذي سيقوم المستخدم العادي باستعماله ويحاكي فيها الفاحص المستخدم النهائي تسمى E2E
 
في عالم الE2E يوجد اتجاهين أساسيين:
الأول أن تتم العملية بشكل يدوي بالكامل فيما يعرف بال (Manual Testing)
والثاني بشكل مؤتمت (Automation Testing) من خلال البرمجة.
 
السايبرس واحدة من المكتبات أو أطر العمل التي تستعمل في عملية أتمتة الE2E بأغلب مجالته ولكنها تتميز بال UI testing
 
 

 

هي إطار عمل مختص بال (Automation E2E testing)

 

السايبرس مكتبة (Nodejs) وهذا يجعل كتابة الكود فيها تتم من خلال لغة الجافاسكريبت وهو أمر محبب لمطورين واجهات المستخدم لان تعلم استعمال السايبرس يكون سهل بالنسبة لهم،وهي فالأصل مطورة من قبل مطورين واجهات مستخدم.

أيضا كونها بالجافا سكريبت ساعدها في اكتساب الميزة الأساسية لها وهي أنها تقوم بتشغيل الكود داخل المتصفح وسنتحدث عن فائدة هذا الموضوع ولماذا هو عنصر قوي.

السايبرس مكتبة فالأساس فعملية تحميلها لا تختلف عن بساطة تخميل أي مكتبة أخرى بال (Nodejs), ولكنها تعتبر إطار عمل لأنها تجهز للمستخدم كل الأمور التي تلزمه في عملية كتابة الفحص،ولا يحتاج المستخدم لاتخاذ قرار لاختيار أمور إضافية، وهو ما يجعلها إطار عمل وليست مجرد مكتبة.

تستعمل السايبرس ثلاث مكتبات أساسية وهم:
1- jQuery لاختيار العناصر والتعامل معها
2- chai لتنفيذ الفحوصات الفعلية
3- mocha لتنظيم الفحوصات المختلفة وملفاتها وترتيبها.

 


 

بعد أن قمنا باستعراض السايبرس دعونا ننتقل للحديث عن أهم الأمور التي هي باعتقادي وبعد التجربة نقاط تميز سايبرس الفعلية والتي تحدث فرق عملي:

 

1- هيكلية بناء السايبرس وطريقة عملها

 

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

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

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

 


 

2- سرعة البدء بالعمل وعدم الحاجة للصيانة

 

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

 


 

3- الخلطة السحرية

 

أحد مزايا سايبرس هو الخليط بين:

1- وقت انتظار تلقائي لتنفيذ الأوامر (Auto waiting timeout)
2-تستفيد من البيئة غير المتزامنة للجافا سكريبت.
3- شيء يسمونه بال Retry ability وهو القدرة على المحاولة الدائمة لتنفيذ الاوامر خلال وقت الانتظار بدون الحاجة لكتابت المحاولات بشكل يدوي في الكود.

 

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

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

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

 


 

4- مشغل الفحوصات ال (Test Runner)

 

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

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

 


 

5- الصور والفيديوهات

 

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

 


 

6- تشكيلة المكتبات الواسعة

 

لان السايبرس تسعمل (Nodejs) هذا يفتح آفاق كبيرة لتنفيذ أمور مختلفة خلال عملية الفحص من خلال المكتبات التي توفرها Nodejs،
ولكن بالطبع المكتبات التي تحتاج إلى الوصول إلى مصادر النظام لا يمكن تشغيلها بالمتصفح، هنا تقوم السايبرس بتشغيلها في (Nodejs) خارج المتصفح الذي هو في الأصل يقوم بتشغيل السايبرس،
ويتم التواصل بطريقة بسيطة وسلسلة جدا ولا تؤثر على سرعة الكود وسهولة كتابته.

 


 

العيوب

 

بعد كل هذه الميزات والتي قد تجعل البعض يظن السايبرس الخيار الأمثل يجب أن ننبه لوجود سلبيات قوية تجعلها في بعض الحالات اسوء خيار وقد تكون غير قابلة للاستخدام:

1- لا يمكن في السايبرس فتح أكثر من نافذة أو أكثر من متصفح في نفس الوقت وفي بعض الفحوصات هذا يجلعها خيار سيء جدا.

2- السايبرس لا يمكن أن تسعمل وتكتب سوا بالجافاسكريبت وهذا أمر منطقي جدا لأنها تعمل داخل المتصفح، ولكن المنافسين يوفرون مكتباتهم في لغات مختلفة، وهو أمر يعتبر ميزة عند فرق العمل التي تكتب فحوصاتها المختلفة بلغة معينة ولا يريدون مغادرة هذا اللغة واستعمال الجافا سكريبت.
(لست مقتنعا بأن هذه النقطة عيب كبير 😂).

3- سايبرس لا تسمح بتغير العنوان الأساسي في نفس الفحص فإذا بدأت الفحص بالدخول إلى جوجل يمكنك تصفح أي شيء داخل هذا النطاق ولكن لا يمكنك الانتقال إلى فيسبوك في نفس الفحص.

4- تعامل السايبرس مع عنصر ال (IFrame) سيئ نوعا ما، فإذا كان الموقع الذي ستقوم بفحصه لسبب أو آخر يستعمل ال (IFrame) بكثرة، السايبرس ليست أفضل خيار.

5- سايبرس أداة للفحص واستعمالها في الوظائف العادية لأتمتة أمور على المتصفح غير سهل و وغير مناسب.

 


 

امثلة على الأشياء العادية التي تستعمل اتمتة واجهة المستخدم فيها ذكرناها في فيديو سابق يمكنك مشاهدته من هنا الرابط

وهذا ملحق الفيديو الذي يحتوي على مثال عملي للعمل ال Test Runner الرابط

 


 

شاركني رأيك عن السايبرس وعيوبها ومميزاتها وأتمنى أن تكون قراءة هذا المقال ممتعة بالنسبة لك

شكرا لك على وقتك
في النهاية الحمد لله الذي بنعمه تتم الصالحات
السلام عليكم ورحمة الله وبركاته
عبدالله سعدالدين

5 2 votes
Article Rating
Subscribe
Notify of
guest
2 تعليقات
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
3 years ago

[…] أخبرني في التعليقات أي طريقة تعتقد أنها الأنسب وإذا كنت تحب معرفة أصل السايبرس وما يميزها بإمكانك قراءة المقال التالي (رابط). […]

متعلم
متعلم
3 years ago

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

2
0
Would love your thoughts, please comment.x
()
x