Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

ابدأ باختبارات الأجهزة

يصف هذا الدليل كيفية تحضير اختبار الأجهزة وتشغيله باستخدام Firebase Test Lab. لاستخدام هذا الدليل، سوف تحتاج إلى اختبار القياس (كتبه لك أو فريقك) يستخدم اسبرسو أو UI الأوتوماتيكية 2.0 الأطر اختبار الروبوت. اختبارات القياس يمكن تشغيل تصل إلى 45 دقيقة على الأجهزة الفعلية وتصل إلى 60 دقيقة على الأجهزة الظاهرية .

في الخطوات اللاحقة ، ستقوم بتحميل APK لتطبيقك و APK اختبارك إلى Firebase.

(اختياري) أضف مكتبة لقطات الشاشة إلى تطبيقك

يشمل Firebase مختبر فحص مكتبة (testlab-instr-ليب) التي يمكنك استخدامها لمعالجة أي لقطات كنت تأخذ مع AndroidX في ScreenCapture عند تشغيل اختبارات القياس، مثل الاختبارات التحريرية باستخدام إطار اختبار اسبرسو . يصف هذا القسم كيفية إنشاء ScreenCapture الكائنات مع مكتبة AndroidX وكيفية معالجتها باستخدام testlab-instr-ليب.

بعد تشغيل اختبار الأجهزة ، يمكنك عرض لقطات الشاشة الملتقطة في وحدة تحكم Firebase.

جرب تطبيقًا نموذجيًا

تحميل التطبيق عينة المفكرة لمحاولة الخروج هذه الوظيفة. تم دمج القدرة على التقاط لقطات الشاشة بالفعل في مشروع NotePad.

الخطوة 1. أضف مكتبة لقطات الشاشة إلى مشروعك

  1. في مستوى الجذر مشروع اختبار الخاص بك (على مستوى المشاريع) ملف Gradle ( build.gradle )، إضافة مستودع مخضرم جوجل لكل قسم المستودعات:

    buildscript {
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
      }
    
      dependencies {
        // ...
    
        // Check that you have the following line (if not, add it):
        classpath 'com.google.gms:google-services:4.3.8'  // Google Services plugin
      }
    }
    
    allprojects {
      // ...
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
        // ...
      }
    }
  2. في الوحدة النمطية الخاصة بك (على مستوى التطبيق) ملف Gradle (عادة app/build.gradle )، إضافة تبعية لمكتبة مختبر فحص قطة.

    dependencies {
      // ...
      // Add Test Lab's instrumentation test screenshot library:
      androidTestCompile `com.google.firebase:testlab-instr-lib:02`
      // ...
    }
  3. في ملف AndroidManifest.xml على اختبار الخاص بك، قم بتسجيل FirebaseScreenCaptureProcessor في علامة الفوقية البيانات ضمن <instrumentation> العنصر. يمكنك أيضا تحديد المعالج كحجة في AndroidJUnitRunner بدلا من ذلك (انظر الوثائق المرجعية AndroidJUnitRunner للحصول على تعليمات حول كيفية).

    <instrumentation
      // Check that you have the following line (if not, add it):
      android:name="androidx.test.runner.AndroidJUnitRunner" // Specifies AndroidJUnitRunner as the test runner
      android:targetPackage="com.your.package.name">
    
    // Add the following:
    <meta-data
      android:name="screenCaptureProcessors"
      android:value="com.google.firebase.testlab.screenshot.FirebaseScreenCaptureProcessor" />
    </instrumentation>
    ...
    
  4. في ملف AndroidManifest.xml على التطبيق الخاص بك، أضف الأسطر التالية ضمن <manifest> العنصر:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  5. في ملفك AndroidManifest.xml الملف، تعيين أذونات نظام التطبيق عن طريق إضافة الأسطر التالية ضمن <manifest> العلامة. إذا كنت اختبار على الروبوت 10 (مستوى API 29) أو أعلى، بحذف WRITE_EXTERNAL_STORAGE إذن (التطبيق لا يتطلب هذا الإذن من أجل القراءة والكتابة لقطات للجهاز).

    <manifest ... >
        <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        ...
    </manifest>

الخطوة 2. خذ لقطات شاشة أثناء الاختبار

في أي نقطة في اختبار الخاص بك حيث كنت تريد أن تأخذ لقطة، استدعاء Screenshot.capture() طريقة من المكتبة AndroidX. هذا ينتج ScreenCapture الكائن . عند استدعاء process() على ScreenCapture الكائن، ويحصل على معالجتها باستخدام ScreenCaptureProcessor الذي تم تسجيله في ملفك AndroidManifest.xml . لاحظ أن BasicScreenCaptureProcessor يستخدم إذا لم تسجل المعالجات. منذ كنت سجلت FirebaseScreenCaptureProcessor ، ستتم معالجة الصور الخاصة بك عن طريق FirebaseScreenCaptureProcessor وسوف تكون متاحة لك مع النتائج الخاصة بك عند تشغيل الاختبار مع Firebase مختبر فحص.

