gcloud KSA ile teste başlayın

Bu kılavuzda enstrümantasyon, Robo veya Oyun Döngüsü testinin nasıl çalıştırılacağı açıklanmaktadır. gcloud KSA'yı kullanın.

Kullanabileceğiniz gcloud komutlarının tam listesi için Test Lab üzerindeki Android uygulamanızla ilgili aşağıdaki adresi ziyaret edin: gcloud firebase test android için referans dokümanlar.

Başlamadan önce

Henüz yapmadıysanız Firebase'i Android projenize ekleyin.

1. Adım. gcloud CLI'ı kurma

  1. Google Cloud SDK'yı indirin
  2. gcloud KSA aracı da buna dahildir.

  3. Yüklemenizin güncel olduğundan emin olun:
    gcloud components update
    
  4. Google Hesabınızı kullanarak gcloud KSA'da oturum açın:
    gcloud auth login
    
  5. PROJECT_ID, Firebase projenizin kimliğidir:
    gcloud config set project PROJECT_ID
    

2. Adım. Kullanılabilir test cihazlarını kontrol etme

Size uygun test cihazlarını ve yerel ayarları görüntülemek için aşağıdaki gcloud komutlarını kullanın: kullanabilirsiniz.

İsterseniz örneği doğrudan indirebilirsiniz Başlamak için Not defteri uygulaması komut dosyasını hemen çalıştırmanız gerekir. app-debug-unaligned.apk ikili dosyasını kullanın ve araç testleri dosyası app-debug-test-unaligned.apk NotePad/app/build/outputs/apk/ içinde.

  • models list: Test edebileceğiniz Android cihazların güncel listesini alın.

    gcloud firebase test android models list

    Komut çıkışında:

    • MODEL_ID sütunu, daha sonra cihaz modelinde test çalıştırmak için kullanabileceğiniz tanımlayıcıyı içerir.
    • OS_VERSION_ID sütunu, cihazın desteklediği işletim sistemi sürümlerini içerir.

    Örnek çıkış

    gcloud firebase test android models list output

  • models describe: Belirli bir Android MODEL_ID hakkında daha fazla bilgi edinin.

    gcloud firebase test android models describe MODEL_ID

    Bu çıkış; cihaz modelinin markasını, üreticisi, işletim sistemi sürümlerini, desteklenen API düzeyleri, desteklenen Uygulama İkili Arabirimleri (ABI), ve cihazın fiziksel mi yoksa sanal mı olduğu.

  • versions list: Şu anda test edilebilir OS sürümlerinin listesini alma .

    gcloud firebase test android versions list

    Daha sonra bir Android OS sürümüne karşı test çalıştırmak için komut çıktısının ilk iki sütunundan (OS_VERSION_ID ve VERSION) bir tanımlayıcı kullanabilirsiniz. Test edilecek Android OS sürümlerini belirtmezseniz TAGS sütununda belirtilen varsayılan sürüm kullanılır.

    Örnek çıkış

    gcloud android versions list

  • locales list: Test için kullanılabilen mevcut yerel ayarların listesini alın.

    gcloud firebase test android versions list

    Komut çıkışının ilk sütunu (LOCALE) tanımlayıcıyı içerir yerel ayara göre test yapmak için kullanabileceğiniz bir kod snippet'i ekleyin. Belirli bir test edilecek yerel ayarlarda varsayılan dil olarak İngilizce kullanılır.

3. Adım: Testinizi çalıştırın

Artık mevcut cihaz modelleri, yerel ayarlar ve işletim sistemi sürümleri yelpazesini biliyorsunuz. özelliğini kullanarak, cihazları belirtmek için gcloud firebase test android run komutu ve Robo veya araç testlerini çalıştırmak için --device işareti.

Robo testi çalıştır

Herhangi bir araç testiniz olmasa bile, kontrol edebilirsiniz. Sitenizin otomatik olarak incelenmesini sağlamak için Robo testini kullanıcı arayüzü. Robo test bir statik bir kod çalıştırarak uygulamayı uygulamanın kullanıcı arayüzünden izlenen çeşitli yolların analizi ve kilitlenmeleri ve diğer olası sorunları bulmak için uygulamada tarama yapar.

Robo testi çalıştırmak için aşağıdaki örnek komutu çalıştırın:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s \
  --client-details matrixLabel="Example matrix label"
  • --type değeri belirtilmezse --type robo parametresi örtülüdür.
  • Firebase konsolunda test matrislerinizi belirlemenize ve bulmanıza yardımcı olması için isteğe bağlı --client-details matrixLabel="Example matrix label" öğesini kullanabilirsiniz işaretleyin.
  • Şunlar için komut satırı seçeneklerinin tamamını görebilirsiniz: gcloud help firebase test android run yazarak test yürütün.

