Bir Kutuda Otomotiv Testlerini Tamamlayın

Complete Automotive Tests in a Box (CATBox), otomotiv testlerini minimum yapılandırmayla kolaylaştırmak ve yürütmek için gereken çerçeveleri ve araçları sağlayan açık kaynak bir pakettir. CATBox ölçeklenebilirdir ve Android Automotive OS (AAOS) uygulamalarınızı test etmek ve doğrulamak için kullandığınız araçlar, altyapı ve testlerle uyumludur. Sonuç olarak, pazar yerine yüksek kaliteli ürünler sunabilirsiniz.

CATBox tasarımı ve uygulaması

CATBox test paketi, otomotiv hedef cihazda ve tamamlayıcı cihaz kullanılırken işlevsel ve performans testleri yürütmek için gereken araçları, çerçeveleri ve testleri sağlar.

Aşağıdaki resimde, bir CATBox paketinin üst düzey tasarımı gösterilmektedir.

CATBox

Şekil 1. CATBox paketi

Tradefed

Tradefed, Android cihazlarda test çalıştırmak için kullanılan açık kaynaklı bir sürekli test çerçevesidir. Ayrıntılar için Ticaret Federasyonu'na Genel Bakış başlıklı makaleyi inceleyin.

Otomotiv test çerçevesi

CATBox, otomotiv cihazlarındaki çeşitli uygulamaları test etmek için API'ler sağlayan Spectatio adlı bir otomotiv test çerçevesine dayanır. Kullanıcı ve sistem uygulamalarıyla etkileşime giren kullanıcı arayüzü testleri oluşturmak için bir API grubu sağlayan açık kaynak bir test çerçevesi olan UI Automator'un üzerine inşa edilmiştir.

CATBox test paketi indirmeleri

Android 14

Android Automotive 14, U kod adlı geliştirme aşamasının sürümüdür. Android 14 için CATBox test paketlerini indirmek üzere aşağıdaki bağlantıları kullanın:

Android 12

Android 12, S kod adlı geliştirme aşamasının sürümüdür. Android 12 için CATBox test paketlerini indirmek üzere aşağıdaki bağlantıları kullanın:

Android 11

Android 11, R kod adlı geliştirme aşamasının sürümüdür. Android 11 için CATBox test paketlerini indirmek üzere aşağıdaki bağlantıları kullanın:

CATBox oluşturma

Android AOSP kodu yerel iş istasyonunda kullanılabilir hale geldiğinde catbox derleme komutunu kullanın.

CATBox paketini yerel olarak derlemek için:

  1. Cihaz mimarisine göre cihaz hedefini seçin ve aşağıdaki komutu çalıştırın:

    lunch <target>
    
  2. CATBox'u oluşturmak için aşağıdaki komutu çalıştırın:

    make catbox
    

    Bu komut, /out/host/linux-x86/catbox dizininde android-catbox.zip dosyasını oluşturur. Bu dosya daha sonra test çalıştırmak için kullanılabilir.

Ortamı ayarlama

CATBox testlerini yürütmek için gereken ortam kurulumu, CTS'yi ayarlama işlemine benzer. Ortamı ayarlamak için aşağıdaki görevlerin her birini tamamlayın:

CATBox'u ayarlama ve çalıştırma

Testleri Android cihazlarda çalıştırmak için Tradefed test çerçevesini kullanın. CATBox'u oluşturmadan önce Ticaret Federasyonu'na Genel Bakış başlıklı makaleyi inceleyin.

CATBox'u ayarlamak ve çalıştırmak için aşağıdaki bölümlere bakın.

Cihazı kurma

