CTS Doğrulayıcı'nın ana makine tarafı testlerini çalıştırma

Bu sayfada, CTS Verifier'ın (CTS-V) ana makine tarafında Android 16 QPR2 ve Android 17 testlerinin ayarlanması ve çalıştırılmasıyla ilgili talimatlar yer almaktadır. Ana makine tarafında iki tür test vardır: çok cihazlı testler (Android 17'den önce kullanıma sunulmuştur) ve etkileşimli testler (Android 17'de yeni):

  • Çok cihazlı testler, tamamen otomatik testlerdir.
  • Etkileşimli testler, yarı otomatik testlerdir ve test edilen cihazda (DUT) bazı manuel adımları uygulamanızı gerektirir.

Yeni etkileşimli testlere ek olarak, manuel aralık doğruluğu ve telekom testleri artık ana makine tarafında çok cihazlı testler olarak sunuluyor. Ayrıca, kablosuz bağlantı testleri de zorunlu.

Ana makine tarafı testlerini ayarlama

Ana makine tarafı testleri ayarlamak için aşağıdaki adımları uygulayın (çok cihazlı testler için ek kurulum gerekir):

  1. Masaüstü makinenizin CTS için işletim sistemi gereksinimlerini karşıladığını doğrulayın.

  2. adb, AAPT2 ve Python'un masaüstünüze doğru şekilde yüklendiğini doğrulamak için Masaüstü yazılımını yükleme başlıklı makalenin 2. ve 5. adımlarını uygulayın.

Yalnızca düzenleyen tarafındaki etkileşimli testleri çalıştırıyorsanız Düzenleyen tarafındaki testleri çalıştırma bölümüne geçin. Ancak çok cihazlı testler çalıştırmak istiyorsanız Ana makine tarafında çok cihazlı testler ayarlama bölümüne gidin.

Ana makine tarafında çok cihazlı testler ayarlama

Ana makine tarafında çok cihazlı testler ayarlamak için aşağıdaki adımları uygulayın:

  1. Masaüstü makinenizin CTS için işletim sistemi gereksinimlerini karşıladığını doğrulayın.

  2. adb, AAPT2 ve Python'un masaüstünüze doğru şekilde yüklendiğini doğrulamak için Masaüstü yazılımını yükleme başlıklı makalenin 2. ve 5. adımlarını uygulayın.

  3. Her biri CTS-V kurulu olan iki eşleşen DUT hazırlayın.

  4. Test türünüzün kurulum bölümüne gidin:

Testiniz bu listede yoksa Standart iki cihazlı testler ayarlama bölümüne gidin.

NFC testleri ayarlama

NFC testlerinde bir DUT ve bir PN532 NFC çipi kullanılır.

NFC testlerini ayarlamak için:

  1. PN532 NFC çipi satın alın. All-In-One PN532'yi öneririz.
  2. DUT'ta Ayarlar uygulamasına gidin.
  3. NFC'yi etkinleştirin.
  4. NFC çipini konumlandırın:

    • Telefonlar için DUT'un NFC okuyucusunu Şekil 1'de gösterildiği gibi konumlandırın:

      NFC çipinin konumu

      Şekil 1. NFC çipinin konumu.

    • Diğer cihaz türlerinde çipi cihazın NFC anteninin yanına yerleştirin.

  5. PN532 NFC çipini USB kablosuyla test iş istasyonunuza bağlayın.

Kablosuz AP bağlantı testleri ayarlama

Kablosuz ağ erişim noktası (AP) bağlantı testleri (CtsWifiConnectionTests), test edilen cihaz (DUT) ile AP arasındaki bağlantıyı test eder. Bu testleri aşağıdaki iki şekilde ayarlayabilirsiniz:

  • 1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın.
  • 2. seçenek: Programlanabilir bir erişim noktası (AP) ayarlayın.

Android 17 için 2. seçeneği kullanmanızı önemle tavsiye ederiz ancak bu zorunlu değildir. Aşağıdaki iki bölümde her seçenek açıklanmaktadır.

1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın.

1. seçenek için kablosuz ağ kapsama alanında bir Android DUT gerekir. DUT, koruyucu bir kutudaysa ve kablosuz ağa bağlanamıyorsa koruyucu kutudan çıkarın.

2. seçenek: Programlanabilir bir AP ayarlama

Kablosuz bağlantı testleri için programlanabilir bir AP ayarlamak üzere:

  1. Banana Pi R3 AP'yi satın alın ve kurun. Banana Pi R3 AP'yi satın alma ve ayarlama hakkında bilgi edinmek için Banana Pi BPI-R3 AP'yi ayarlama başlıklı makaleyi inceleyin.

  2. (İsteğe bağlı) Korumalı kutunuz yoksa JTP-SR101 korumalı kutusunu kullanmanızı öneririz. Aşağıdaki bilgileri kullanarak bu kutuyu satın alın:

    Dong Guan Zheng Sheng Electronics Technology Co., LTD

    Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, Çin

    İletişim: Forest Pan

    E-posta: forest.pan@jtpmak.cn

    Telefon (Çin): +86 18676993556

  3. DUT ve AP'yi ana makineye bağlayın ve RF koruma kutusuna yerleştirin. DUT ve AP arasında en az 10 cm mesafe olmalıdır. Şekil 2'de bu yapılandırma gösterilmektedir:

    Kalkan kutusunda test edilen cihaz ve erişim noktası

    Şekil 2. Kalkan kutusunda test edilen cihaz ve erişim noktası.

  4. AP'ye ana makineden erişilebildiğini doğrulamak için SSH'yi kullanın.

Mesafe doğruluğu testleri ayarlama

Mesafe doğruluğu testleri oluşturmak için:

  1. Birbirine uygun iki Android DUT'u 1 metre arayla, aynı yükseklikte, doğrudan görüş hattı olacak şekilde ve her cihazın arkası birbirine bakacak şekilde yerleştirin. 3. şekilde bu yön gösterilmektedir:

    Cihazın yönü

    Şekil 3. Cihaz yönü.

  2. İki cihazı USB kablolarıyla masaüstü bilgisayara bağlayın.

Standart iki cihazlı testler ayarlama

Varsayılan iki cihaz kurulumu için:

  1. Eşleşen iki Android DUT'u yaklaşık 20 cm arayla yerleştirin.

  2. Önemle tavsiye edilir: Her iki cihazı da koruyucu bir kutuya yerleştirin. Kalkan kutusu, test kararlılığını artırır ve test hatalarında hata ayıklamayı kolaylaştırır.

  3. Telekom testlerinde her bir test edilen cihazda SIM kart ve hücresel sinyal olmalıdır. Test edilen cihazlar korumalı bir kutudaysa hücresel sinyal kutuya bağlanmalıdır. Aksi takdirde, cihazları koruma kutusunun dışına taşıyın.

  4. İsteğe bağlı: Kablosuz hata ayıklama için OTA sniffer'ı ayarlayın.

CDM testleri oluşturma

test_permissions_sync test durumu, testin yürütüldüğü cihazların derleme türüne bağlı olarak farklı davranışlar gösterir. Hata ayıklanabilir (userdebug veya eng) ve hata ayıklanamayan (user) derlemelerin her ikisinin de OEM'ler tarafından test edilmesi ve her ikisi için de testlerin başarılı olması kritik önem taşır.

Muafiyet

İzin senkronizasyonu API'si uygulaması için CDD maddesi, yalnızca cihazlar arasında güvenli bir kanal üzerinden verilerin başarılı bir şekilde aktarılabilmesini gerektirir. Güvenli kanal uygulaması bir CDD uygunluk şartı olmadığından bu test, hata ayıklanamayan (kullanıcı) derlemelerde atlanabilir ancak yalnızca CDM izinleri senkronizasyon özelliğini desteklemeyi devre dışı bırakmak istiyorsanız.

Testler, hata ayıklanabilir derlemelerde istisnasız olarak başarılı olmalıdır.

Hata ayıklanamayan derlemelerde test yapma için ön koşullar

Muaf değilseniz aşağıdaki ön koşulları karşıladığınızı doğrulayın.

Güvenli kanal, donanımın güvenilirliğini doğrulamak için AVF'yi (AttestationVerificationFramework) kullanır. Her iki tarafın da oluşturduğu onaylar, sistemlerinde yetkisiz değişiklik yapılmadığını doğrulamak için kendileriyle ilgili çeşitli bilgiler içerir. AVF, doğrulama işlemi sırasında aşağıdaki durumları kontrol eder:

  • Cihazın internet erişimi olmalıdır.

  • Cihazda Doğrulanmış Başlatma özelliği kullanılıyor ve derleme, yayın anahtarıyla (geliştirme anahtarıyla değil) imzalanmış.

  • Cihazın bootloader'ı kilitli olmalıdır. Daha fazla bilgi için önyükleyiciyi kilitleme başlıklı makaleyi inceleyin.

  • İşletim sistemi, temel başlatma ve temel satıcı yama seviyeleri 12 ay içinde olmalıdır. Bir yıldan eski bir derleme kullanmayın.

  • Cihaz onayı, tedarikçi tarafından onaylanmış kök sertifikalardan biriyle desteklenir. Güvenilir kök sertifikalarınızı vendor_required_attestation_certificates.xml kaynak yer paylaşımında belirtin.

Sunucu tarafı testlerini çalıştırma

NFC testleri gibi bazı çok cihazlı testler için ek kurulum gerekir. Ek kurulum gerektiren testler ayrı ayrı çalıştırılır. Ek kurulum gerektirmeyen testleri bir grupta çalıştırabilirsiniz.

  1. Test iş istasyonunuzda, CTS-V zip paketinin açıldığı dizinden cts-v-host konsolunu başlatın:

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. DUT'taki CTS-V uygulamasında Host-side Tests'i (Ana Taraf Testleri) tıklayın. 4. Şekil'de CTS-V uygulamasındaki ana makine tarafı testleri gösterilmektedir:

    CTS-V uygulamasında ana makine tarafı testleri

    Şekil 4. CTS-V uygulamasındaki ana makine tarafı testleri.

    Ana makine tarafındaki çok cihazlı test modüllerinin listesi gösterilir.

  3. CTS-V ana makine konsolunda, standart iki cihazlı kurulumu kullanan çok cihazlı testleri çalıştırmak için aşağıdaki komutu kullanın:

    run cts-v-host-multidevice-default
    

    Sonuçlar, DUT'taki CTS-V uygulamasında her test modülünün altında gösterilir. Yeşil işaretli testler başarılı, kırmızı işaretli testler başarısız olmuştur.

    Şekil 5'te, CtsCompanionDeviceManager testleriyle ilgili örnek sonuçlar gösterilmektedir:

    Ana makine tarafında çok cihazlı test, CTS-V uygulamasında sonuçlanır

    Şekil 5. Ana makine tarafında çok cihazlı test, CTS-V uygulamasında sonuçlanır.

  4. CTS-V ana makine konsolunda, etkileşimli testleri çalıştırmak için aşağıdaki komutu kullanın:

    run cts-v-host-interactive
    

    Sonuçlar, DUT'taki CTS-V uygulamasında her test modülünün altında gösterilir. Yeşil işaretli testler başarılı, kırmızı işaretli testler başarısız olmuştur.

  5. Ek kurulum gerektiren her test için aşağıdaki komutu kullanarak testi ayrı ayrı çalıştırın:

    run cts-v-host -m test_module_name
    

    Örneğin, NFC testlerini çalıştırmak için şu komutu kullanın:

    run cts-v-host -m CtsNfcHceMultiDeviceTestCases
    

    Sonuçlar, DUT'taki CTS-V uygulamasında her test modülünün altında gösterilir. Yeşil işaretli testler başarılı, kırmızı işaretli testler başarısız olmuştur.

Kablosuz erişim noktası bağlantı testleri çalıştırma

Kablosuz AP bağlantı testlerini aşağıdaki iki şekilde çalıştırabilirsiniz:

  • 1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın.
  • 2. seçenek: Programlanabilir bir AP ayarlayın.

1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın.

Mevcut bir kablosuz ağda kablosuz AP bağlantı testlerini çalıştırmak için:

  1. Test yatağı yapılandırma dosyasını (WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırılmamış olduğu dizindedir. Örneğin:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. wifi_ssid ve wifi_password alanlarının değerini kablosuz ağın SSID'si ve şifresiyle değiştirin. Bu ayarların konumunu aşağıdaki örnekte görebilirsiniz:

    TestBeds:
    -   Name: WifiConnectionTestbed
    Controllers:
      AndroidDevice: '*'
    TestParams:
      use_programmable_ap: False
      wifi_ssid: WIFI-SSID
      wifi_password: WIFI-PASSWORD
    
  3. CTS-V ana makine konsolunda aşağıdaki komutu çalıştırın:

    run cts-v-host -m CtsWifiConnectionTests
    

2. seçenek: Programlanabilir bir AP ile çalıştırma

Programlanabilir bir AP'de kablosuz AP bağlantı testlerini çalıştırmak için:

  1. Test yatağı yapılandırma dosyasını (WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırılmamış olduğu dizindedir. Örneğin:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. hostname değerini, yerel SSH ayarlarınıza göre AP'nin IP adresiyle değiştirin. IP adresini belirlemek için AP'nin IP adresini bulma başlıklı makaleyi inceleyin. Aşağıdaki örnekte hostname ayarının konumu gösterilmektedir:

    TestBeds:
    -   Name: WifiConnectionTestbed
      Controllers:
        AndroidDevice: '*'
        # Specify settings for the AP.
        OpenWrtDevice:
        -   hostname: AP-IP
          skip_init_reboot: True
      TestParams:
        use_programmable_ap: True
    
  3. CTS-V ana makine konsolunda aşağıdaki komutu çalıştırın:

    run cts-v-host -m CtsWifiConnectionTests
    

USB ana tarafı testlerini çalıştırma

Android 17, çalışmak için Wi-Fi üzerinden adb gerektiren USB CTS-V ana makine tarafı testlerini içerir.

Bazı USB testleri, normal CTS-V uygulamasının erişemediği izinlere sahip SystemAPI'lere erişmek için CTS-V ana makinesinin kullanılmasını gerektirir. Bu testler bağlantısızdır ve Wi-Fi üzerinden adb kullanılması gerekir.

DUT, UsbPort.java içinde bağlantı noktası iş ortağı BC 1.2 türünü veya USB güç profillerini bildirmeyi destekliyorsa aşağıdaki Type-C aksesuarları gerekir:

  • USB Type-C güç aktarımı (PD) şarj cihazı
  • USB pil şarjı 1.2 (BC 1.2) standardı ile uyumlu bir aşağı akış bağlantı noktası (SDP). Bu bağlantı noktaları, DUT'a 500 mA veya 900 mA sağlamakla sınırlıdır ve genellikle harici hub'ların USB bağlantı noktalarında bulunur.
  • USB BC 1.2 şarjı destekleyen bir bağlantı noktası (CDP). Bu bağlantı noktaları, test edilen cihaza ve verilere 1,5 A akım sağlayabilir. Dizüstü veya bilgisayardaki Type-C bağlantı noktası muhtemelen bir CDP'dir.
  • USB BC 1.2 özel şarj bağlantı noktası (DCP). Bu bağlantı noktaları, veriler olmadan DUT'a 1,5 A akım sağlayabilir. Bu listedeki USB Type-C PD şarj cihazı büyük olasılıkla bir DCP'dir.
  1. DUT'u kablosuz ağ üzerinden adb kullanarak bağlayın. Kurulumla ilgili ayrıntılar için Kablosuz ağ üzerinden cihaza bağlanma başlıklı makaleyi inceleyin.

  2. Cihazı tüm USB bağlantılarından fiziksel olarak ayırın. Test komutu çalıştırıldığında cihaz herhangi bir USB ana makinesine veya aksesuarına bağlıysa test başarısız olur.

  3. Aşağıdaki test komutunu çalıştırın:

    run cts-v-host -m CtsUsbTypecTestCases
    

Testlerden sonra sonuçlar, aşağıdaki şekillerde gösterildiği gibi CTS-V uygulamasında Host-side tests (Ana makine tarafı testleri) altında görünür:

CTS-V
app'deki ana makine tarafı USB testleri

Şekil 6. CTS-V uygulamasında ana makine tarafı USB testleri.

Ana makine tarafındaki USB CTS-V
uygulamasında CtsUsbTypecTestCases paketi

Şekil 7. Ana makine tarafındaki USB CTS-V uygulamasında CtsUsbTypecTestCases paketi.

Çok cihazlı testlerle ilgili sorunları giderme

Bu bölüm, sık karşılaşılan sorunları gidermenize yardımcı olur.

CtsTelecomTest sırasında telefon numarası alınamadı

Failed to get phone number for <serial> hata mesajını alırsanız aşağıdaki adımları uygulayın:

  1. Her DUT'ye bir SIM kart takıldığını doğrulayın.

  2. Hata devam ederse SIM kartlar otomatik numara almayı desteklemiyor olabilir. Bu durumda, komutta telefon numaralarını açıkça belirtmeniz gerekir.

    Örneğin, DUT 1 (seri 17011FDEE0002N, telefon numarası 555-0000) ve DUT 2 (seri R3CN90YNAR, telefon numarası 555-1111) için run cts-v-host komutuna aşağıdaki bağımsız değişkenleri ekleyin:

    --module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \
    --module-arg CtsTelecomTest:dut_phone_number:555-0000 \
    --module-arg CtsTelecomTest:ref_phone_number:555-1111
    

CtsMultiDeviceGenericRangingAccuracyTests sırasında sunucudan yanıt alınamıyor

Aşağıdaki hata mesajını alırsanız test uygulaması belirli cihazlarda OEM'e özgü arka plan işlemi yönetimi tarafından dondurulabilir veya sonlandırılabilir:

mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.

Bu sorunu çözmek için arka plan kısıtlamalarını devre dışı bırakın veya aşağıdaki paketleri izin verilenler listesine ekleyin:

Paket Görünen ad
com.google.snippet.uwb CtsUwbSnippetApp
com.google.snippet.ranging CtsRangingSnippetApp
com.google.snippet.bluetooth CtsBluetoothMultiDeviceSnippetApp
com.google.android.mobly.snippet.bundled androidx.multidex.MultDexApplication

NFC testleri sırasında GetFirmwareVersion için yanıt yok hatasını düzeltme

Çok cihazlı testleri çalıştırırken verify_firmware_version RuntimeError: No response for GetFirmwareVersion mesajını alırsanız testler PN532 NFC kartına erişemez.

Bu sorunu düzeltmek için ana makinenizde PN532 NFC kartı tarafından kullanılan seri yolunu (ör. dev/ttyUSB1) belirleyin ve ardından konsolda --module-arg bağımsız değişkenini kullanarak manuel olarak belirtin:

run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1

NFC testleri sırasında "İşlem başarısız oldu" hata mesajını düzeltme

Tüm NFC test senaryolarında Transaction failed, check device logs for more information. mesajını alıyorsanız bunun nedeni muhtemelen test edilen cihazın NFC çipinin PN532'yi algılayamamasıdır.

Ana makineye bağlı birden fazla cihazınız varsa ve bunlardan bazılarının üzerinde PN532 yoksa yanlış DUT seçilmiş olabilir. Daha fazla bilgi için NFC testlerini ayarlama başlıklı makaleyi inceleyin.

Bu sorunu düzeltmek için aşağıdakilerden birini yapın:

  • -s işaretini kullanarak ana makine tarafındaki test komutunuzda doğru DUT seri numarasını ayarlayın.

  • DUT dışındaki tüm cihazların ana makineyle bağlantısını kesin.

CDM test durumu test_permissions_sync yoksayılır

Test, hata ayıklanamayan cihazlarda çalıştırılıyorsa muaf olup olmadığınızı kontrol edin. Aksi takdirde, her iki cihazın da ön koşulları karşıladığını doğrulayın.