Bir Kutuda Otomotiv Testlerini Tamamlayın

Complete Automotive Tests in a Box (CATBox), otomotiv testlerini en az yapılandırmayla kolaylaştırmak ve yürütmek için gereken çerçeveleri ve araçları sağlayan bir açık kaynak paketidir. CATBox, Android Automotive OS (AAOS) uygulamalarınızı test edip doğrulamak için kullandığınız araçlar, altyapı ve testlerle uyumlu ve ölçeklenebilir bir çözümdür. Bu sayede, pazar yerine yüksek kaliteli ürünler sunabilirsiniz.

CATBox tasarımı ve uygulaması

CATBox test paketi, bir otomotiv hedef cihazında ve eşlik eden bir 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, CATBox paketinin üst düzey tasarımı gösterilmektedir.

CATBox

1. şekil. CATBox paketi

Tradefed

Tradefed, Android cihazlarda testleri yürütmek 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ında çeşitli uygulamaları test etmek için API'ler sağlayan Spectatio adlı bir Automotive test çerçevesine dayanmaktadır. Kullanıcı ve sistem uygulamalarıyla etkileşim kuran kullanıcı arayüzü testleri oluşturmak için bir dizi API sağlayan açık kaynaklı bir test çerçevesi olan UI Automator'ın üzerine kurulmuştur.

CATBox test paketi indirmeleri

Android 14

Android Automotive 14, U kod adlı geliştirme aşamasının yayınlanması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 yayınlanması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 yayınlanmasıdır. Android 11 için CATBox test paketlerini indirmek üzere aşağıdaki bağlantıları kullanın:

Build CATBox

Android AOSP kodu yerel iş istasyonunda kullanılabilir hale geldikten sonra catbox derleme komutunu kullanın.

CATBox paketini yerel olarak oluşturmak için:

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

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

    make catbox

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

Ortamı ayarlama

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

CATBox'ı kurma ve çalıştırma

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

CATBox'ı 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ı ayarlamak için aşağıdaki adımları tamamlayın:

  1. Android Debug Bridge (adb) ve Android Asset Packaging Tool (AAPT) araçlarının 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 edilecek 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'u 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 çıkarın

Cihazı kurduktan sonra CATBox paketini açın ve çıkarılan klasöre gidin:

unzip android-catbox.zip
cd android-catbox

CATBox'ta testleri yürütme

CATBox'ı 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 kullanın. TEST_PLAN_NAME yerine çalıştırmak istediğiniz test planının adını yazın.

Mevcut planların en kapsamlı 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, kullanılabilen işlevsel test planları gösterilmektedir.

İşlevsel test planları Açıklama
catbox-functional İşlevsel testler.
catbox-functional-app-info-setting Uygulama bilgisi ayarı işlevsel testleri.
catbox-functional-admin-user-grant-permissions Yönetici kullanıcının izin verme işlevsel testleri.
catbox-functional-app-info-setting-ui-elements Uygulama bilgisi ayarı işlevsel testleri.
catbox-functional-appgrid Uygulama ızgarası 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 kullanılarak yapılan 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 Çevirme işlevsel testleri.
catbox-functional-display-setting Görüntü 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 Evde yapılan işlevsel testler.
catbox-functional-lock-screen Kilit ekranı işlevsel testleri.
catbox-functional-mediacenter Medya Merkezi 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 izni 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 liste testleri.
catbox-functional-security-setting Güvenlik ayarı işlevsel testleri.
catbox-functional-setting İşlevsel testleri ayarlama.
catbox-functional-settings-location Konum testlerini ayarlama.
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 Çevirici ve Telefon için soğuk uygulama başlatma performansı testi.
catbox-performance-cold-app-start-up-mediacenter Medya Merkezi için soğuk uygulama başlatma performans testi.
catbox-performance-cold-app-start-up-settings Ayarlar için soğuk uygulama başlatma performans testi.
catbox-performance-create-and-switch-to-new-guest Yeni konuğa geçiş için gecikmeyi ölçün.
catbox-performance-create-and-switch-to-new-user Yeni bir yönetici olmayan kullanıcıya geçiş için gecikmeyi ölçün.
catbox-performance-hot-app-start-up-dialer Çevirici ve Telefon için sıcak uygulama başlatma performansı testi.
catbox-performance-hot-app-start-up-mediacenter Medya Merkezi için hızlı uygulama 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 değiştirme 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çiş yaparken gecikmeyi ölçün.

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

Çok cihazlı ana makine tarafı testlerinin yürütülmesinde, testi tek bir oturumda çalıştırmak için CATBox kullanılı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 öğesini 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

İşlevsel ve performans testlerinin sonuçları android-catbox/results/latest konumuna kaydedilir.

Sonuç türü Konum
Test sonuçları test_result.xml
Arıza testi ayrıntıları test_result_failures_suite.html
Performans metriği sonuçları /report-log-files/CatboxPerformanceTests.reportlog.json
İşlevsel ve performans testleri çalıştırma /android-catbox/logs/latest