Test planı çalıştırmadan önce cihazınızı kurmak için aşağıdaki adımları uygulayın:

  1. Hem Android Hata Ayıklama Köprüsü (adb) hem de Android Öğe Paketleme Aracı'nın (AAPT) en son sürümlerini yüklediğinizden ve bu araçların konumunu makinenizin sistem yoluna eklediğinizden emin olun. Ayrıntılar için ADB ve AAPT başlıklı makaleyi inceleyin.

  2. En az bir cihaz bağlayın ve test edilen cihazı (DUT) aşağıdaki gibi hazırlayın:

    1. Otomotiv cihazını fabrika ayarlarına sıfırlamak için Ayarlar > Sistem > Sıfırlama Seçenekleri > Tüm verileri sil'e gidin.

    2. Cihazın otomatik olarak yeniden başlatılmasını bekleyin.

    3. adb'nin etkinleştirildiğinden emin olun. Cihazın kullanılabilir olduğunu onaylamak için aşağıdaki komutu çalıştırın:

      adb devices
      
    4. Root kullanıcısını etkinleştirmek için aşağıdaki komutu çalıştırın:

      adb -s DEVICE_SERIAL root
      

      DEVICE_SERIAL kısmını otomotiv cihazının seri kimliğiyle değiştirin.

    5. Kablosuz ağa bağlanın.

CATBox paketini ayıklama

Cihazı ayarladıktan sonra CATBox paketini açın ve ayıklanan klasöre gidin:

unzip android-catbox.zip
cd android-catbox

CATBox'ta test çalıştırma

CATBox'u CATBox paketindeki test planlarıyla çalıştırmak için:

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

DEVICE_SERIAL kısmını otomotiv cihazının seri kimliğiyle değiştirin. Ana makineye bağlı birden fazla cihazınız varsa bunları ayırt etmek için DEVICE_SERIAL simgesini kullanın. TEST_PLAN_NAME yerine, çalıştırmak istediğiniz test planının adını yazın.

Kullanılabilir planların en eksiksiz listesini almak için komut satırını kullanın:

./tools/catbox-tradefed list plans | grep -i catbox

Test planı türleri

Aşağıdaki tabloda mevcut işlevsel test planları gösterilmektedir.

İşlevsel test planları Açıklama
catbox-functional İşlevsel testler.
catbox-functional-app-info-setting Uygulama bilgileri ayarı işlevsel testleri.
catbox-functional-admin-user-grant-permissions Yönetici kullanıcı izinleri işlevsel testleri.
catbox-functional-app-info-setting-ui-elements Uygulama bilgisi ayarı işlevsel testleri.
catbox-functional-appgrid Uygulama ızgara işlevsel testleri.
catbox-functional-base İşlevsel testlerin listesi.
catbox-functional-bluetooth-audio Bluetooth ses işlevsel testleri.
catbox-functional-bluetooth-palette Durum çubuğu işlevsel testleri.
catbox-functional-bluetooth-tests Mobly'yi kullanan Bluetooth testleri.
catbox-functional-brightness-palette Durum çubuğu işlevsel testleri.
catbox-functional-btmoped Bluetooth Moped tabanlı işlevsel testler.
catbox-functional-date-time-setting Tarih ve saat ayarı işlevsel testleri.
catbox-functional-dial İşlevsel testleri çevirin.
catbox-functional-display-setting Ekran ayarı işlevsel testleri.
catbox-functional-driving-optimized-apps Kullanıcı deneyimi kısıtlaması işlevsel testleri.
catbox-functional-enable-developers-option Geliştirici seçenekleri işlevsel testlerini etkinleştirin.
catbox-functional-home Ev işlevsel testleri.
catbox-functional-lock-screen Kilit ekranı işlevsel testleri.
catbox-functional-mediacenter Media Center işlevsel testleri.
catbox-functional-microphone-recent-apps Mikrofon ayarı işlevsel testleri.
catbox-functional-microphone-setting Mikrofon ayarı işlevsel testleri.
catbox-functional-multiuser Çok kullanıcılı işlevsel testler.
catbox-functional-multiuser-system-user Çok kullanıcılı işlevsel testler.
catbox-functional-navigation-bar Gezinme çubuğu işlevsel testleri.
catbox-functional-network-palette Durum çubuğu işlevsel testleri.
catbox-functional-network-setting Ağ ayarı işlevsel testleri.
catbox-functional-notification Bildirim işlevsel testleri.
catbox-functional-privacy-permission-manager Gizlilik Uygulama İzni ayarı işlevsel testleri.
catbox-functional-privacy-setting Mikrofon ayarı işlevsel testleri.
catbox-functional-privacy-setting-ui-elements Gizlilik ayarı işlevsel testleri.
catbox-functional-profile-icon Profil simgesi çubuğu işlevsel testleri.
catbox-functional-profiles-icon-list Profil simgesi listesi testleri.
catbox-functional-security-setting Güvenlik ayarı işlevsel testleri.
catbox-functional-setting İşlevsel testleri ayarlama.
catbox-functional-settings-location Konum ayarlarını test etme.
catbox-functional-sound-setting Ses ayarı işlevsel testleri.
catbox-functional-status-bar Durum çubuğu işlevsel testleri.
catbox-functional-storage-setting Depolama ayarı işlevsel testleri.
catbox-functional-system-setting Sistem ayarı işlevsel testleri.
catbox-functional-systemui Sistem kullanıcı arayüzü testleri.
catbox-functional-ux-restriction Kullanıcı deneyimi kısıtlaması işlevsel testleri.
catbox-functional-ux-restriction-facet-bar Kullanıcı deneyimi kısıtlaması işlevsel testleri.

