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

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

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

ข้อกำหนดเบื้องต้น

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

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

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

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

การตรวจสอบบิลด์ userdebug บนอุปกรณ์

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

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

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

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

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