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

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

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

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

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

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

גורמים שמוגדרים כמי שמייצרים את דפי הנחיתה

תג target_preparer, כפי ששמו מרמז, מגדיר כלי להכנת יעד (target preparer, ראו ITargetPreparer) שמציע שיטת הגדרה (setup method) שנקראת לפני שמריצים את מודול הבדיקה לצורך בדיקה. אם המחלקה שמצוינת בתג target_preparer מטמיעה גם את ITargetCleaner, שיטת ה-teardown שלה תופעל אחרי שמודול הבדיקה יסתיים.

כדי להשתמש בתצורה המובנית של המודול המשותף, הוסף קובץ חדש ‘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 שמציין את הקובץ המקומי לנתיב שבו צריך לדחוף אותו במכשיר. ייתכן שחוזרים על עצמם. אם הגדרתם שיותקפו כמה קבצים לאותו נתיב מרוחק, הקובץ העדכני ביותר יועבר.
      • push: (לא מומלץ) מפרט 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: בדיקה שמריצה חבילת בדיקות של מכשור במכשיר נתון
    • options:
      • package: שם חבילת המניפסט של אפליקציית הבדיקה של Android להרצה.
      • class: שם כיתת הבדיקה שצריך להריץ.
      • method: שם שיטת הבדיקה שרוצים להריץ.
  • שם מחלקה: AndroidJUnitTest

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