การทดสอบโทรศัพท์ ACTS

ชุดทดสอบการสื่อสารสำหรับ Android (ACTS) ทำการทดสอบอัตโนมัติของสแต็กการเชื่อมต่อต่างๆ เช่น Wi-Fi, บลูทูธ และ บริการเครือข่ายมือถือ เครื่องมือทดสอบต้องใช้ adb และ Python เครื่องมือนี้อยู่ใน tools/test/connectivity/acts

หน้านี้จะอธิบายวิธีเรียกใช้การทดสอบโทรศัพท์พื้นฐานที่มีใน โครงการโอเพนซอร์ส Android (AOSP) สำหรับผู้ใช้ที่มีโทรศัพท์ 2 เครื่อง

สิ่งที่ต้องมีก่อน

หากต้องการเรียกใช้การทดสอบโทรศัพท์ ACTS คุณควรมีสิทธิ์เข้าถึงที่เก็บ Android เต็มรูปแบบและติดตั้งบิลด์ UserDebug ในอุปกรณ์ที่ต้องการทดสอบ

ดาวน์โหลดที่เก็บ Android

ทำตามวิธีการในดาวน์โหลดแหล่งที่มาเพื่อดาวน์โหลดที่เก็บ Android บนเครื่องที่มีการเชื่อมต่อ USB กับอุปกรณ์ที่คุณต้องการทดสอบ

  • AOSP คือฐานของโค้ดหลายกิกะไบต์ที่เติบโตอย่างต่อเนื่อง ปรับความคาดหวังของเวลาในการดาวน์โหลดให้เหมาะสม
    • หากเครื่องมีการจำกัดขนาด ให้เพิ่ม --depth=1 ลงในคำสั่ง repo init
  • หากต้องการรับข้อมูลอัปเดตเกี่ยวกับเครื่องมือ ACTS ในอนาคต ให้ไปที่ไดเรกทอรีรูทของ Android ดังนี้
    • ใช้ repo sync tools/test/connectivity
    • และ repo sync external/sl4a

ตรวจสอบบิลด์การแก้ไขข้อบกพร่องของผู้ใช้ในอุปกรณ์

ติดตั้ง Android เวอร์ชัน Userdebug ในอุปกรณ์ทดสอบ

  • สร้างที่เก็บโดยใช้วิธีการในสร้าง Android
  • แฟลชอุปกรณ์ตามที่อธิบายไว้ใน แฟลชอุปกรณ์
    • คำสั่ง adb shell getprop ro.build.type ควรแสดงผล userdebug
    • หากไม่มี ro.build.type บิลด์ userdebug อนุญาตให้เรียกใช้ a adb shell เป็นรากได้ (เทอร์มินัล #)

สร้างและติดตั้ง SL4A

หากต้องการสร้างและติดตั้ง Scripting Layer สำหรับ Android (SL4A) ให้ทำตามวิธีการในชั้นสคริปต์สำหรับ Android ส่วนการเพิ่มบิลด์ SL4A ไปยังบิลด์ Android โดยค่าเริ่มต้นนั้น คุณจะทำหรือไม่ก็ได้

หลังจากสร้าง SLA4 ข้อความบันทึกล่าสุดจะมีตำแหน่งของไฟล์ sl4a.apk ซึ่งคุณต้องติดตั้งในอุปกรณ์ทั้งหมด นี่คือตัวอย่างข้อความบันทึก

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

กำหนดค่าอุปกรณ์ที่จะทดสอบ

กำหนดค่าอุปกรณ์โดยใช้ข้อกำหนดของบิลด์/เครื่องมือ ACTS ดังต่อไปนี้

  • หากคีย์ผู้ให้บริการ ADB ไม่พร้อมใช้งาน ให้แตะป๊อปอัปเชื่อถือคอมพิวเตอร์เครื่องนี้บน 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 กับเซิร์ฟเวอร์ทดสอบ

  • การทดสอบเหล่านี้อาศัยเครือข่ายมือถือแบบสด ดังนั้นให้ใส่ซิมการ์ดในโทรศัพท์และเก็บโทรศัพท์ไว้ในพื้นที่ที่มีสัญญาณมือถือที่ดี

  • เพิ่มซิมการ์ดทั้งหมดลงในไฟล์ 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 รายการอุปกรณ์ที่เจาะจงซึ่งการทดสอบกำหนดเป้าหมาย
หมายเหตุ: มีรายการอุปกรณ์อยู่หลายเครื่อง การทดสอบที่เรียกใช้โทรศัพท์ที่โทรหากันคาดว่าจะมีอุปกรณ์ 2 เครื่องแต่จะไม่สำเร็จหากมีน้อยกว่า หากมีอุปกรณ์ 2 เครื่องอยู่ในรายการและการทดสอบคาดหวังเพียงเครื่องเดียว ระบบจะทำการทดสอบในอุปกรณ์เครื่องแรก
(ทดสอบแล้ว)(อุปกรณ์ Android) serial หมายเลขซีเรียลของอุปกรณ์ (พิมพ์จาก adb devices)
(ทดสอบแล้ว)(อุปกรณ์ Android) adb_logcat_param พารามิเตอร์ที่ส่งเมื่อมีการเรียกใช้ adb logcat ระหว่างการทดสอบ
logpath ตำแหน่งในเซิร์ฟเวอร์ทดสอบที่บันทึกบันทึก
testpaths ตำแหน่งของโค้ดกรอบการทดสอบ
sim_conf_file ตำแหน่งของไฟล์ .json ที่แสดงซิมการ์ดที่ใช้ได้
รายการซิมการ์ดประกอบด้วยรหัสของการ์ด ความสามารถของการ์ด โอเปอเรเตอร์ และหมายเลขโทรศัพท์
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

คุณสามารถดึงหมายเลขโทรศัพท์จากอุปกรณ์ได้ในระบบ > เกี่ยวกับโทรศัพท์ รหัสซิมการ์ดมักจะพิมพ์อยู่บนซิมการ์ด หรือจะดูได้จากอุปกรณ์ที่ระบบ > เกี่ยวกับโทรศัพท์ > สถานะซิม ระบุสตริงโอเปอเรเตอร์ที่ 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 # (การทำซ้ำทดสอบ) ลงในคำสั่ง