ชุดทดสอบ 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 #
(การทดสอบวนซ้ำ) เข้ากับคำสั่ง