ทำการทดสอบยานยนต์ให้เสร็จสิ้นได้ในกล่อง

Complete Automotive Tests in a Box (CATBox) เป็นแพ็กเกจโอเพนซอร์สที่ มีเฟรมเวิร์กและเครื่องมือที่จำเป็นในการเพิ่มประสิทธิภาพและเรียกใช้การทดสอบยานยนต์ โดยมีการกำหนดค่าขั้นต่ำ CATBox ปรับขนาดได้และเข้ากันได้กับเครื่องมือ โครงสร้างพื้นฐาน และการทดสอบที่คุณใช้เพื่อทดสอบและตรวจสอบการติดตั้งใช้งาน Android Automotive OS (AAOS) ด้วยเหตุนี้ คุณจึงสามารถนำเสนอผลิตภัณฑ์คุณภาพสูง ในมาร์เก็ตเพลสได้

การออกแบบและการติดตั้งใช้งาน CATBox

ชุดโปรแกรมทดสอบ 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 ในเครื่อง

  1. เลือกเป้าหมายอุปกรณ์ตามสถาปัตยกรรมของอุปกรณ์ แล้วเรียกใช้คำสั่งต่อไปนี้

    lunch <target>
  2. หากต้องการสร้าง CATBox ให้เรียกใช้คำสั่งต่อไปนี้

    make catbox

    คำสั่งนี้จะสร้างไฟล์ android-catbox.zip ในไดเรกทอรี /out/host/linux-x86/catbox ซึ่งใช้เพื่อเรียกใช้การทดสอบได้

ตั้งค่าสภาพแวดล้อม

การตั้งค่าสภาพแวดล้อมที่จำเป็นต่อการเรียกใช้การทดสอบ CATBox จะคล้ายกับการตั้งค่า CTS หากต้องการตั้งค่า สภาพแวดล้อม ให้ทํางานแต่ละอย่างต่อไปนี้ให้เสร็จสมบูรณ์

ตั้งค่าและเรียกใช้ CATBox

ใช้เฟรมเวิร์กการทดสอบ Tradefed เพื่อเรียกใช้การทดสอบในอุปกรณ์ Android โปรดดูภาพรวมของสหพันธ์การค้าก่อนตั้งค่า CATBox

หากต้องการตั้งค่าและเรียกใช้ CATBox โปรดดูส่วนต่างๆ ด้านล่าง

ตั้งค่าอุปกรณ์

ก่อนเรียกใช้แผนการทดสอบ ให้ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าอุปกรณ์

  1. ตรวจสอบว่าคุณได้ติดตั้งทั้ง Android Debug Bridge (adb) และ Android Asset Packaging Tool (AAPT) เวอร์ชันล่าสุดแล้ว รวมถึงได้เพิ่มตำแหน่งของเครื่องมือเหล่านี้ลงในเส้นทางของระบบในเครื่อง ของคุณ ดูรายละเอียดได้ที่ ADB และ AAPT

  2. เชื่อมต่ออุปกรณ์อย่างน้อย 1 เครื่องและเตรียมอุปกรณ์ภายใต้การทดสอบ (DUT) ดังนี้

    1. หากต้องการรีเซ็ตอุปกรณ์ยานยนต์เป็นค่าเริ่มต้น ให้ไปที่การตั้งค่า > ระบบ > ตัวเลือกการรีเซ็ต > ลบข้อมูลทั้งหมด

    2. รอให้อุปกรณ์รีสตาร์ทโดยอัตโนมัติ

    3. ตรวจสอบว่าเปิดใช้ adb แล้ว หากต้องการยืนยันว่าอุปกรณ์พร้อมใช้งาน ให้เรียกใช้ คำสั่งต่อไปนี้

      adb devices
    4. หากต้องการเปิดใช้รูท ให้เรียกใช้คำสั่งต่อไปนี้

      adb -s DEVICE_SERIAL root

      แทนที่ DEVICE_SERIAL ด้วยรหัสซีเรียลของ อุปกรณ์ยานยนต์

    5. เชื่อมต่อ 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 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