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 | การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Hot สำหรับการตั้งค่า | 
| 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 |