גוגל מחויבת לקדם הון גזעי עבור קהילות שחורות. תראה איך.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

תצורת מבחן מורכבת

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

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

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

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

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

מכינים יעד

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

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

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

  • שם כיתה: PushFilePreparer

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

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

    • שם קצר: הפקודה הפעלה
    • פונקציה: מבצעת פקודות מעטפת שרירותיות לפני או אחרי ביצוע מודול הבדיקה
    • אפשרויות:
      • הפקודה הפעלה: הפקודה adb shell להפעלה. עשוי לחזור על עצמו
      • פקודת קריעה : הפקודה של קליפת 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
    • פונקציה: מבחן שמריץ חבילת בדיקה מקורית במכשיר נתון.
    • אפשרויות:
      • native-test-device-path: הנתיב בהתקן בו נמצאים בדיקות מקוריות.
  • שם כיתה: InstrumentationTest

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

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