Bu bağımsız değişkenleri komut satırında belirtmeye alternatif olarak isteğe bağlı olarak, bağımsız değişkenlerinizi YAML biçimli bir bağımsız değişken dosyasında belirtebilirsiniz. Koşu Bu özelliği nasıl kullanacağınızı öğrenmek için gcloud topic arg-files.

Robo testin test sonuçlarını nasıl inceleyeceğinizi öğrenmek için bkz. Test sonuçlarınızı analiz edin.

Araç testi çalıştır

Şimdi gcloud komut satırı aracını kullanarak Not Defteri uygulamasının Espresso belirlediğiniz Android cihaz yapılandırmalarında testler gerçekleştirin. Şunu kullanın: app-debug-test-unaligned.apk içinde testleri çalıştırmak için instrumentation test türü şu şekilde:

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape
  --client-details matrixLabel="Example matrix label"
  • Bir test APK'sı belirtilirse --type araç parametresi örtülüdür --test ile.
  • Firebase konsolunda test matrislerinizi tanımlamanıza ve bulmanıza yardımcı olması için, isteğe bağlı --client-details matrixLabel="Example matrix label" kullanabilirsiniz. işaretleyin.
  • Şunlar için komut satırı seçeneklerinin tamamını görebilirsiniz: gcloud help firebase test android run yazarak test yürütün.

Bu bağımsız değişkenleri komut satırında belirtmeye alternatif olarak isteğe bağlı olarak, bağımsız değişkenlerinizi YAML biçimli bir bağımsız değişken dosyasında belirtebilirsiniz. Koşu Bu özelliği nasıl kullanacağınızı öğrenmek için gcloud topic arg-files.

gcloud KSA, Android Test Orchestrator'ı destekler. Orkestratör, AndroidJUnitRunner v1.1 veya üzerini gerektirir. Etkinleştirmek için gcloud firebase test android run ile
--use-orchestrator simgesini kullanın. Devre dışı bırakmak için --no-use-orchestrator işaretini kullanın.

Test Lab uygulamasının araç testlerinizi nasıl çalıştıracağını da kontrol edebilirsiniz yukarıda gösterilmeyen ek işaretleri kullanabilirsiniz. Örneğin, Tek bir sınıfı veya testiniz tarafından kullanılan bir sınıf yöntemini test etmek için --test-targets işareti APK'ya dokunun. Ayrıca, başarısız olan testinizin gerçekten kararsız olup olmadığını öğrenmek için --num-flaky-test-attempts işaretini kullanabilirsiniz. Bu işaret, testin bir veya daha fazla test senaryosu herhangi bir nedenle başarısız olursa test çalıştırmanın kaç kez yeniden denenmesi gerektiğini belirtir. Daha fazla bilgi edinmek için gcloud firebase test android run sayfasına bakın.

Araç testleri için kod kapsamı raporları

Test Lab, kod kapsamı raporlama araçlarını destekler EMMA ve JaCoCo. Herhangi bir araç kullanıyorsanız uygulamanızın derlemesine entegre ettikten sonra, uygulamanızın Bazı parametrelerle gcloud firebase test android run çalıştırarak Test Lab testi bağımsız değişkenlerdir. Android Test Orchestrator etkin değilse şunu kullanın: takip etmek için:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/Download/coverage.ec" \
  --directories-to-pull /sdcard/Download

Android Test'i kullanırken de kod kapsamı raporları oluşturuyorsanız Orkestratör varsa ortam değişkenlerinizi aşağıdaki gibi değiştirin:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables clearPackageData=true,coverage=true,coverageFilePath="/sdcard/Download/" \
  --directories-to-pull /sdcard/Download

Test Lab, testlerinizi çalıştırmayı bitirdiğinde kod kapsamı raporlarınızı bulun Google Cloud Storage içinde:

  1. gcloud aracınınFirebase terminalinizdeki test sonucu tablosuna bakın.
  2. Söz konusu bağlantıdaki listeden bir test yürütmesini tıklayarak ilgili yürütme ayrıntılar sayfasına gidin.
  3. Söz konusu yürütmenin test sonuçlarını içeren Cloud Storage paketine gitmek için Test sonuçları'nı tıklayın.
  4. Kod kapsamı raporunuzu görmek için artifacts/coverage.ec uygulamasını açın.

Test sonuçlarınızı analiz etme

Birkaç dakika sonra gcloud aracı, test sonuçlarınızın temel bir özetini yazdırır:

Komut test sonuçları

