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

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

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

דרישות סף

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

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

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

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

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

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

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

יצירה והתקנה של SL4A

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

אחרי יצירת הסכם רמת השירות, הודעת היומן האחרונה תכלול את המיקום של הקובץ 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 מפרט סביבה שבה ניתן להריץ בדיקות
(נבדק) _description יש להגיב על כל בדיקת בדיקה, כי ACTS יכול לטרגט לבדיקות בדיקה ספציפיות
(נבדק) name שם ה-בדיקה לקריאה משורת הפקודה
(נבדק) 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 # (גרסאות בדיקה) לפקודה.