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