Komut satırı test çalıştırmanızın çıkışı, test sonuçlarını görüntüleme bağlantısını da içerir. Bu sonuçları nasıl yorumlayacağınız hakkında daha fazla bilgi edinmek için bkz. Android sonuçları için Firebase Test Lab analiz ediliyor.

Robo test ile özel giriş ve metin girişi

Robo testi, bir Google hesabı kullanan oturum açma ekranlarını otomatik olarak tamamlar kimlik doğrulama için --no-auto-google-login parametresinden sonra bir değer girin. Ayrıca, test hesabı kullanarak özel giriş ekranlarını tamamlayabilir bu en iyi uygulamadır. Bu parametreyi özelleştirilebilir uygulamanız tarafından kullanılan diğer metin alanları için giriş metni.

Uygulamanızdaki metin alanlarını doldurmak için --robo-directives parametresini kullanın ve key-value çiftlerinin virgülle ayrılmış bir listesini sağlayın. Burada key, hedef kullanıcı arayüzü öğesinin Android kaynak adı ve value ise girin. Bu işareti, Robo'ya belirli kullanıcı arayüzü öğelerini (ör. "Oturumu kapat" düğmesi). EditText alanları desteklenir ancak WebView kullanıcı arayüzü öğelerinde metin alanları desteklenmez.

Örneğin, özelleştirilebilir olması için aşağıdaki parametreyi kullanabilirsiniz giriş:

--robo-directives username_resource=username,password_resource=password

Kullanılabilir komutlar ve işaretler

Test Lab gcloud CLI'de, aşağıdakileri yapabilmenizi sağlayan çeşitli komut ve işaretler vardır: testler yapabilirsiniz:

  • Android Test Orchestrator işareti: Orchestrator'ı etkinleştiren bir işaret çalıştırmanıza olanak tanıyan bir araçtır. uygulamanın testlerini Instrumentation için kendi çağrısında gösterir. Test Lab her zaman Orchestrator'ın en son sürümünü çalıştırır.

  • Oyun Döngüsü test işaretleri: "Demo"yu etkinleştiren ve kontrol eden bir dizi yapılandırma işareti mod" oyun uygulamalarında oyuncu hareketlerini simüle edin. Koşu hakkında daha fazla bilgi Test Lab ile Oyun Döngüsü testleri.

  • Tekdüzen Bölme işareti (beta sürümünde): Test durumlarını eşit olarak dağıtmak istediğiniz parça sayısını belirten bir işaret. Parçalar ayrı cihazlarda paralel olarak çalıştırılır.

  • Manuel Parçalama işareti (beta sürümde): Çalıştırılacak paket, sınıf ve/veya test durumu grubunu belirten işaret (test durumu grubu) ekleyebilirsiniz. Parçalar şurada paralel olarak çalıştırılır: ayrı cihazlar.

  • Ağ trafiği profilleri işareti (beta sürümde): Testlerinizin fiziksel ağ ile hangi ağ profilini kullandığını belirten bir işaret cihazlar. Ağ profilleri, çeşitli ağ koşullarını taklit ederek uygulamanızın performansını güvenilir olmayan veya öngörülemeyen ağlarda test etmenize olanak tanır.

Test Lab ile gcloud komutlarını komut dosyası çalıştırma

Mobil uygulama test komutlarını otomatikleştirmek için kabuk komut dosyalarını veya toplu dosyaları kullanabilirsiniz komut satırını kullanın. Aşağıdakiler örnek bash komut dosyası, iki dakikalık zaman aşımıyla bir araç testi çalıştırır ve test çalıştırması başarıyla tamamlanıp tamamlanmadığını bildirir:

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

Komut dosyası çıkış kodları

Test Lab, komut dosyalarını veya toplu dosyaları kullanarak çalıştırdığınız testlerin sonuçları.

Test Lab için komut dosyası çıkış kodları

Çıkış kodu Notlar
0 Tüm test işlemleri başarılı oldu.
1 Genel bir hata oluştu. Olası nedenler arasında var olmayan bir dosya adı veya HTTP/ağ hatası yer alır.
2 Bilinmeyen komutlar veya bağımsız değişkenler sağlandığı için testten çıkıldı.
10 Bir test içindeki bir veya daha fazla test durumu (test edilmiş sınıflar veya sınıf yöntemleri) başarısız oldu.
15 Firebase Test Lab, test matrisinin başarılı olup olmadığını veya beklenmedik bir hatadan dolayı tamamlanamadı.
18 Bu test yürütmesi için test ortamı şu nedenlerle desteklenmiyor: test boyutlarının uyumsuz olması gerekir. Bu hata, seçilen Android API'si seviye, seçilen cihaz türü tarafından desteklenmiyor.
19 Test matrisi kullanıcı tarafından iptal edildi.
20 Test altyapısı hatası oluştu.