הגדרות אישיות של בדיקה מורכבת

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

  • התקנת חבילות APK אחרות (בנוסף ל-APK לבדיקה)
  • דחיפת קבצים למכשיר
  • להריץ פקודות (למשל adb Shell pm ...)

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

בעזרת CTS, השקנו את הקונספט של הגדרת מודול בדיקה לתמיכה את המשימות הנפוצות שמפורטות למעלה אפשר לבצע באמצעות כמה שורות הגדרה כדי ליהנות מגמישות מקסימלית, תוכלו אפילו להטמיע יעד משלכם להתכונן, כפי שהוגדר על ידי ITargetPreparer או ITargetCleaner, ולהגדיר אותם לשימוש בתצורה של מודול הבדיקה שלכם.

הגדרת מודול בדיקה עבור מודול בדיקה היא קובץ XML נדרש שהתווסף לחלק העליון של הדף לתיקיית המקור של המודול, בשם 'AndroidTest.xml'. קוד ה-XML נקבע לפי הפורמט של קובץ תצורה שמשמש את מערכת האוטומציה לבדיקת Federation. נכון לעכשיו, התגים העיקריים שמטופלים באמצעות הגדרות מודול הבדיקה הם "target_preparer" "test" התגים.

מתכוננים ליעד

תג "target_preparer", כפי שמרמז השם, מגדיר הכנת יעד (למידע נוסף, אפשר לעיין ב-ITargetPreparer) שמציע שיטת הגדרה, שנשלחת קריאה לפני שמודול הבדיקה מופעל לבדיקה; ואם המחלקה שיש אליה הפניה בתג "target_preparer" גם יכול להטמיע ITargetCleaner, שיטת הפירוט תופעל לאחר שמודול הבדיקה יסתיים.

כדי להשתמש בתצורה המובנית של המודול המשותף, הוסף קובץ חדש ‘AndroidTest.xml' ב את התיקייה ברמה העליונה של מודול הבדיקה, ואכלס אותה כך: content:

<?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>

לדוגמה, אנחנו יכולים להוסיף את תגי האפשרויות הבאים (בתגובה "insert") למעלה):

    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put secure accessibility_enabled 1" />
        <option name="teardown-command" value="settings put secure accessibility_enabled 0" />
    </target_preparer>

האפשרויות יגדירו את מסגרת הבדיקה כך:

  1. לפני שמודול הבדיקה מופעל, מריצים את פקודת המעטפת "הגדרות מאובטחות Accessibility_enabled 1 אינץ' במכשיר
  2. לאחר שמודול הבדיקה מסתיים, הפעילו את פקודת המעטפת "הגדרות שהוטמעו" Accessibility_enabled 0"

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

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

  • שם הכיתה: PushFilePreparer

    • short name: Push-file
    • function: העברה של קבצים שרירותיים לתיקייה של תרחישי הבדיקה אל יעד במכשיר
    • notes (הערות):
      • מכין זה יכול לדחוף מתיקייה לתיקייה, או מקובץ לקובץ, ש כלומר, לא ניתן להעביר קובץ לתיקייה במכשיר במכשיר: צריך לציין גם את שם קובץ היעד באותה תיקייה.
    • options:
      • push-file: מפרט דחיפה, שמציין את הקובץ המקומי לנתיב במקום שבו צריך לדחוף אותו במכשיר. ייתכן שחוזרים על עצמם. אם מספר הקבצים מוגדרים לדחיפה לאותו נתיב מרוחק, ההודעה האחרונה תידחה.
      • push: (הוצא משימוש) מפרט דחיפה, בפורמט הבא: /path/to/srcfile.txt->/path/to/destfile.txt או '/path/to/srcfile.txt->/path/to/destdir/'. ייתכן שחוזרים על עצמם. נתיב זה עשוי להיות יחסי לספרייה של מודול הבדיקה או הספרייה עצמה.
      • post-push: פקודה שתופעל במכשיר (עם `adb shell <your command>`) לאחר כל ניסיון הדחיפות. שימוש רגיל בקשת התמיכה תשתמש ב-chmod להרשאות
  • שם מחלקה: InstallApkSetup

    • short name:install-APK
    • function: דוחפת קובצי APK שרירותיים ליעד בתאריך המכשיר
    • אפשרויות:
      • test-file-name: שם ה-APK שיש להתקין בו במכשיר.
      • install-arg: ארגומנטים נוספים שיועברו להתקנה של pm כולל מקף בהתחלה, למשל ' -d'. ניתן לחזור על הפעולה
  • שם המחלקה: RunCommandTargetPreparer

    • short name: run-command
    • function: מפעילה פקודות מעטפת שרירותיות לפני או אחרי הבדיקה ביצוע המודול
    • אפשרויות:
      • run-command: פקודת מעטפת adb להרצה. ניתן לחזור על הפעולה
      • teardown-command: פקודת מעטפת adb להרצה במהלך שלב ביטול הקישור. ניתן לחזור על הפעולה

שיעור בדיקה

מחלקה לבדיקה היא המחלקה של איגוד הסחר שבה צריך להשתמש לביצוע הבדיקה.

<test class="com.android.tradefed.testtype.AndroidJUnitTest">
  <option name="package" value="android.test.example.helloworld"/>
  <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>

הנה שלושה סוגים נפוצים של בדיקות:

  • שם מחלקה: GTest

    • short name: gtest
    • function: בדיקה שמריצה חבילת בדיקה מובנית במכשיר נתון.
    • אפשרויות:
      • Native-test-device-path: הנתיב במכשיר שבו ממוקמות הבדיקות המקוריות.
  • class name: InstrumentationTest

    • שם מקוצר: אינסטרומנטציה
    • function: בדיקה שמריצה חבילה לבדיקת אינסטרומנטציה במכשיר נתון
    • אפשרויות:
      • package: שם חבילת המניפסט של אפליקציית הבדיקה של Android להרצה.
      • class: שם כיתת הבדיקה שצריך להריץ.
      • method: השם של שיטת הבדיקה שרוצים להריץ.
  • שם מחלקה: AndroidJUnitTest

    • function: בדיקה שמריצה חבילה של בדיקת אינסטרומנטציה על במכשיר באמצעות android.support.test.runner.AndroidJUnitRunner זו הדרך העיקרית לבצע בדיקת אינסטרומנטציה.