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 เมื่อโค้ด AOSP ของ Android พร้อมใช้งานในเวิร์กสเตชันในเครื่องแล้ว
วิธีสร้างแพ็กเกจ 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
หลังจากตั้งค่าอุปกรณ์แล้ว ให้แตกไฟล์ ZIP ของ 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 |
การทดสอบฟังก์ชันการทำงานที่อิงตาม Moped ของบลูทูธ |
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 |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Cold Start สําหรับ Dialer และโทรศัพท์ |
catbox-performance-cold-app-start-up-mediacenter |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Cold Start สําหรับ Media Center |
catbox-performance-cold-app-start-up-settings |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Cold Start สําหรับการตั้งค่า |
catbox-performance-create-and-switch-to-new-guest |
วัดเวลาในการตอบสนองเพื่อเปลี่ยนไปใช้แขกคนใหม่ |
catbox-performance-create-and-switch-to-new-user |
วัดเวลาในการตอบสนองเพื่อเปลี่ยนไปใช้ผู้ใช้ใหม่ที่ไม่ใช่ผู้ดูแลระบบ |
catbox-performance-hot-app-start-up-dialer |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Hot สำหรับ Dialer และโทรศัพท์ |
catbox-performance-hot-app-start-up-mediacenter |
การทดสอบประสิทธิภาพการเริ่มต้นแอปแบบ Hot สำหรับ Media Center |
catbox-performance-hot-app-start-up-settings |
การทดสอบประสิทธิภาพการเริ่มต้นแอปที่ร้อนแรงสําหรับการตั้งค่า |
catbox-performance-jank-appgrid |
การทดสอบประสิทธิภาพสําหรับ Appgrid |
catbox-performance-jank-contact-list |
การทดสอบประสิทธิภาพสำหรับ Contacts |
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 BTDiscoveryTest
CATBox จะติดตั้ง 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 |