Complete Automotive Tests in a Box (CATBox) เป็นแพ็กเกจโอเพนซอร์สที่ มีเฟรมเวิร์กและเครื่องมือที่จำเป็นในการเพิ่มประสิทธิภาพและเรียกใช้การทดสอบยานยนต์ โดยมีการกำหนดค่าขั้นต่ำ CATBox ปรับขนาดได้และเข้ากันได้กับเครื่องมือ โครงสร้างพื้นฐาน และการทดสอบที่คุณใช้เพื่อทดสอบและตรวจสอบการติดตั้งใช้งาน Android Automotive OS (AAOS) ด้วยเหตุนี้ คุณจึงสามารถนำเสนอผลิตภัณฑ์คุณภาพสูง ในมาร์เก็ตเพลสได้
การออกแบบและการติดตั้งใช้งาน CATBox
ชุดโปรแกรมทดสอบ CATBox มีเครื่องมือ เฟรมเวิร์ก และการทดสอบที่จำเป็นต่อการเรียกใช้การทดสอบฟังก์ชันการทำงานและประสิทธิภาพในอุปกรณ์เป้าหมายยานยนต์และขณะใช้อุปกรณ์ที่ใช้ร่วมกัน
รูปภาพต่อไปนี้แสดงการออกแบบระดับสูงของแพ็กเกจ CATBox
รูปที่ 1 แพ็กเกจ CATBox
Tradefed
Tradefed เป็นเฟรมเวิร์กการทดสอบอย่างต่อเนื่องแบบโอเพนซอร์สที่ใช้ในการเรียกใช้การทดสอบบนอุปกรณ์ Android โปรดดูรายละเอียดในภาพรวมสหพันธ์การค้า
เฟรมเวิร์กการทดสอบยานยนต์
CATBox สร้างขึ้นจากเฟรมเวิร์กการทดสอบยานยนต์ที่ชื่อ Spectatio ซึ่งมี API สำหรับการทดสอบแอปต่างๆ ในอุปกรณ์ยานยนต์ สร้างขึ้นบนUI Automator ซึ่งเป็นเฟรมเวิร์กการทดสอบแบบโอเพนซอร์สที่มีชุด API สำหรับสร้างการทดสอบ UI ที่โต้ตอบกับแอปพลิเคชันของผู้ใช้และระบบ
ดาวน์โหลดชุดโปรแกรมทดสอบ CATBox
Android 14
Android Automotive 14 เป็นรุ่นที่เปิดตัว โค้ดชื่อ U ซึ่งเป็นเหตุการณ์สำคัญในการพัฒนา ใช้ลิงก์ต่อไปนี้เพื่อดาวน์โหลด ชุดการทดสอบ CATBox สำหรับ Android 14
Android 12
Android 12 เป็นรุ่นที่พัฒนาตามเป้าหมาย ซึ่งมีชื่อรหัสว่า S ใช้ลิงก์ต่อไปนี้เพื่อดาวน์โหลดชุดทดสอบ CATBox สำหรับ Android 12
Android 11
Android 11 เป็นรุ่นที่เผยแพร่ตามเป้าหมายการพัฒนาที่มีชื่อรหัสว่า R ใช้ลิงก์ต่อไปนี้เพื่อดาวน์โหลดชุดการทดสอบ CATBox สำหรับ Android 11
สร้าง CATBox
ใช้catboxคำสั่ง build เมื่อโค้ด Android AOSP พร้อมใช้งานใน
เวิร์กสเตชันในเครื่อง
วิธีสร้างแพ็กเกจ CATBox ในเครื่อง
เลือกเป้าหมายอุปกรณ์ตามสถาปัตยกรรมของอุปกรณ์ แล้วเรียกใช้คำสั่งต่อไปนี้
lunch <target>หากต้องการสร้าง CATBox ให้เรียกใช้คำสั่งต่อไปนี้
make catboxคำสั่งนี้จะสร้างไฟล์
android-catbox.zipในไดเรกทอรี/out/host/linux-x86/catboxซึ่งใช้เพื่อเรียกใช้การทดสอบได้
ตั้งค่าสภาพแวดล้อม
การตั้งค่าสภาพแวดล้อมที่จำเป็นต่อการเรียกใช้การทดสอบ CATBox จะคล้ายกับการตั้งค่า CTS หากต้องการตั้งค่า สภาพแวดล้อม ให้ทํางานแต่ละอย่างต่อไปนี้ให้เสร็จสมบูรณ์
ติดตั้ง ADB และ AAPT
ติดตั้ง JDK ดูชุดพัฒนา Java สำหรับ Ubuntu
เพิ่มขีดจำกัดหน่วยความจำ ดูข้อกำหนดด้านพื้นที่เก็บข้อมูล
ตั้งค่าและเรียกใช้ CATBox
ใช้เฟรมเวิร์กการทดสอบ Tradefed เพื่อเรียกใช้การทดสอบในอุปกรณ์ Android โปรดดูภาพรวมของสหพันธ์การค้าก่อนตั้งค่า CATBox
หากต้องการตั้งค่าและเรียกใช้ CATBox โปรดดูส่วนต่างๆ ด้านล่าง
ตั้งค่าอุปกรณ์
ก่อนเรียกใช้แผนการทดสอบ ให้ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าอุปกรณ์
ตรวจสอบว่าคุณได้ติดตั้งทั้ง Android Debug Bridge (adb) และ Android Asset Packaging Tool (AAPT) เวอร์ชันล่าสุดแล้ว รวมถึงได้เพิ่มตำแหน่งของเครื่องมือเหล่านี้ลงในเส้นทางของระบบในเครื่อง ของคุณ ดูรายละเอียดได้ที่ ADB และ AAPT
เชื่อมต่ออุปกรณ์อย่างน้อย 1 เครื่องและเตรียมอุปกรณ์ภายใต้การทดสอบ (DUT) ดังนี้
หากต้องการรีเซ็ตอุปกรณ์ยานยนต์เป็นค่าเริ่มต้น ให้ไปที่การตั้งค่า > ระบบ > ตัวเลือกการรีเซ็ต > ลบข้อมูลทั้งหมด
รอให้อุปกรณ์รีสตาร์ทโดยอัตโนมัติ
ตรวจสอบว่าเปิดใช้ adb แล้ว หากต้องการยืนยันว่าอุปกรณ์พร้อมใช้งาน ให้เรียกใช้ คำสั่งต่อไปนี้
adb devicesหากต้องการเปิดใช้รูท ให้เรียกใช้คำสั่งต่อไปนี้
adb -s DEVICE_SERIAL rootแทนที่
DEVICE_SERIALด้วยรหัสซีเรียลของ อุปกรณ์ยานยนต์เชื่อมต่อ Wi-Fi
แตกไฟล์แพ็กเกจ CATBox
หลังจากตั้งค่าอุปกรณ์แล้ว ให้แตกไฟล์แพ็กเกจ CATBox และไปที่โฟลเดอร์ที่แตกออกมาโดยทำดังนี้
unzip android-catbox.zip
cd android-catboxทำการทดสอบใน CATBox
วิธีเรียกใช้ CATBox ด้วยแผนการทดสอบในแพ็กเกจ CATBox
./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIALแทนที่ DEVICE_SERIAL ด้วยรหัสซีเรียลของ
อุปกรณ์ยานยนต์ หากคุณมีอุปกรณ์หลายเครื่องที่เชื่อมต่อกับเครื่องโฮสต์
ให้ใช้ DEVICE_SERIAL เพื่อแยกความแตกต่าง แทนที่
TEST_PLAN_NAME ด้วยชื่อแผนการทดสอบที่ต้องการ
เรียกใช้
หากต้องการดูรายการแพ็กเกจที่มีให้ใช้งานที่สมบูรณ์ที่สุด ให้ใช้บรรทัดคำสั่ง
./tools/catbox-tradefed list plans | grep -i catboxประเภทแผนการทดสอบ
ตารางต่อไปนี้แสดงแผนการทดสอบฟังก์ชันการทำงานที่ใช้ได้
| แผนการทดสอบฟังก์ชัน | คำอธิบาย |
|---|---|
catbox-functional |
การทดสอบฟังก์ชัน |
catbox-functional-app-info-setting |
การทดสอบฟังก์ชันการทำงานของการตั้งค่าข้อมูลแอป |
catbox-functional-admin-user-grant-permissions |
การทดสอบการทำงานของการให้สิทธิ์แก่ผู้ใช้ที่เป็นผู้ดูแลระบบ |
catbox-functional-app-info-setting-ui-elements |
การทดสอบฟังก์ชันการทำงานของการตั้งค่าข้อมูลแอป |
catbox-functional-appgrid |
การทดสอบฟังก์ชันของตารางกริดแอป |
catbox-functional-base |
รายการทดสอบฟังก์ชัน |
catbox-functional-bluetooth-audio |
การทดสอบการทำงานของเสียงบลูทูธ |
catbox-functional-bluetooth-palette |
การทดสอบการทำงานของแถบสถานะ |
catbox-functional-bluetooth-tests |
การทดสอบบลูทูธโดยใช้ Mobly |
catbox-functional-brightness-palette |
การทดสอบการทำงานของแถบสถานะ |
catbox-functional-btmoped |
การทดสอบการทำงานที่ใช้รถจักรยานยนต์ไฟฟ้าที่ใช้บลูทูธ |
catbox-functional-date-time-setting |
การทดสอบฟังก์ชันการตั้งค่าวันที่และเวลา |
catbox-functional-dial |
การทดสอบการทำงานของการโทร |
catbox-functional-display-setting |
การทดสอบฟังก์ชันการทำงานของการตั้งค่าการแสดงผล |
catbox-functional-driving-optimized-apps |
การทดสอบฟังก์ชันการทำงานของข้อจำกัด UX |
catbox-functional-enable-developers-option |
เปิดใช้การทดสอบฟังก์ชันการทำงานของตัวเลือกสำหรับนักพัฒนาแอป |
catbox-functional-home |
การทดสอบการทำงานของบ้าน |
catbox-functional-lock-screen |
การทดสอบการทำงานของหน้าจอล็อก |
catbox-functional-mediacenter |
การทดสอบการทำงานของ Media Center |
catbox-functional-microphone-recent-apps |
การทดสอบการทำงานของการตั้งค่าไมโครโฟน |
catbox-functional-microphone-setting |
การทดสอบการทำงานของการตั้งค่าไมโครโฟน |
catbox-functional-multiuser |
การทดสอบการทำงานแบบหลายผู้ใช้ |
catbox-functional-multiuser-system-user |
การทดสอบการทำงานแบบหลายผู้ใช้ |
catbox-functional-navigation-bar |
การทดสอบการทำงานของแถบนำทาง |
catbox-functional-network-palette |
การทดสอบการทำงานของแถบสถานะ |
catbox-functional-network-setting |
การทดสอบฟังก์ชันการตั้งค่าเครือข่าย |
catbox-functional-notification |
การทดสอบการทำงานของการแจ้งเตือน |
catbox-functional-privacy-permission-manager |
การทดสอบฟังก์ชันการทำงานของการตั้งค่าสิทธิ์ของแอปด้านความเป็นส่วนตัว |
catbox-functional-privacy-setting |
การทดสอบการทำงานของการตั้งค่าไมโครโฟน |
catbox-functional-privacy-setting-ui-elements |
การทดสอบฟังก์ชันการตั้งค่าความเป็นส่วนตัว |
catbox-functional-profile-icon |
การทดสอบการทำงานของแถบไอคอนโปรไฟล์ |
catbox-functional-profiles-icon-list |
การทดสอบรายการไอคอนโปรไฟล์ |
catbox-functional-security-setting |
การทดสอบฟังก์ชันการทำงานของการตั้งค่าความปลอดภัย |
catbox-functional-setting |
การตั้งค่าการทดสอบฟังก์ชัน |
catbox-functional-settings-location |
การตั้งค่าการทดสอบตำแหน่ง |
catbox-functional-sound-setting |
การทดสอบการทำงานของการตั้งค่าเสียง |
catbox-functional-status-bar |
การทดสอบการทำงานของแถบสถานะ |
catbox-functional-storage-setting |
การทดสอบฟังก์ชันการตั้งค่าพื้นที่เก็บข้อมูล |
catbox-functional-system-setting |
การทดสอบการทำงานของการตั้งค่าระบบ |
catbox-functional-systemui |
การทดสอบ UI ของระบบ |
catbox-functional-ux-restriction |
การทดสอบฟังก์ชันการทำงานของข้อจำกัด UX |
catbox-functional-ux-restriction-facet-bar |
การทดสอบฟังก์ชันการทำงานของข้อจำกัด UX |
ตารางต่อไปนี้แสดงแผนการทดสอบประสิทธิภาพของ CATBox
| แผนการทดสอบประสิทธิภาพ | คำอธิบาย |
|---|---|
catbox-performance-cold-app-start-up-dialer |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบเย็นสำหรับ Dialer และโทรศัพท์ |
catbox-performance-cold-app-start-up-mediacenter |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Cold Start สำหรับ Media Center |
catbox-performance-cold-app-start-up-settings |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบเย็นสำหรับการตั้งค่า |
catbox-performance-create-and-switch-to-new-guest |
วัดเวลาในการตอบสนองเพื่อเปลี่ยนไปใช้แขกรับเชิญคนใหม่ |
catbox-performance-create-and-switch-to-new-user |
วัดเวลาในการตอบสนองเพื่อเปลี่ยนไปใช้ผู้ใช้ใหม่ที่ไม่ใช่ผู้ดูแลระบบ |
catbox-performance-hot-app-start-up-dialer |
การทดสอบประสิทธิภาพการเริ่มต้นแอปที่ใช้งานบ่อยสำหรับ Dialer และโทรศัพท์ |
catbox-performance-hot-app-start-up-mediacenter |
การทดสอบประสิทธิภาพการเริ่มต้นแอปที่ใช้งานบ่อยสำหรับ Media Center |
catbox-performance-hot-app-start-up-settings |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบร้อนสำหรับการตั้งค่า |
catbox-performance-jank-appgrid |
การทดสอบประสิทธิภาพสำหรับ Appgrid |
catbox-performance-jank-contact-list |
การทดสอบประสิทธิภาพสำหรับรายชื่อติดต่อ |
catbox-performance-jank-media |
การทดสอบประสิทธิภาพสำหรับสื่อ |
catbox-performance-jank-media-switch-playback |
การทดสอบประสิทธิภาพสำหรับการเล่นการสลับสื่อ |
catbox-performance-jank-notifications |
การทดสอบประสิทธิภาพสำหรับการแจ้งเตือน |
catbox-performance-jank-settings |
การทดสอบประสิทธิภาพสำหรับการตั้งค่า |
catbox-performance-switch-to-existing-user |
วัดเวลาในการตอบสนองเพื่อเปลี่ยนไปใช้ผู้ใช้ที่มีอยู่ |
เรียกใช้การทดสอบฝั่งโฮสต์แบบหลายอุปกรณ์
การดำเนินการทดสอบฝั่งโฮสต์แบบหลายอุปกรณ์จะใช้ CATBox เพื่อเรียกใช้การทดสอบ
ในเซสชันเดียว เช่น BTDiscoveryTest
make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTestCATBox จะติดตั้ง apk จากนั้นจะเรียกใช้การทดสอบในสภาพแวดล้อมการดำเนินการ Python ที่ถูกต้อง
ตรวจสอบผลการทดสอบ CATBox
ระบบจะบันทึกผลลัพธ์ของการทดสอบฟังก์ชันการทํางานและประสิทธิภาพไว้ใน
android-catbox/results/latest
| ประเภทผลลัพธ์ | ตำแหน่ง |
|---|---|
| ผลการทดสอบ | test_result.xml |
| รายละเอียดการทดสอบความล้มเหลว | test_result_failures_suite.html |
| ผลลัพธ์ของเมตริกประสิทธิภาพ | /report-log-files/CatboxPerformanceTests.reportlog.json |
| การทดสอบการทำงานและประสิทธิภาพ | /android-catbox/logs/latest |