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

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 เมื่อโค้ด AOSP ของ Android พร้อมใช้งานในเวิร์กสเตชันในเครื่องแล้ว

วิธีสร้างแพ็กเกจ 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

หลังจากตั้งค่าอุปกรณ์แล้ว ให้แตกไฟล์ 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