تشغيل نص Robo برمجي (على Android)

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

باستخدام نصوص Robo البرمجية، يمكنك تسجيل خطواتك أثناء تنفيذ سير عمل في تطبيقك، ثم تحميل هذا التسجيل إلى وحدة تحكّم Firebase لتشغيله في اختبارات Robo. عند إجراء اختبار Robo مع إرفاق نص برمجي، ينفِّذ Robo أولاً الإجراءات التي تشتمل على نص برمجي، ثم يستكشف التطبيق كالمعتاد.

تستخدم نصوص Robo البرمجية اختبار Robo كمحرك اختبار. في أبسط أشكاله، يتألف نص Robo البرمجي من سلسلة من إجراءات واجهة المستخدم، مثل إدخال النص "اسم المستخدم" ثم النقر على الزر "حسنًا". يمكن أن تتضمّن نصوص Robo البرمجية أيضًا إجراءات مثل انتظار ظهور عنصر، والنقر على نقطة محدّدة داخل عنصر، وتنفيذ أوامر shell الخاصة بأداة Android Debug Bridge (adb).

تتفوّق نصوص Robo البرمجية على أُطر الاختبار التقليدية في المزايا التالية:

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

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

  • شروط مختلفة لتفعيل الإجراء، مثل أن يكون اسم حزمة تطبيق معيّن نشطًا (أو غير نشط) أو أن يظهر عنصر معيّن على الشاشة (أو لا يظهر).
  • عناصر التحكّم في التنفيذ، مثل الحدّ الأقصى لعدد عمليات التنفيذ والأولوية ومرحلة الزحف ذات الصلة
  • أنواع الإجراءات غير التقليدية (الشَرطية، وتجاهُل العناصر، وإغلاق الشاشة)

ننصحك باستخدام نصوص Robo البرمجية كلما أمكن ذلك لأنّه يمكن الحفاظ عليها بسهولة. على سبيل المثال، يمكنك استخدام نص برمجي خاص ببرنامج Robo لتنفيذ ما يلي:

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

استخدِم ميزات أكثر تقدّمًا في نصوص Robo البرمجية لتنفيذ ما يلي:

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

يُرجى العِلم أنّ نصوص Robo البرمجية لا تحلّ محل جميع أنواع الاختبارات. ستظل بحاجة إلى اختبارات الوحدات لرصد الأخطاء المنخفضة المستوى في منطق تطبيقك، ولا تتطلّب هذه الاختبارات عادةً بيئة Android أو iOS. ننصحك بإكمال اختبارات Robo باستخدام اختبارات أدوات دقيقة الاستهداف يمكن أن تتضمّن تأكيدات محدّدة ومفصّلة بشأن منطق النشاط التجاري، والتي من الأفضل التعبير عنها في الرمز.

تسجيل نص Robo برمجي باستخدام Test Lab في "استوديو Android"

يتيح لك مسجّل نصوص Robo البرمجية في "استوديو Android" تسجيل نصوص Robo البرمجية من خلال التفاعل مباشرةً مع التطبيق على جهازك. اتّبِع التعليمات التالية لبدء استخدام نصوص Robo البرمجية من خلال أداة Firebase في "استوديو Android":

  1. افتح استوديو Android واختر الأدوات -> Firebase.

  2. في لوحة Firebase، انقر على تسجيل نص Robo البرمجي واستخدامه لتوجيه اختبار Robo.

  3. انقر على تسجيل نص Robo البرمجي. يظهر مربّع الحوار "اختيار هدف النشر".

  4. اختَر الجهاز الذي تريد تسجيل نص Robo فيه.

  5. بعد تسجيل نص Robo البرمجي على الجهاز، احفظ الملف كملف JSON في الموقع المطلوب.

  6. افتح صفحة Test Lab في وحدة تحكّم Firebase وحمِّل ملف نص JSON وAPK التطبيق.

  7. انقر على زر متابعة. سيُطلب منك اختيار الجهاز ومستوى واجهة برمجة التطبيقات. بعد اكتمال نص الاختبار، ينشئ Test Lab تقرير الاختبار.

  8. (اختياري) لنسخ أو تنزيل logcat لتقرير الاختبار والفيديو، انقر على عرض ملفات المصدر.

تمنع آليات قوة النصوص البرمجية في Robo حدوث أي أعطال مبكرة. إذا اخترت وضع التنفيذ strict وتعذّر تنفيذ نص برمجي في Robo في أي مرحلة، ستتجاهل Test Lab جميع الخطوات اللاحقة في النص البرمجي وتستأنف عملية الزحف العادية في Robo. في أغلب الأحيان، لا تنجح نصوص Robo البرمجية لأنّ Robo لا يمكنه العثور على عنصر مطلوب على الشاشة. لتجنُّب حدوث أخطاء، تأكَّد من أنّ التنقّل في تطبيقك يتم بشكل متوقّع وأنّ شاشاتك تظهر بترتيب محدّد.

تشغيل نص Robo برمجي في Test Lab

لتشغيل نص Robo البرمجي في Test Lab، اتّبِع التعليمات التالية:

  1. افتح صفحة Test Lab في وحدة تحكّم Firebase.

  2. حمِّل حِزمة APK أو AAB للتطبيق في حقل حِزمة APK أو AAB للتطبيق.

  3. حمِّل ملف نص Robo البرمجي المسجّل أو الذي تم إنشاؤه يدويًا في حقل نص Robo البرمجي (اختياري).

توفير نص Robo برمجي لتنفيذ اختبار Robo على الجهاز

لتوفير نص Robo برمجي لتنفيذ اختبار Robo محلي، استخدِم خيار اختبار Robo التالي:

--robo-script-file <robo-script-path>

استبدِل <robo-script-path> بمسار إلى ملف نص Robo في نظام الملفات المحلي. اتّبِع تعليمات إجراء اختبار Robo محلي.

تحديد نص Robo برمجي في طلب اختبار باستخدام gcloud CLI

لتحديد نص Robo البرمجي في استدعاء اختبار gcloud CLI، استخدِم علامة gcloud CLI التالية:

--robo-script = <robo-script-path>

استبدِل <robo-script-path> بمسار إلى ملف نص Robo في نظام الملفات المحلي أو في Cloud Storage باستخدام صيغة gs://. على سبيل المثال:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

الخطوات التالية