Aşağıdaki tabloda CATBox performans test planları listelenmiştir.

Performans testi planları Açıklama
catbox-performance-cold-app-start-up-dialer Telefon uygulaması ve Telefon için soğuk uygulama başlatma performans testi.
catbox-performance-cold-app-start-up-mediacenter Media Center için uygulamayı sıfırdan başlatma performans testi.
catbox-performance-cold-app-start-up-settings Ayarlar için uygulamanın ilk başlatılma performansı testi.
catbox-performance-create-and-switch-to-new-guest Yeni bir konuğa geçmek için gecikmeyi ölçün.
catbox-performance-create-and-switch-to-new-user Yönetici olmayan yeni bir kullanıcıya geçmek için gecikmeyi ölçün.
catbox-performance-hot-app-start-up-dialer Telefon uygulaması ve Telefon için sıcak uygulama başlatma performans testi.
catbox-performance-hot-app-start-up-mediacenter Media Center için uygulamayı sıcak başlatma performans testi.
catbox-performance-hot-app-start-up-settings Ayarlar için sıcak uygulama başlatma performans testi.
catbox-performance-jank-appgrid Appgrid için performans testi.
catbox-performance-jank-contact-list Kişiler için performans testi.
catbox-performance-jank-media Medya için performans testleri.
catbox-performance-jank-media-switch-playback Medya anahtarı oynatma için performans testi.
catbox-performance-jank-notifications Bildirimler için performans testi.
catbox-performance-jank-settings Ayarlar için performans testi.
catbox-performance-switch-to-existing-user Mevcut bir kullanıcıya geçme gecikmesini ölçün.

Çok cihazlı ana makine tarafı testini çalıştırma

Birden fazla cihazda ana makine tarafı testlerin yürütülmesi, testi tek bir oturumda çalıştırmak için CATBox'u kullanır. Örneğin, 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 dosyasını yükler ve ardından test doğru Python yürütme ortamında çalıştırılır.

CATBox test sonuçlarını inceleme

İşlevsellik ve performans testi çalıştırmalarının sonuçları android-catbox/results/latest'e kaydedilir.

Sonuç türü Konum
Test sonuçları test_result.xml
Başarısızlık testlerinin ayrıntıları test_result_failures_suite.html
Performans metriği sonuçları /report-log-files/CatboxPerformanceTests.reportlog.json
İşlevsel ve performans testi çalıştırmaları /android-catbox/logs/latest