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

Bu sayfada, CTS Verifier (CTS-V) ana makine tarafı Android 16 QPR2 ve Android 17 testlerini ayarlama ve çalıştırmayla ilgili talimatlar yer almaktadır. Ana makine tarafında iki tür test vardır: çoklu cihaz testleri (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 testlerini ana makine tarafında çok cihazlı testlere dönüştürdük. Ayrıca, artık kablosuz bağlantı testleri de zorunlu.

Ana makine tarafı testlerini ayarlama

Ana makine tarafı testleri oluşturmak 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. Masaüstü yazılımını yükleme başlıklı makalenin 2. ve 5. adımlarını uygulayarak adb, AAPT2 ve Python'ın masaüstünüze doğru şekilde yüklendiğini doğrulayın.
    • Python sürümünüz 3.11 veya üzeri olmalıdır. Python sürümünüzü belirlemek için python3 --version komutunu çalıştırın. Sürüm 3.11'den düşükse en son resmi Python sürümünü yükleyin. Daha fazla bilgi için python.org'ın İndirilenler bölümüne bakın.
    • Bazı testler için ana makinede Python venv modülünün bulunması gerekir. Debian ve Ubuntu sistemlerinde bu modül varsayılan olarak yüklü olmayabilir. Python sürümünüzde venv modülünün olup olmadığını belirlemek için python3 -m venv venv komutunu çalıştırın. Bu komut başarısız olursa bir hata mesajı gösterilir. python3.x-venv paketini yüklemek için talimatları uygulayın.

Yalnızca ana makine tarafındaki etkileşimli testleri çalıştırıyorsanız Ana makine tarafındaki testleri çalıştırma bölümüne gidin. Ancak çok cihazlı testler çalıştırmak istiyorsanız Ana 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. Masaüstü yazılımını yükleme başlıklı makalenin 2. ve 5. adımlarını uygulayarak adb, AAPT2 ve Python'ın masaüstünüze doğru şekilde yüklendiğini doğrulayın.

    • Python sürümünüz 3.11 veya üzeri olmalıdır. Python sürümünüzü belirlemek için python3 --version komutunu çalıştırın. Sürüm 3.11'den düşükse en son resmi Python sürümünü yükleyin. Daha fazla bilgi için python.org'ın İndirilenler bölümüne bakın.
    • Bazı testler için ana makinede Python venv modülünün bulunması gerekir. Debian ve Ubuntu sistemlerinde bu modül varsayılan olarak yüklü olmayabilir. Python sürümünüzde venv modülünün olup olmadığını belirlemek için python3 -m venv venv komutunu çalıştırın. Bu komut başarısız olursa bir hata mesajı gösterilir. python3.x-venv paketini yüklemek için talimatları uygulayın.
  3. Her biri CTS-V kurulu olan iki eşleşen DUT hazırlayın.

    • DUT kurulumu hakkında bilgi edinmek için DUT'u kurma başlıklı makaleyi inceleyin.
    • CTS-V'yi ayarlama talimatları için Kurulum başlıklı makaleyi inceleyin.
  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 testlerini 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'nin 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 kablosu kullanarak test iş istasyonunuza bağlayın.

Kablosuz AP bağlantı testleri ayarlama

Kablosuz ağ erişim noktası (AP) bağlantı testleri (CtsWifiConnectionTests), bir test cihazı 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ğı kullanma

1. seçenek için kablosuz ağ kapsama alanında bir Android DUT gerekir. DUT, koruma kutusundaysa ve kablosuz ağa bağlanamıyorsa koruma kutusundan çı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ıp 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
    İlgili kişi: 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. Test edilen cihaz ile AP arasında en az 10 cm mesafe olmalıdır. Şekil 2'de bu yapılandırma gösterilmektedir:

    Kalkan kutusunda DUT ve AP

    Şekil 2. Kalkan kutusunda test cihazı ve AP.

  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 benzeyen 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. Şekil 3'te bu yön gösterilmektedir:

    Cihazın yönü

    Şekil 3. Cihaz yönü

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

Standart iki cihazlı testler ayarlama

Varsayılan iki cihazlı kurulum için:

  1. Birbiriyle eşleşen iki Android DUT'u yaklaşık 20 cm arayla yerleştirin.
  2. Önemle tavsiye edilir: İki 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 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 bağlantıda 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österiyor. 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ının 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ı CDD uygunluğu şartı olmadığından bu test, hata ayıklanamayan (kullanıcı) derlemelerde atlanabilir ancak yalnızca CDM izinleri senkronizasyonu ö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 ö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ış Önyükleme kullanılıyor ve derleme, geliştirme anahtarıyla değil yayın anahtarıyla imzalanmış olmalıdır.
  • Cihazın bootloader'ı kilitli olmalıdır. Ayrıntılı talimatlar için önyükleyiciyi kilitleme başlıklı makaleyi inceleyin.
  • İşletim sistemi, temel başlatma ve temel satıcı yama düzeyleri 12 ay içinde olmalıdır. Bir yıldan eski bir derleme kullanmayın.
  • Cihaz onayı, tedarikçi tarafından onaylanmış bir kök sertifikasıyla desteklenir. Güvenilir kök sertifikalarınızı vendor_required_attestation_certificates.xml kaynak yer paylaşımında belirtin.

Ana makine tarafı testlerini çalıştırma

NFC testleri gibi bazı çoklu cihaz testleri ek kurulum gerektirir. 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. Şekil 4'te CTS-V uygulamasındaki ana makine tarafı testleri gösterilmektedir:

    CTS-V uygulamasındaki ana makine tarafı testleri

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

    Test tarafında ç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örünür. 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:

    CTS-V uygulamasında ana makine tarafında birden fazla cihazla yapılan testlerin sonuçları

    Şekil 5. Ana makine tarafında birden fazla cihazla yapılan testler 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örünür. 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örünür. 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ı testlerini ç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ğı kullanma

Mevcut bir kablosuz ağda kablosuz erişim noktası 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 dizinde bulunur. Ö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. Aşağıdaki örnekte bu ayarların konumu gösterilmektedir:

    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 dizinde bulunur. Ö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ıştırılması için kablosuz bağlantı üzerinden adb gerektiren USB CTS-V ana bilgisayar 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ğımsızdır ve kablosuz ağ ü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ı gereklidir:

  • 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ı, test edilen cihaza 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 aşağı akış bağlantı noktası (CDP) Bu bağlantı noktaları, test edilen cihaza 1,5 A akım ve veri sağlayabilir. Dizüstü veya masaüstü bilgisayarlardaki Type-C bağlantı noktaları muhtemelen 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ının DCP olması muhtemeldir.
  1. DUT'u kablosuz ağ üzerinden adb kullanarak bağlayın. Kurulum 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 Ana makine tarafı testleri bölümünde görünür:

CTS-V uygulamasında 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 bir DUT'a 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 sorununu 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, 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'un seri numarasını ayarlayın.

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

CDM test durumu test_permissions_sync yoksayılıyor

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.