תצורת בדיקה מורכבת

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

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

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

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

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

מכינים למטרה

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

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

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

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

    <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. לפני הפעלת מודול הבדיקה, בצע את פקודת המעטפת "הגדרות שים את הנגישות המאובטחת 1" במכשיר
  2. לאחר סיום מודול הבדיקה, בצע את פקודת המעטפת "הגדרות שים את הנגישות המאובטחת 0 מופעל"

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

המטרה המדויקת של שדה הערך תלויה באופן שבו מכין הגדיר את האפשרות: זה יכול להיות מחרוזת, מספר, בוליאני או אפילו נתיב קבצים וכו '. בדוגמה למעלה פירוש השם "הפעלה-פקודה: הפעלה-פקודה" פירושו שאנו קובעים ערך עבור האפשרות "הפעלה-פקודה" המוגדרת על ידי מכין מטרה עם שם קצר "הפעלה-פקודה"; ושם "run-command: teardown-command" פירושו שאנו קובעים ערך לאפשרות "פקודת פירוק" המוגדרת גם על ידי אותו מכין מטרה בשם קצר "הפעלה-פקודה". להלן סיכום של שלושת מכיני היעד הנפוצים:

  • שם המחלקה: PushFilePreparer

    • שם קצר: קובץ-דחיפה
    • פונקציה: דוחפת קבצים שרירותיים תחת תיקיית מקרה מבחן לתוך יעד במכשיר
    • הערות:
      • מכין זה יכול לדחוף מתיקייה לתיקייה, או מקובץ לקובץ; כלומר, אינך יכול לדחוף קובץ מתחת לתיקייה במכשיר: עליך לציין את שם קובץ היעד גם תחת תיקיה זו
    • אפשרויות:
      • דחיפה: שכיבות המפרט A, מעוצב כמו " /path/to/srcfile.txt->/path/to/destfile.txt " או " /path/to/srcfile.txt->/path/to/destdir/ ". עשוי לחזור על עצמו נתיב זה עשוי להיות יחסית לספריית מודולי הבדיקה או לספריית החוצה עצמה.
      • **-דחיפה פוסט: פקודה ** לרוץ על המכשיר (עם ` adb shell <your command> ') לאחר כל דחיפות כבר ניסו. מקרה שימוש אופייני יהיה שימוש ב- chmod להרשאות
  • שם המחלקה: InstallApkSetup

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

    • שם קצר: הפקודה לרוץ
    • פונקציה: עוסקת בביצוע שרירותי פקודות מעטפת לפני או אחרי ביצוע מודול מבחן
    • אפשרויות:
      • לרוץ-הפקודה: הפקודה פגז ADB לרוץ. אפשר לחזור על זה
      • ההרוס-הפקודה: הפקודה פגז 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

    • שם קצר: gtest
    • פונקציה: מבחן שיוצאה חבילת בדיקת ילידים במכשיר נתון.
    • אפשרויות:
      • מבחן-מכשיר-נתיב ילידים: הנתיב במכשיר שבו בדיקות ילידים ממוקמות.
  • שם המחלקה: InstrumentationTest

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

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