Calabash Android دليل استخدام أداة الاختبار

⚡ ملخص ذكي

Calabash هو إطار عمل مفتوح المصدر لاختبار القبول، يقوم بتوجيه إجراءات واجهة المستخدم الحقيقية على Android وتطبيقات نظام التشغيل iOS، باستخدام لغة إنجليزية بسيطة Cucumber سيناريوهات مدعومة بتعريفات خطوات Ruby وخادم اختبار من جانب الجهاز.

  • 🔸 فريف: Calabash يقوم بأتمتة عمليات النقر وإدخال النصوص والتأكيدات على تطبيقات الهاتف المحمول الأصلية والهجينة على الأجهزة الحقيقية والمحاكيات.
  • ☑️ مجموعة اللغات: تُكتب السيناريوهات في ملفات ميزات Gherkin، وتوجد طرق المطابقة في ملفات Ruby داخل step_definitions.
  • ✅ مؤسسة BDD: تتيح منهجية التطوير القائمة على السلوك لأصحاب الأعمال والمطورين والمختبرين الاتفاق على السلوك قبل وجود أي نص برمجي.
  • 🧪 ترتيب الإعداد: Java JDK، ثم Ruby، ثم Android Studioثم جوهرة calabash-android، التي تم التحقق منها باستخدام أمر الإصدار.
  • 🛠️ تدفق التنفيذ: أعد توقيع ملف APK، وقم ببناء خادم الاختبار، وقم بتوصيل جهاز، واستعلم عن محددات المواقع، ثم قم بتشغيل ملفات الميزات.
  • 📊 الوضع الحالي: Calabash يتم أرشفة هذه النسخة ولا تتم صيانتها، لذا تختار المشاريع الجديدة عمومًا Appium, Espresso أو XCUITest بدلاً من ذلك.

Calabash دليل استخدام أداة الاختبار Android تبين Cucumber ملفات الميزات التي تشغل تطبيقًا للهواتف المحمولة

ما هي تفاصيل 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 مخطط طبقات BDD يوضح ملفات الميزات وتعريفات الخطوات وطبقة أتمتة الجهاز

كيفية تثبيت Calabash

Calabash on Windows يتطلب تثبيت أربعة متطلبات أساسية بالترتيب. أكمل كل جزء بالكامل قبل البدء بالجزء التالي، لأن حزمة calabash-android تتحقق من وجود Ruby و Android SDK أثناء التثبيت.

الجزء الأول) التثبيت Java JDK - راجع هذا الدليل - /install-java.html

الجزء الثاني) تنزيل وتثبيت روبي.

الخطوة 1) قم بتنزيل Ruby من URL https://rubyinstaller.org/downloads

صفحة تنزيل RubyInstaller التي تعرض إصدارات Ruby المتاحة لـ Windows

الخطوة الثانية: افتح ملف exe، واتبع التعليمات التي تظهر على الشاشة. بمجرد اكتمال التثبيت، ستظهر لك الشاشة التالية. انقر فوق "إنهاء".

شاشة إكمال معالج إعداد Ruby مع تمييز زر "إنهاء".

ابدأ تشغيل موجه الأوامر مع تشغيل روبي Windows 10 واكتب أدناه الأمر.

ruby -v

تقوم وحدة التحكم بطباعة إصدار المترجم المثبت، كما هو موضح أدناه.

موجه الأوامر مع روبي يعرض رقم إصدار روبي المثبت

الجزء الثالث) تحميل وتثبيت Android

الخطوة 1) التنزيل Android Studio at https://developer.android.com/studio

Android Studio معالج الإعداد قيد التشغيل Windows أثناء التثبيت

الخطوة الثانية: افتح ملف exe، واتبع التعليمات التي تظهر على الشاشة، وأكمل التثبيت. انقر على زر "إنهاء" عند الانتهاء.

Android Studio شاشة اكتمال التثبيت مع زر الإنهاء

الجزء الرابع) التثبيت Calabash Android

الخطوة 1) في سطر الأوامر، اكتب الأمر gem install calabash-android. سيبدأ التثبيت وسيستغرق بعض الوقت حتى يكتمل.

مخرجات وحدة التحكم أثناء تثبيت جوهرة calabash-android وتوابعها

