ทำการทดสอบยานยนต์ในกล่องเดียว

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

การออกแบบและการใช้งาน CATBox

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

รูปภาพต่อไปนี้แสดงการออกแบบระดับสูงของแพ็คเกจ CATBox

CATBox

รูปที่ 1 แพ็คเกจ CATBox

ซื้อขายแล้ว

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

กรอบการทดสอบยานยนต์

CATBox ขึ้นอยู่กับเฟรมเวิร์กการทดสอบยานยนต์ที่เรียกว่า Spectatio ซึ่งมี API สำหรับการทดสอบแอปต่างๆ บนอุปกรณ์ยานยนต์ มันถูกสร้างขึ้นบน UI Automator ซึ่งเป็นเฟรมเวิร์กการทดสอบโอเพ่นซอร์สที่ให้ชุด API เพื่อสร้างการทดสอบ UI ที่โต้ตอบกับผู้ใช้และแอปพลิเคชันระบบ

ดาวน์โหลดชุดทดสอบ CATBox

แอนดรอยด์ 14

Android Automotive 14 เป็นการเปิดตัวของหลักชัยสำคัญในการพัฒนาที่มีชื่อรหัสว่า U ใช้ลิงก์ต่อไปนี้เพื่อดาวน์โหลดชุดทดสอบ CATBox สำหรับ Android 14:

แอนดรอยด์ 12

Android 12 เป็นการเปิดตัวของหลักชัยสำคัญในการพัฒนาที่มีชื่อรหัสว่า S ใช้ลิงก์ต่อไปนี้เพื่อดาวน์โหลดชุดทดสอบ CATBox สำหรับ Android 12:

แอนดรอยด์ 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. เชื่อมต่ออุปกรณ์อย่างน้อยหนึ่งเครื่องและเตรียมอุปกรณ์ภายใต้การทดสอบ (DUT) ดังนี้:

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

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

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

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

      adb -s DEVICE_SERIAL root
      

      แทนที่ DEVICE_SERIAL ด้วย Serial ID สำหรับอุปกรณ์ในรถยนต์

    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 ด้วย Serial ID สำหรับอุปกรณ์ในรถยนต์ หากคุณมีอุปกรณ์หลายเครื่องเชื่อมต่อกับเครื่องโฮสต์ ให้ใช้ 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 การทดสอบการทำงานของเสียง Bluetooth
catbox-functional-bluetooth-palette การทดสอบการทำงานของแถบสถานะ
catbox-functional-bluetooth-tests การทดสอบบลูทูธโดยใช้ Mobly
catbox-functional-brightness-palette การทดสอบการทำงานของแถบสถานะ
catbox-functional-btmoped การทดสอบการทำงานโดยใช้ Bluetooth 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 การทดสอบประสิทธิภาพการเริ่มต้นแอปเย็นสำหรับ Dialer และ Phone
catbox-performance-cold-app-start-up-mediacenter การทดสอบประสิทธิภาพการเริ่มต้นแอปเย็นสำหรับ 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 และ Phone
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