حالات استخدام المثال لإنشاء ScreenCapture :

  • خذ لقطة شاشة كاملة على API Build.VERSION_CODES.JELLY_BEAN_MR2 وما فوق:

    Screenshot.capture()
    
  • خذ ScreenCapture للآخر على أي مستوى API. لاحظ أن هذا هو الخيار الوحيد للأجهزة الموجودة أسفل Build.VERSION_CODES.JELLY_BEAN_MR2.

    @Rule
      public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
    ...
    Screenshot.capture(activityRule.getActivity());
    ...
    

أمثلة على حالات الاستخدام لمعالجة لقطة الشاشة

  • معالجة ScreenCapture عبر FirebaseScreenCaptureProcessor :

    Screenshot.capture().process();
    
  • معالجة ScreenCapture عن طريق تحديد ScreenCaptureProcessor (وهذا يسمح لك لتخطي تسجيل المعالج):

    Set<ScreenCaptureProcessor> processors = new HashSet<>();
    processors.add(new FirebaseScreenCaptureProcessor());
    Screenshot.capture().process(processors);
    
  • تعيين اسم وشكل ScreenCapture ومعالجته باستخدام معالج المسجلين:

    Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
    

الخطوة 3. قم ببناء الاختبار وتشغيله

  1. بناء التطبيق واختبار ملفات APK لل(انظر اختبار التطبيق الخاص بك للحصول على تعليمات).

  2. تحميل ملفات APK ل وحة القيادة مختبر فحص من وحدة التحكم Firebase.

  3. أخيرًا ، قم بإجراء الاختبار الخاص بك.

الخطوة 4. اعرض لقطات الشاشة الاختبارية

بعد اكتمال الاختبار ، يمكنك عرض أي لقطات شاشة تم التقاطها في وحدة تحكم Firebase.

  1. في علامة التبويب الاختبارات، حدد اختبار المكتملة، ثم انقر فوق علامة التبويب نتائج.

  2. اختر الاختبار مرة أخرى، ثم انقر فوق علامة التبويب لقطات من أن يظهر.

(اختياري) قم بتمكين ميزات الاختبار الإضافية

يمكنك تمكين الميزات التالية في اختبارك قبل تشغيله باستخدام Test Lab:

تمكين Orchestrator

الروبوت اختبار تشرف هو الأداة التي تدير كل من اختبارات القياس التطبيق الخاص بك بشكل مستقل. يستخدم Test Lab دائمًا أحدث إصدار من Orchestrator.

لتمكين تشرف لمختبر فحص، في إعداد اختبار الأجهزة، انقر خيارات إضافية> تشغيل مع تشرف.

مزايا وعيوب

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

تمكين التجزئة

تجزئة الاختبار يقسم مجموعة من الاختبارات إلى مجموعات فرعية (أجزاء) يتم تشغيلها بشكل منفصل بشكل منفصل. يقوم Test Lab تلقائيًا بتشغيل كل جزء بالتوازي باستخدام أجهزة متعددة ويكمل مجموعة الاختبارات بأكملها في وقت أقل.

كيف يعمل اختبار التجزئة

لنفترض أنك أنشأت N أجزاء. لكل جهاز تحدده ، يقوم Test Lab بتدوير N من الأجهزة المماثلة وتشغيل مجموعة فرعية من الاختبارات على كل جهاز. يعني ذلك أن حالات الاختبار sharded يمكن أن يؤدي إلى الإعدام اختبار متعددة لكل جهاز، على عكس حالات الاختبار غير sharded، التي تؤدي دائما في تنفيذ اختبار واحد لكل جهاز (لمحة سريعة عن المفاهيم الأساسية في مختبر التجارب، انظر المفاهيم الرئيسية ).

يمكنك تمكين تجزئة التجزئة في وحدة تحكم Firebase:

  1. في إعداد اختبار الأجهزة، انقر خيارات إضافية.

  2. في القسم عملية التجزئة، أدخل عدد الأجزاء التي تريد تشغيلها.

إعداد الفواتير لاختبار القطع

اختبار مختبر تنفذ شظايا من خلال الاستفادة آلية عملية التجزئة المدمج في AndroidJUnitRunner ل. لتجنب فرض رسوم على تدوير الأجزاء الفارغة (أجزاء بدون حالات اختبار مخصصة) ، يجب أن يكون عدد الأجزاء التي تقوم بإنشائها أقل من إجمالي عدد حالات الاختبار. اعتمادًا على المدة التي تستغرقها كل حالة اختبار للتشغيل ، من الجيد عادةً تعيين 2-10 حالات اختبار لكل جزء.

لمزيد من المعلومات عن الفواتير، وقراءة الاستخدام، والحصص، والفواتير .