การทดสอบโทรศัพท์ 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 จะอนุญาตให้เรียกใช้เชลล์ adb เป็นรูท (เทอร์มินัล #)

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

หากต้องการสร้างและติดตั้ง Scripting Layer สำหรับ Android (SL4A) ให้ทำตามวิธีการใน Scripting Layer สำหรับ 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 ข้อกําหนดของสภาพแวดล้อมที่การทดสอบทํางานได้
(testbed) _description แสดงความคิดเห็นในแท่นทดสอบแต่ละแท่น เนื่องจาก ACTS สามารถกําหนดเป้าหมายแท่นทดสอบแต่ละแท่นได้
(testbed) name ชื่อของแท่นทดสอบสำหรับการเรียกใช้จากบรรทัดคำสั่ง
(testbed) AndroidDevice รายการอุปกรณ์ที่เฉพาะเจาะจงซึ่งการทดสอบกำหนดเป้าหมายไปที่
หมายเหตุ: อุปกรณ์ที่แสดงอาจมีหลายรายการ การทดสอบที่เรียกใช้โทรศัพท์ที่โทรหากันจะคาดหวังว่าจะมีอุปกรณ์ 2 เครื่องและจะดำเนินการไม่สำเร็จหากมีอุปกรณ์น้อยกว่านั้น หากมีอุปกรณ์ 2 เครื่องแสดงอยู่ในรายการและการทดสอบต้องการอุปกรณ์เพียงเครื่องเดียว ระบบจะเรียกใช้การทดสอบในอุปกรณ์เครื่องแรก
(testbed)(AndroidDevice) serial หมายเลขซีเรียลของอุปกรณ์ (พิมพ์จาก adb devices)
(ทดสอบแล้ว)(AndroidDevice) 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

ทำการทดสอบหลายรายการ

หากต้องการเรียกใช้ชุดทดสอบที่เฉพาะเจาะจงในหลายไฟล์ ให้สร้างไฟล์ทดสอบและส่งผ่านพร้อมกับ Flag -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 # (การทดสอบซ้ำ) ลงในคําสั่ง