Calabash Android دليل استخدام أداة الاختبار
⚡ ملخص ذكي
Calabash هو إطار عمل مفتوح المصدر لاختبار القبول، يقوم بتوجيه إجراءات واجهة المستخدم الحقيقية على Android وتطبيقات نظام التشغيل iOS، باستخدام لغة إنجليزية بسيطة Cucumber سيناريوهات مدعومة بتعريفات خطوات Ruby وخادم اختبار من جانب الجهاز.
ما هي تفاصيل Calabash?
Calabash هو قبول مفتوح المصدر الاختبار إطار عمل يسمح لك بكتابة وتنفيذ الاختبارات لنظامي التشغيل iOS و Android التطبيقات.
هو إطار عمل آلي لواجهة المستخدم يسمح بكتابة الاختبارات بلغة روبي باستخدام Cucumber.
Calabash يعمل هذا النظام من خلال تمكين التفاعلات التلقائية لواجهة المستخدم داخل تطبيق الهاتف المحمول، مثل الضغط على الأزرار، وإدخال النصوص، والتحقق من صحة الاستجابات، وما إلى ذلك. ويمكن تهيئته للعمل على أنظمة تشغيل مختلفة. Android وأجهزة iOS، والتي توفر ردود فعل وتحققات في الوقت الفعلي.
⚠️ ملاحظة حول الإصدار: Microsoft أنهت مساهماتها في Calabash بعد الإصدار النهائي لنظام التشغيل iOS 11 و Android ثمانية إصدارات، و مستودع calabash-android يُعرّف المشروع نفسه الآن بأنه مشروع يبحث عن مُشرف عليه. تم الحفاظ على الشرح الموضح أدناه كما هو، وتُغطى البدائل الحديثة في القسم الأخير.
لماذا Calabash أتمتة؟
قبل تثبيت أي شيء، من المفيد موازنة ما يقدمه الإطار مقابل تكلفة صيانته.
| المزايا | عيوب |
| يساعد على زيادة الإنتاجية/الإنتاجية. | مطلوب الكفاءة لكتابة البرامج النصية لاختبار الأتمتة. |
| تحسين الجودة أو زيادة القدرة على التنبؤ بالجودة | يعد تصحيح أخطاء البرنامج النصي للاختبار مشكلة كبيرة. |
| تحسين متانة (اتساق) العمليات أو المنتجات. | صيانة الاختبار مكلفة في حالة طرق التشغيل. |
| زيادة اتساق الإنتاج وتقليل تكاليف العمالة والنفقات | من الصعب صيانة ملفات بيانات الاختبار إذا كان البرنامج النصي للاختبار يختبر المزيد من الشاشات |
Calabash وBDD
- Calabash is التنمية المدفوعة بالسلوك (BDD)هو نفسه التطوير القائم على الاختبار (TDD)ولكن بدلاً من إنشاء اختبارات لوصف شكل واجهات برمجة التطبيقات، يتم تحديد سلوك التطبيق.
- BDD هي عملية يشارك فيها العديد من أصحاب المصلحة لخلق فهم مشترك لما يجب بناؤه.
- BDD مفيد في بناء البرامج المناسبة والتصميم من وجهة نظر صاحب العمل.
يوضح الرسم البياني أدناه كيف Calabash تتكون المجموعة من طبقات، بدءًا من ملف الميزات القابل للقراءة من قبل الشركات في الأعلى وصولًا إلى تفاعل الجهاز في الأسفل.
كيفية تثبيت Calabash
Calabash on Windows يتطلب تثبيت أربعة متطلبات أساسية بالترتيب. أكمل كل جزء بالكامل قبل البدء بالجزء التالي، لأن حزمة calabash-android تتحقق من وجود Ruby و Android SDK أثناء التثبيت.
الجزء الأول) التثبيت Java JDK - راجع هذا الدليل - /install-java.html
الجزء الثاني) تنزيل وتثبيت روبي.
الخطوة 1) قم بتنزيل Ruby من URL https://rubyinstaller.org/downloads
الخطوة الثانية: افتح ملف exe، واتبع التعليمات التي تظهر على الشاشة. بمجرد اكتمال التثبيت، ستظهر لك الشاشة التالية. انقر فوق "إنهاء".
ابدأ تشغيل موجه الأوامر مع تشغيل روبي Windows 10 واكتب أدناه الأمر.
ruby -v
تقوم وحدة التحكم بطباعة إصدار المترجم المثبت، كما هو موضح أدناه.
الجزء الثالث) تحميل وتثبيت Android
الخطوة 1) التنزيل Android Studio at https://developer.android.com/studio
الخطوة الثانية: افتح ملف exe، واتبع التعليمات التي تظهر على الشاشة، وأكمل التثبيت. انقر على زر "إنهاء" عند الانتهاء.
الجزء الرابع) التثبيت Calabash Android
الخطوة 1) في سطر الأوامر، اكتب الأمر gem install calabash-android. سيبدأ التثبيت وسيستغرق بعض الوقت حتى يكتمل.
الخطوة الثانية: بعد اكتمال التثبيت، اكتب إصدار تطبيق calabash-android
العمل مع Calabash
بعد تثبيت الجوهرة، تتمثل المهمة التالية في تحديد موقع مجلد الإطار وفهم الهيكل الأساسي الذي يأتي معه.
افتح المجلد "calabash-android-0.9.0". يقع المجلد في المسار C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. ستتغير أسماء المجلدات بالتزامن مع إصدار ruby/calabash الذي قمت بتثبيته على جهازك.
افتح مجلد الهيكل العظمي للميزات. ابحث عن هذا الإطار الأساسي.
- يحتوي الملف *.feature على سيناريوهات سنقوم بأتمتتها.
- الطريقة المستخدمة بواسطة ملف الميزة مكتوبة في ملف *.rb داخل مجلد "step_definitions".
- يجب وضع الطرق الشائعة وإعداد البيئة وتثبيت التطبيق والخطافات داخل مجلد "الدعم".
الاستقالة وبناء التطبيق
- Calabash-android resign *.apk
- Calabash-android build *.apk
يؤدي الاستقالة إلى استبدال توقيع المطور بمفتاح تصحيح الأخطاء حتى يتمكن خادم الاختبار من تجهيز التطبيق، وتنتج خطوة البناء خادم الاختبار هذا، كما يظهر إخراج وحدة التحكم أدناه.
قم بتوصيل الجهاز بالنظام /افتح المحاكي
تحقق من الجهاز المرفق. اكتب الأمر
adb devices
يجب عرض قائمة الأجهزة المتصلة. في حال عدم وجود الجهاز، اتبع خطوات تصحيح أخطاء USB والاقتران في دليل الاتصال بـ ADB حل معظم الحالات.
كيفية العثور على محدد موقع العنصر
- افتح وحدة التحكم. اكتب الأمر.
calabash-android console "APK Path" start_test_server_in_background
- باستخدام الأمر أعلاه، قم بتشغيل التطبيق على الجهاز. للعثور على محدد العنصر، استخدم الأمر التالي.
query "*"
سيؤدي هذا إلى عرض جميع محددات العناصر على الشاشة الحالية. يمكن للمختبرين الذين يفضلون أداة فحص مرئية التحقق من نفس التسلسل الهرمي باستخدام uiautomatorviewer.
Calabash هيكل المشروع والخطوات المحددة مسبقًا
بدلاً من نسخ مجلد الجوهرة يدويًا، يمكن للإطار البرمجي إنشاء مشروع جاهز للعمل نيابةً عنك. تشغيل المُولِّد داخل دليل مشروعك يُنشئ المشروع القياسي Cucumber تصميم كل Calabash تتوقع المجموعة.
calabash-android gen
تفصل الشجرة المُنشأة بين الاهتمامات الثلاثة لمجموعة BDD:
- سمات/ — سيناريوهات غيركين، واحد .ميزة ملف لكل رحلة مستخدم.
- الميزات/تعريفات الخطوات/ — طرق Ruby التي تتطابق مع كل سطر من Gherkin، بما في ذلك ملف calabash_steps.rb المضمن.
- الميزات/الدعم/ — تكوين البيئة والخطافات التي تقوم بتثبيت التطبيق وتشغيله وإيقافه في كل سيناريو.
يُعد ملف calabash_steps.rb المرفق أكثر أهمية مما يبدو للوهلة الأولى. فهو يحتوي على مجموعة كبيرة من الخطوات الإنجليزية الجاهزة، بحيث يمكن للسيناريو الأول الضغط على الأزرار وإدخال النصوص والتحقق من صحة النصوص الظاهرة قبل كتابة أي دالة مخصصة. ولا تُصبح الخطوات المخصصة ضرورية إلا عندما تتجاوز الرحلة تلك العبارات الجاهزة.
هناك إعدادان على مستوى المشروع يستحقان المعرفة مبكرًا. تُحفظ لقطات الشاشة في مجلد العمل الحالي افتراضيًا، ويقوم متغير البيئة SCREENSHOT_PATH بإعادة توجيهها إلى مكان آخر، مما يحافظ على تنظيم ملفات البناء على جهاز مشترك. يتطلب التفاعل مع مربعات حوار النظام أو أي تطبيق آخر استخدام واجهة UIAutomator2 الخلفية، والتي يتم تشغيلها باستخدام start_test_server_in_background(with_uiautomator: true).
إنشاء البرامج النصية الجديدة
افتح ملف الميزة والأسطر التالية
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
افتح ملف تعريف الخطوة وحدد الطريقة في ملف *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
تنفيذ مشروع الاختبار
لتنفيذ مشروع الاختبار، استخدم الأمر أدناه
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber يطبع كل خطوة أثناء تنفيذها، وتنتهي عملية التشغيل الناجحة بعرض السيناريو وإجمالي الخطوات هنا.
مشترك Calabash الأخطاء وكيفية إصلاحها
معظم حالات الفشل في التشغيل الأولي ناتجة عن قواعد التغليف والأذونات التي يعتمد عليها خادم الاختبار، وليس عن السيناريو نفسه. يوضح الجدول أدناه العلاقة بين الأعراض الأكثر شيوعًا وأسبابها الموثقة.
| عرض | السبب المحتمل والحل |
| يتعطل التطبيق فور بدء الاختبار | يفتقر ملف APK إلى إذن الوصول إلى الإنترنت (android.permission.INTERNET)، وهو الإذن الذي يحتاجه خادم الاختبار لقبول الأوامر. قم بتعريف هذا الإذن في AndroidManifest.xml وإعادة البناء. |
| لا تستجيب الأزرار والنصوص للنقرات | لم يتم تحديد إصدار SDK المستهدف. أضف مدخلة uses-sdk تُحدد مستوى SDK الذي تم بناء التطبيق عليه. |
| لا يمكن لخادم الاختبار الاتصال بالتطبيق | لم يتم إعادة توقيع ملف APK باستخدام مفتاح التصحيح. قم بتشغيل أمر إعادة التوقيع، ثم أعد بناء الملف قبل تشغيله. |
| لا توجد أجهزة مدرجة في وقت التشغيل | تم تعطيل تصحيح أخطاء USB أو أن برنامج التشغيل مفقود. تأكد أولاً من ظهور الرقم التسلسلي في مخرجات أداة adb devices. |
| فشلت الخطوات بسبب خطأ غير محدد في الخطوة | لا تتطابق صياغة Gherkin مع أي تعبير نمطي في step_definitions. انسخ المقتطف المقترح. Cucumber اطبعها ونفذها. |
يُصلح إدخالان في ملف البيان السطرين الأولين. أضفهما قبل إعادة توقيع ملف APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
عادةً ما تكون حالات فشل انتهاء المهلة ناتجة عن عوامل بيئية وليست وظيفية. قد يتسبب بطء المحاكي، أو بدء تشغيل التطبيق من الصفر، أو مزامنة الخلفية، في تجاوز الشاشة لنافذة الانتظار، لذا يُنصح برفع قيمة المهلة قبل إعادة كتابة خطوة كانت صحيحة بالفعل.
Is Calabash هل ما زالت تُدار؟ بدائل لاختبار تطبيقات الجوال الحديثة
Calabash لم يعد يتم تطويره بشكل فعال. Microsoft توقف عن المساهمة بعد دعم الإصدار النهائي من نظام التشغيل iOS 11 و Android بعد ثمانية إصدارات، أصبح المشروع الآن قاعدة بيانات مفتوحة المصدر مؤرشفة بدون مُشرف. لا تزال الحزم البرمجية الحالية تعمل على الأجهزة القديمة، ولكن ينبغي البدء بالعمل الجديد على إطار عمل مدعوم.
| الإطار | المنظومة | أفضل مناسب لـ |
| Appium | Android و iOS | مجموعات البرامج متعددة المنصات في Java, Pythonروبي أو Javaنص برمجي، وأقرب بديل لـ Calabash الفريق. |
| Espresso | Android فقط | اختبارات سريعة أثناء العملية مكتوبة بلغة كوتلين أو Java من قبل مطوري التطبيقات أنفسهم. |
| اختبار XCUIT | iOS فقط | محلي Xcode الأجنحة، الوريث المدعوم للمتقاعدين إطار عمل أتمتة واجهة المستخدم. |
| مايسترو وديتوكس | Android و iOS | مشاريع مفتوحة المصدر حديثة تهدف إلى مقاومة التقشر وتطبيقات React Native. |
تنتقل عادة تطوير البرمجيات القائمة على السلوك (BDD) بسلاسة. تبقى ملفات ميزات Gherkin كما هي تمامًا، ولا تتغير سوى أجسام تعريف الخطوات، لأن Cucumber يقع فوق برنامج التشغيل وليس داخله. عادةً ما تحتفظ الفرق التي تقوم بالهجرة بملفات الميزات، وتعيد كتابة خطوات Ruby مقابل Appiumوإعادة استخدام نفس الشيء اختبار المحمول مصفوفة الجهاز و اختبار الأتمتة خط الأنابيب الذي يديرونه بالفعل.
















