Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

התחל עם מבחני מכשור

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

מדריך זה מתאר כיצד להכין ולהפעיל בדיקת מכשור באמצעות Firebase Test Lab. כדי להשתמש במדריך זה, תזדקק למבחן מכשור (שנכתב על ידך או על ידי הצוות שלך) המשתמש במסגרות הבדיקה של Espresso או UI Automator Android. מבחני מכשור יכולים להימשך עד 45 דקות במכשירים פיזיים ועד 60 דקות במכשירים וירטואליים .

בשלבים מאוחרים יותר, תעלה את ה-APK של האפליקציה שלך ואת ה-APK של הבדיקה ל-Firebase.

(אופציונלי) הוסף את ספריית צילומי המסך לאפליקציה שלך

Firebase Test Lab כוללת ספרייה (testlab-instr-lib) שבה אתה יכול להשתמש כדי לעבד כל צילומי מסך שאתה מצלם עם ScreenCapture של AndroidX בעת הפעלת מבחני מכשור, כגון בדיקות שנכתבו באמצעות מסגרת הבדיקה של אספרסו . סעיף זה מתאר כיצד ליצור אובייקטי ScreenCapture עם ספריית AndroidX וכיצד לעבד אותם באמצעות testlab-instr-lib.

לאחר הפעלת בדיקת המכשור שלך, תוכל להציג את צילומי המסך שצולמו במסוף Firebase.

נסה אפליקציה לדוגמה

הורד את האפליקציה לדוגמה של NotePad כדי לנסות את הפונקציונליות הזו. היכולת לצלם צילומי מסך כבר משולבת בפרויקט NotePad.

שלב 1. הוסף את ספריית צילומי המסך לפרויקט שלך

  1. בקובץ Gradle ברמת הבסיס (ברמת הפרויקט) ( build.gradle ), הוסף את מאגר Maven של Google לכל מקטע מאגרים:

    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 ), הוסף תלות עבור ספריית צילומי המסך של Test Lab.

    dependencies {
      // ...
      // Add Test Lab's instrumentation test screenshot library:
      androidTestImplementation 'com.google.firebase:testlab-instr-lib:0.2'
      // ...
    }
  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> . אם אתה בודק ב- Android 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 Test Lab.

מקרי שימוש לדוגמה ליצירת צילום 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());
    ...
    

מקרי שימוש לדוגמה לעיבוד צילום מסך

  • עבד תמונת FirebaseScreenCaptureProcessor ScreenCapture

    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:

אפשר תזמורת

Android Test Orchestrator הוא כלי המריץ כל אחד ממבחני המכשור של האפליקציה שלך באופן עצמאי. Test Lab משתמש תמיד בגרסה העדכנית ביותר של Orchestrator.

כדי להפעיל את Orchestrator for Test Lab, בהגדרת בדיקת מכשירים, לחץ על אפשרויות נוספות > הפעל עם Orchestrator .

יתרונות וחסרונות

  • יתרון: אין מצב משותף. כל בדיקה פועלת במופע המכשור שלה כך שמצב משותף לא מצטבר על פני בדיקות.
  • יתרון: קריסות בודדות. אם מבחן קורס, רק המכשור הזה מופסק ובדיקות אחרות בסוויטה שלך עדיין יכולות לפעול.
  • חיסרון: זמני ריצה ארוכים יותר . כל בדיקה מפעילה מופע מכשור משלה, כלומר תהליך הבדיקה אורך מעט יותר בסך הכל. אם לא מסומן, זמני הריצה המוגברים עלולים להשפיע על השימוש במכסה או על זמן החיוב שלך ועלול לגרום לך להגיע למגבלות הזמן הקצוב של המכשירים שלך.

אפשר פיצול

ריסוק הבדיקות מחלק קבוצה של בדיקות לתת-קבוצות (שברים) הפועלות בנפרד בבידוד. מעבדת הבדיקה מפעילה כל רסיס באופן אוטומטי במקביל תוך שימוש במספר מכשירים ומשלימה את כל מערך הבדיקות בפחות זמן.

איך עובד ריסוק מבחן

נניח שאתה יוצר N רסיסים. עבור כל מכשיר שתבחר, מעבדת הבדיקה מפעילה N מכשירים זהים ומפעילה תת-קבוצה של הבדיקות בכל מכשיר. משמעות הדבר היא שמקרי בדיקה מפוצלים יכולים לגרום לביצוע בדיקות מרובות לכל מכשיר, בניגוד למקרי בדיקה שאינם מרוסקים, אשר תמיד מביאים לביצוע בדיקה אחת לכל מכשיר (לסקירה מהירה של מושגי מפתח במעבדת הבדיקות, ראה מושגי מפתח ).

אתה יכול להפעיל פיצול בדיקה במסוף Firebase:

  1. בהגדרת בדיקת המכשור, לחץ על אפשרויות נוספות .

  2. במקטע Sharding , הזן את מספר הרסיסים שברצונך להפעיל.

חיוב עבור רסיסי בדיקה

Test Lab מיישמת את הרסיסים שלך על ידי מינוף מנגנון הרסיס המובנה של AndroidJUnitRunner. כדי להימנע מחיוב על יצירת רסיסים ריקים (שברים ללא מקרי בדיקה שהוקצו), מספר הרסיסים שאתה יוצר צריך להיות קטן מהמספר הכולל של מקרי בדיקה. תלוי כמה זמן אורך כל מקרה בדיקה לרוץ, בדרך כלל מומלץ להקצות 2-10 מקרי בדיקה לכל רסיס.

למידע נוסף על חיוב, קרא שימוש, מכסות וחיוב .