الخطوة الثانية: بعد اكتمال التثبيت، اكتب إصدار تطبيق 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 الذي قمت بتثبيته على جهازك.

افتح مجلد الهيكل العظمي للميزات. ابحث عن هذا الإطار الأساسي.

Calabash مجلد هيكلي للميزات يحتوي على مجلدات الدعم وتعريفات الخطوات

  • يحتوي الملف *.feature على سيناريوهات سنقوم بأتمتتها.
  • الطريقة المستخدمة بواسطة ملف الميزة مكتوبة في ملف *.rb داخل مجلد "step_definitions".
  • يجب وضع الطرق الشائعة وإعداد البيئة وتثبيت التطبيق والخطافات داخل مجلد "الدعم".

الاستقالة وبناء التطبيق

  • Calabash-android resign *.apk
  • Calabash-android build *.apk

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

مخرجات وحدة التحكم لأوامر calabash-android resume و build التي تنتج خادم اختبار

قم بتوصيل الجهاز بالنظام /افتح المحاكي

تحقق من الجهاز المرفق. اكتب الأمر

adb devices

يجب عرض قائمة الأجهزة المتصلة. في حال عدم وجود الجهاز، اتبع خطوات تصحيح أخطاء USB والاقتران في دليل الاتصال بـ ADB حل معظم الحالات.

قائمة أوامر adb Devices المرفقة Android الجهاز عن طريق الرقم التسلسلي

كيفية العثور على محدد موقع العنصر

  • افتح وحدة التحكم. اكتب الأمر.
    calabash-android console "APK Path"
    start_test_server_in_background
  • باستخدام الأمر أعلاه، قم بتشغيل التطبيق على الجهاز. للعثور على محدد العنصر، استخدم الأمر التالي.
    query "*"

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

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

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.

خريطة ملف تعريف خطوات روبيping خط غيركين إلى Calabash استعلام عن العنصر

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 مخرجات التشغيل التي توضح تنفيذ كل خطوة من خطوات Gherkin على الجهاز

Calabash ملخص وحدة التحكم الذي يعرض السيناريوهات التي تم اجتيازها وعدد الخطوات بعد التنفيذ

مشترك 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وإعادة استخدام نفس الشيء اختبار المحمول مصفوفة الجهاز و اختبار الأتمتة خط الأنابيب الذي يديرونه بالفعل.

الأسئلة الشائعة

نعم. قامت مكتبة calabash-ios المنفصلة بتشغيل تطبيقات iOS من خلال نفس لغة Ruby و Cucumber الطبقة. وهي تشارك حالة الإهمال الخاصة بـ Android جوهرة، لذا فإن العمل الحالي على نظام iOS يُخدم بشكل أفضل بواسطة XCUITest أو Appium.

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

يُجيد برنامج Copilot صياغة الأجزاء المتكررة، مثل التفاف كتلة wait_forping استعلام عن عنصر. لا يمكنه معرفة معرّفات عناصر تطبيقك، لذا تعامل مع كل خطوة يتم إنشاؤها كمسودة للتحقق من صحتها مقابل نتيجة استعلام فعلي.

Cucumber هو برنامج تشغيل BDD عام يقرأ Gherkin ويستدعي طرق Ruby. Calabash هي مكتبة أتمتة الأجهزة المحمولة التي تستدعيها تلك الطرق. Cucumber يحدد ما يتم تشغيله؛ Calabash يقوم بالنقر وإدخال النص والتأكيد.

تُحفظ لقطات الشاشة في مجلد العمل الحالي افتراضيًا، وتُسمى بالتسلسل لكل عملية تشغيل. يؤدي تعيين متغير البيئة SCREENSHOT_PATH قبل التشغيل إلى إعادة توجيهها إلى مجلد مُختار، مما يحافظ على فصل عناصر التكامل المستمر عن شفرة المصدر.

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

نعم. لأن التنفيذ عبارة عن استدعاء واحد من سطر الأوامر، يمكن لأي خادم بناء استدعاؤه بعد إنتاج ملف APK. Jenkins تقوم المهمة عادةً بإعادة توقيع ملف APK، وتشغيل المحاكي، وتشغيل الميزات الموسومة، وأرشفة التقارير.

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

تلخيص هذه التدوينة بـ: