ชุดทดสอบการสื่อสารสำหรับ 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
#
(การทดสอบซ้ำ) ลงในคําสั่ง