בדיקות טלפוניה של ACTS

Android Comms Test Suite‏ (ACTS) מבצע בדיקה אוטומטית של סטאקים של קישוריות, כמו Wi-Fi,‏ Bluetooth ושירותי סלולר. כדי להשתמש בכלי הבדיקה צריך את adb ו-Python. הכלי נמצא ב-tools/test/connectivity/acts.

בדף הזה מוסבר איך להריץ את בדיקות הטלפוניה הבסיסיות שזמינות ב-Android Open Source Project (AOSP) למשתמשים עם שני טלפונים.

דרישות מוקדמות

כדי להריץ בדיקות טלפוניה של ACTS, צריכה להיות לכם גישה למאגר מלא של Android, וצריך להתקין גרסאות build של userdebug במכשירים שבהם אתם רוצים לבדוק.

הורדת מאגר של Android

פועלים לפי ההוראות במאמר הורדת המקור כדי להוריד מאגר של Android במחשב שיש לו חיבור USB למכשירים שרוצים לבדוק.

  • AOSP הוא קוד בסיס שמכיל כמה ג'יגה-בייטים והוא ממשיך לגדול. לכן, חשוב לשנות את הציפיות שלכם לגבי זמני ההורדה בהתאם.
    • אם המכונה מוגבלת בגודל, מוסיפים את --depth=1 לפקודה repo init.
  • כדי לקבל עדכונים עתידיים על הכלים של ACTS, עוברים לספריית השורש של Android:
    • שימוש ב-repo sync tools/test/connectivity
    • וגם repo sync external/sl4a

אימות גרסאות build של userdebug במכשירים

