הגדרת בדיקות ACTS

דף זה מתאר כיצד להגדיר בדיקות ACTS.

מקורות תצורה

ל- Android Comms Test Suite (ACTS) יש שלושה מקורות עיקריים של תצורה:

  • ממשק שורת הפקודה (CLI)
  • קובץ התצורה של ACTS
  • משתני סביבה

ערכים ממקורות אלה משולבים לתצורה אחת המשמשת להפעלת בדיקת ACTS. אם ערכים מצוינים במספר מיקומים, הערכים יוחלפו על סמך הסדר שלמעלה (כאשר ה-CLI מקבל עדיפות).

הערה על משתני סביבה

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

משתני תצורה נדרשים

כל מבחן ACTS מחייב להגדיר את המשתנים הבאים.

נתיבי בדיקה של ACTS

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

הגדר את מיקום נתיב הבדיקה באמצעות משתנה הסביבה ACTS_TESTPATH ​​או עם הדגל -tp / --testpaths בשורת הפקודה. הערך יכול להיות רשימה של ספריות.

שיעורי מבחן ACTS

ACTS חייב לדעת אילו שיעורי בדיקה להפעיל. זה יכול להיות ביטוי רגולרי או רשימה של שמות מחלקות מבחן.

כדי להגדיר ערך זה, השתמש בדגל -tc / --test_class בשורת הפקודה. שימו לב שדגל זה מקבל גם רשימה של שמות מחלקות. שמות המחלקות חייבים להתאים לשמות הקבצים התואמים להם, לדוגמה, יש למצוא SampleTest ב- SampleTest.py .

נתיב יומן ACTS

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

כדי להגדיר את נתיב היומן, השתמש במשתנה הסביבה ACTS_LOGPATH או בדגל -lp / --logpath בשורת הפקודה.

נתיב התצורה של ACTS

כדי להפעיל את הבדיקה, ACTS חייב לדעת איזה testbed קיים. תצורת ה-ACTS מכילה את כל ההתקנים בערכת הבדיקה, וכל פרמטרי בדיקה או סביבה מיוחדים שעשויים להיות נחוצים. הגדר ערך זה בשורת הפקודה באמצעות -c / --config .

אם יש ערכות בדיקה מרובות בתוך התצורה, ACTS מפעיל את הבדיקות עבור כל ערכת בדיקה. כדי להריץ את הבדיקה רק עבור מיטת בדיקה בודדת ברשימה, השתמש בארגומנט שורת הפקודה -tb/--testbed <NAME> .

דוגמה לתחנת עבודה מקומית

רוב משתמשי ACTS מפתחים על סניף ריפו יחיד של אנדרואיד, ויש להם הגדרה דומה לזו:

# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'

# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin

אם משתמשי ACTS פועלים על מספר סניפים, הם מריצים את ACTS לעתים קרובות מספריית acts/framework ומשתמשים בנתיב יחסי עבור ACTS_TESTPATH ​​:

# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'

# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin

הגדרת ערכות הבדיקה שלך

קובץ התצורה של ACTS מספק את כל המידע הדרוש להפעלת בדיקות על התקני חומרה:

{
  "testbed": {
    "my_testbed": {
      "my_testbed_value": "value"
    },
    "another_testbed": {
      "AndroidDevice": [
        "53R147"
      ]
    }
  },
  "user_parameter_1": "special environment value",
  "user_parameter_2": "other special value"
}

יחידת הבסיס של תצורה זו היא ערכת הבדיקה. בתצורת הדוגמה שלמעלה, ה-testbed my_testbed נוצר עם ערך מבחן יחיד. למבחן השני, another_testbed , יש תצורת בקר מיוחדת שמחזיקה את המידע עבור רשימה של מכשירי אנדרואיד. מכשירים אלה מאוחסנים ברשימת מכשירים תחת self.android_devices . שים לב שאם ערכת בדיקה לא מציינת אובייקט AndroidDevice , מחלקת בדיקה שמצפה לאובייקט AndroidDevice מעלה חריג. לרשימה מלאה של תצורות בקר נתמכות המגיעות עם ACTS, עיין ברשימה בכתובת /acts/framework/acts/controllers/ .

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

מקרים מיוחדים עבור מכשיר אנדרואיד

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

פורמט תצורת JSON

כל צמדי המפתח/ערך ב-JSON למטה מוגדרים לאובייקט AndroidDevice המתאים. אם התצורה מנסה להחליף פרמטר שהוגדר בתכונת AndroidDevice , ControllerError נזרק.

  "AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
                    {"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]

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

  def setup_class(self):
      self.pub = next(filter(lambda ad: ad.label == 'publisher',
                             self.android_devices))
      self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
                             self.android_devices))

פרמטר אופציונלי

להלן פרמטר אופציונלי:

  • adb_logcat_param : מחרוזת שצורפה לפקודת adb logcat לאיסוף יומני adb. כברירת מחדל, נעשה שימוש adb logcat -v threadtime -b all . אם adb_logcat_param מוגדר, הקטע -b all מוחלף. לדוגמה, הגדרת adb_logcat_param ל- -b radio משנה את הפקודה ל- adb logcat -v threadtime -b radio .