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

Bu sayfada, CTS Verifier (CTS-V) ana makine tarafındaki Android 16 QPR2 ve Android 17 testlerini ayarlama ve çalıştırma talimatları yer almaktadır. İki tür ana makine tarafı testi vardır: çoklu cihaz testleri (Android 17'den önce kullanıma sunulmuştur) ve etkileşimli testler (Android 17'de yeni):

  • Çoklu cihaz testleri tamamen otomatik testlerdir.
  • Etkileşimli testler, test edilen cihazda (DUT) bazı manuel adımları uygulamanızı gerektiren yarı otomatik testlerdir.

Yeni etkileşimli testlerin yanı sıra manuel mesafe doğruluğu ve telekom testleri artık ana makine tarafındaki çoklu cihaz testleridir ve kablosuz bağlantı testleri zorunludur.

Ana makine tarafındaki testleri ayarlama

Ana makine tarafındaki testleri ayarlamak için aşağıdaki adımları uygulayın (çoklu cihaz testleri 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 bölümündeki 2. ve 5. adımları uygulayın.

    • Masaüstü Python sürümü 3.11 veya daha yeni olmalıdır. Python sürümünü belirlemek için python3 --version komutunu çalıştırın. Sürüm 3.11'den eskiyse en son resmi Python sürümünü yükleyin. Ayrıntılar için python.org sayfasını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. Masaüstü Python sürümünde 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. Talimatları uygulayarak python3.x-venv paketini yükleyin.

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 geçin. Ancak çok cihazlı testler çalıştırmak istiyorsanız Ana makine tarafındaki çok cihazlı testleri ayarlama bölümüne gidin.

Ana makine tarafındaki çoklu cihaz testlerini ayarlama

Ana makine tarafındaki çoklu cihaz testlerini 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 bölümündeki 2. ve 5. adımları uygulayın.

    • Masaüstü Python sürümü 3.11 veya daha yeni olmalıdır. Python sürümünü belirlemek için python3 --version komutunu çalıştırın. Sürüm 3.11'den eskiyse en son resmi Python sürümünü yükleyin. Ayrıntılar için python.org sayfasını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. Masaüstü Python sürümünde 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. Talimatları uygulayarak python3.x-venv paketini yükleyin.
  3. Her birinde CTS-V kurulu olan iki eşleşen DUT hazırlayın.

    • DUT'yi ayarlama hakkında ayrıntılı bilgi için DUT'yi ayarlama başlıklı makaleyi inceleyin.
    • CTS-V'yi ayarlama hakkında ayrıntılı bilgi için Kurulum bölümüne bakın.
  4. Test türünüzün kurulum bölümüne gidin:

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

NFC testlerini ayarlama

NFC testlerinde bir test edilen cihaz 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. Test edilen cihazda Ayarlar uygulamasına gidin.
  3. NFC'yi etkinleştirin.
  4. NFC çipini yerleştirme:

    • Telefonlar için, test edilen cihazın NFC okuyucusunu Şekil 1'de gösterildiği gibi yerleştirin:

      NFC çipinin konumu

      Şekil 1. NFC çipinin konumu

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

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

Kablosuz erişim noktası bağlantı testlerini ayarlama

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

  • 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 bir 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. Test edilen cihaz bir koruyucu kutudaysa ve kablosuz ağa bağlanamıyorsa koruyucu kutudan çıkarın.

2. seçenek: Programlanabilir AP oluşturma

Kablosuz bağlantı testleri için programlanabilir bir erişim noktası ayarlamak üzere:

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

  2. (İsteğe bağlı) Koruyucu kutunuz yoksa JTP-SR101 koruyucu kutuyu kullanmanızı öneririz. Bu kutuyu aşağıdaki bilgileri kullanarak 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ıp 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:

    Koruyucu kutuda DUT ve AP

    Şekil 2. Test edilen cihaz ve erişim noktası, korumalı kutuda.

  4. Erişim noktasına ana makineden erişilebildiğini doğrulamak için SSH'yi kullanın.

Mesafe ölçümü doğruluk testlerini ayarlama

Mesafe ölçümü doğruluk testlerini ayarlamak için:

  1. Eşleşen iki Android DUT'yi 1 metre aralıkla, aynı yükseklikte, doğrudan görüş hattında 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ı da USB kablolarıyla masaüstü makineye bağlayın.

Standart iki cihazlı testler oluşturma

Varsayılan iki cihazlı kurulum için:

  1. İki eşleşen Android DUT'yi yaklaşık 20 cm aralıkla yerleştirin.

  2. Kesinlikle önerilir: Her iki cihazı da koruyucu kutuya yerleştirin. Koruyucu kutu, test kararlılığını artırır ve test hatalarının ayıklanmasını kolaylaştırır.

  3. Telekom testleri için her DUT'nin bir SIM kartı ve hücresel sinyali olmalıdır. Test edilen cihazlar korumalı bir kutudaysa hücresel sinyal kutuya bağlanmalıdır. Aksi takdirde cihazları koruyucu kutudan çıkarın.

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

CDM testlerini ayarlama

test_permissions_sync test durumu, testin yürütüldüğü cihazların derleme türüne bağlı olarak farklı davranışlar gösterir. OEM'lerin hem hata ayıklanabilir (userdebug veya eng) hem de hata ayıklanamayan (user) derlemeleri test etmesi ve testlerin her ikisi için de başarılı olması çok önemlidir.

Muafiyet

İzin senkronizasyonu API'sinin uygulanmasıyla ilgili CDD maddesi, yalnızca cihazlar arasında güvenli bir kanal üzerinden veri aktarımının başarıyla gerçekleştirilebilmesini gerektirir. Güvenli kanal uygulaması, CDD uyumluluk şartı olmadığından bu test, hata ayıklanamayan (kullanıcı) derlemelerde atlanabilir. Ancak bu yalnızca CDM izinleri senkronizasyon özelliğini desteklemeyi devre dışı bırakmak istiyorsanız geçerlidir.

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 oluşturduğu onaylar, sistemlerinde yetkisiz bir değişiklik yapılmadığını doğrulamak için kendileriyle ilgili çeşitli bilgiler içerir. AVF, doğrulama süreci sırasında aşağıdaki durumları kontrol eder:

  • Cihazın internet erişimi var

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

  • Cihazın bootloader'ı kilitli. Daha fazla bilgi için bootloader'ı kilitleme başlıklı makaleyi inceleyin.

  • İşletim sistemi, anahtar başlatma ve anahtar satıcı yama seviyeleri 12 ay içinde olmalıdır. Bir yıldan eski derlemeleri 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.

Ana makine tarafındaki testleri çalıştırma

NFC testleri gibi bazı çoklu cihaz testleri için ek kurulum gerekir. Ek kurulum gerektiren testler için her test ayrı ayrı çalıştırılır. Ek kurulum gerektirmeyen testleri bir grup halinde ç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 Makine Tarafındaki Testler) tıklayın. Şekil 4'te, CTS-V uygulamasındaki ana makine tarafındaki testler gösterilmektedir:

    CTS-V uygulamasında ana makine tarafındaki testler

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

    Ana makine tarafındaki çoklu cihaz test modüllerinin listesi gösterilir.

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

    run cts-v-host-multidevice-default
    

    Sonuçlar, test edilen cihazdaki 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 testlerinin örnek sonuçları gösterilmektedir:

    CTS-V uygulamasında ana makine tarafındaki çoklu cihaz testi sonuçları

    Şekil 5. CTS-V uygulamasında ana makine tarafındaki çoklu cihaz test sonuçları.

  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, test edilen cihazdaki 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 testi aşağıdaki komutu kullanarak 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, test edilen cihazdaki 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 erişim noktası 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 erişim noktası bağlantı testlerini çalıştırmak için:

  1. Test ortamı yapılandırma dosyasını (WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırmasının açıldığı 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. 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 ortamı yapılandırma dosyasını (WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırılmış halden çıkarıldığı dizindedir. Örneğin:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Yerel SSH ayarlarınıza göre hostname değerini AP'nin IP adresiyle değiştirin. IP adresini belirlemek için Erişim noktasının 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 makine tarafındaki testleri çalıştırma

Android 17, çalıştırılması için kablosuz ağ üzerinden adb gerektiren USB CTS-V ana makine tarafı testleri 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 kablosuzdur ve kablosuz ağ üzerinden adb kullanılmasını gerektirir.

DUT, UsbPort.java içinde bağlantı noktası iş ortağı BC 1.2 türünü veya USB güç profillerini raporlamayı 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) standart 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ı genellikle CDP'dir.
  • USB BC 1.2 özel şarj noktası (DCP). Bu bağlantı noktaları, veri olmadan DUT'ye 1,5 A akım sağlayabilir. Bu listedeki USB Type-C PD şarj cihazı muhtemelen bir DCP'dir.
  1. Test edilen cihazı kablosuz ağ üzerinden adb kullanarak bağlayın. Kurulum ayrıntıları için Kablosuz ağ üzerinden bir cihaza bağlanma başlıklı makaleyi inceleyin.

  2. Cihazı tüm USB bağlantılarından fiziksel olarak çıkarı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 resimlerde gösterildiği gibi CTS-V uygulamasında Ana makine tarafındaki testler bölümünde görünür:

CTS-V uygulamasında ana makine tarafındaki USB testleri

Şekil 6. CTS-V uygulamasında ana makine tarafındaki 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.

Çoklu cihaz testleriyle 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'ta bir SIM kartın takılı olduğunu 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 numarası 17011FDEE0002N, telefon numarası 555-0000) ve DUT 2 (seri numarası 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ınamadı

Aşağıdaki hata mesajını alırsanız test uygulaması, belirli cihazlarda OEM'e özel 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 alınamaması sorunu düzeltildi.

Çoklu cihaz testlerini ç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 makinenizdeki PN532 NFC kartı tarafından kullanılan seri yolunu (ör. dev/ttyUSB1) belirleyin ve konsoldaki --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 durumları için 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ış TST 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 olmayan tüm cihazların ana makineyle 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.