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

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

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

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

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

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

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

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

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

  1. In-רמת השורש של הפרויקט הבדיקה שלך (פרויקט ברמה) קובץ 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 ), להוסיף התחייבות עבור הספרייה מסך Lab Test.

    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 Test Lab.

במקרי שימוש דוגמא ליצירת ScreenCapture :

  • צלם 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

  • לעבד 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 אל לוח המחוונים Test Lab של קונסולת Firebase.

  3. לבסוף, הפעל את הבדיקה שלך.

שלב 4. צפה בצילומי מסך הבדיקה שלך

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

  1. בלשונית הבדיקות, בחר המבחן הושלם שלך, ולאחר מכן לחץ על כרטיסיית התוצאות.

  2. בחר הבדיקה שלך שוב, ולאחר מכן לחץ על כרטיסיית המסך שמופיע.

(אופציונלי) אפשר תכונות בדיקה נוספות

תוכל להפעיל את התכונות הבאות במבחן שלך לפני שתפעיל אותו באמצעות Test Lab:

הפעל את Orchestrator

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

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

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

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

אפשר גיזום

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

כיצד פועל ניפוח בדיקות

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

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

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

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

חיוב לרסיסי מבחן

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

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