מתקינים גרסה של Android עם userdebug במכשירי הבדיקה.

  • יוצרים את המאגר לפי ההוראות במאמר יצירת Android.
  • מבצעים איפוס למכשיר כפי שמתואר במאמר איפוס מכשיר.
    • הפקודה adb shell getprop ro.build.type אמורה להחזיר userdebug.
    • אם ro.build.type לא זמין, build של userdebug מאפשר להריץ את מעטפת adb כ-root (טרמינל #).

פיתוח והתקנה של SL4A

כדי ליצור ולהתקין את Scripting Layer For Android‏ (SL4A), פועלים לפי ההוראות במאמר Scripting Layer for Android. הקטע הוספת גרסאות build של SL4A לגרסאות build של Android כברירת מחדל הוא אופציונלי.

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

Copy: out/target/path/to/sl4a.apk

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

מגדירים את המכשירים לפי הדרישות הבאות לגרסאות build או לכלים של ACTS:

  • אם המפתחות של ספק ADB לא זמינים, מקישים על החלון הקופץ Trust this מחשב ב-DUT כשמופיע. אם יש מפתחות של ספקי ADB:

    • מפתחות ודרייברים של ספקי ADB חייבים להיות ייחודיים ל-DUT.
    • כדי להפעיל תמיד את ניפוי הבאגים ב-USB, צריך להוסיף את מפתחות הספק של ADB בעץ המקור שלכם ל-~/.bashrc (או למקבילה) באמצעות export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys, כאשר /path/to/directory הוא הנתיב המלא המוגדר במארח. לפתרון בעיות ב-ADB, אפשר לעיין במאמר הפעלת אפליקציות במכשיר חומרה.
  • מתן הרשאה לניפוי באגים ב-USB: כשמנהלי ההתקן של adb מותקנים, מכשירי adb עשויים להפעיל בקשה במכשיר לאשר ניפוי באגים ב-USB.

  • התקנה של sl4a.apk באמצעות $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • מוודאים שהטלפונים מחוברים לשרת הבדיקה באמצעות חיבור USB 2.0.

  • הבדיקות האלה תלויות ברשתות סלולריות, לכן חשוב להכניס כרטיסי SIM לטלפונים ולהשאיר את הטלפונים באזור שבו יש שירות סלולרי טוב.

  • מוסיפים את כל כרטיסי ה-SIM לקובץ JSON כפי שמתואר בקטע כתיבה של קובץ תצורה.

הגדרת הסביבה

לפני הגדרת הסביבה, חשוב לוודא ש-Python מגרסה 3.4 ואילך מותקן.

הפעלה:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

התקנת ACTS

מריצים את הפקודה:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

כדי לאמת את ההתקנה, מריצים את הפקודה act.py -h, שמציגה רשימה של הפקודות הזמינות.

כתיבת קובץ תצורה

כדי להריץ בדיקות, עליך ליצור קובץ עם פרטי תצורה. דוגמה לקובץ .config. קובץ דומה זמין במאגר Android בקטע tools/test/connectivity/acts/framework/sample_config.json. מחליפים את XXXXXXX במספרים הסידוריים של המכשירים כדי לספק את המידע המינימלי שדרוש ל-ACTS כדי להריץ בדיקת טלפון.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

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

מפתח ערך
_description מגיבים על התוכן של קובץ התצורה כולו
testbed מפרט סביבה שבה ניתן להריץ בדיקות
(testbed) _description מומלץ להוסיף הערה לכל מצע בדיקה, כי תוכנית ACTS יכולה לטרגט מצע בדיקה ספציפי
(testbed) name השם של מיטת הבדיקה לקריאה משורת הפקודה
(testbed) AndroidDevice רשימה של מכשירים ספציפיים שהבדיקה מטרגטת
הערה: יכולים להופיע בו מספר מכשירים. בדיקה שמפעילה שני טלפונים שמתקשרים זה לזה מצפה לכך שיהיו שני מכשירים, והיא נכשלת אם יש פחות מכך. אם יש שני מכשירים ברשימה והבדיקה מצפה למכשיר אחד בלבד, הבדיקה תופעל במכשיר הראשון.
(testbed)(AndroidDevice) serial המספר הסידורי של המכשיר (מודפס מ-adb devices)
(testbed)(AndroidDevice) adb_logcat_param פרמטרים שמועברים כשמפעילים את adb logcat במהלך הבדיקה
logpath המיקום בשרת הבדיקה שבו היומנים נשמרים
testpaths המיקום של קוד מקרה הבדיקה
sim_conf_file המיקום של הקובץ .json שכולל את כרטיסי ה-SIM הזמינים
הרשימה של כרטיסי ה-SIM כוללת את מזהה הכרטיס, היכולות של הכרטיס, המפעיל ומספר הטלפון.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

אפשר לשלוף את מספר הטלפון מהמכשיר בקטע מערכת > מידע על הטלפון. בדרך כלל, מזהה כרטיס ה-SIM מודפס על כרטיס ה-SIM, או זמין במכשיר בקטע מערכת > מידע על הטלפון > סטטוס כרטיס ה-SIM. מגדירים את מחרוזת האופרטור ב-tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py, ואז מחפשים את CARRIER_.

אפשרויות הגדרה נוספות

בקובץ entries.py שנמצא ב-tools/test/connectivity/acts/framework/acts/config/entries.py במאגר של Android יש הגדרות של אפשרויות תצורה עיקריות בשורת הפקודה.

אפשר גם למצוא בקוד פרמטרים ספציפיים לבדיקה על ידי חיפוש הערך self.user_params.get.

הרצת בדיקות

מריצים בדיקות משורת הפקודה אחרי שכותבים את קובץ התצורה. יש הרבה אפשרויות, אבל האפשרות הפשוטה ביותר היא להשתמש ב--c filename.config -tc TestCase:name. בדוגמה הזו נעשה שימוש בקובץ תצורה בשם minimum.config:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

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

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

הרצת מספר בדיקות

כדי להריץ תרחישי בדיקה ספציפיים במספר קבצים, יוצרים קובץ בדיקה ומעבירים אותו עם הדגל -tf , כפי שמוצג בחבילת בדיקות הרגרסיה לדוגמה:

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

הפקודה בדוגמה הזו מבוססת על ההנחה ששם הקובץ הוא regression_suite.

act.py -c minimum.config -tf regression_suite

הרצת בדיקות כמה פעמים

כדי להריץ מקרה בדיקה (-tc) או קובץ בדיקה (-tf) כמה פעמים, צריך להוסיף את -ti # (גרסאות בדיקה) לפקודה.