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 etmek için şu sayfayı ziyaret edin: gcloud firebase test android için referans belgeler.

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. Firebase projenizi, PROJECT_ID öğesinin bulunduğu gcloud'da ayarlayın Firebase projenizin kimliği:
    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 görün .

    gcloud firebase test android models list
    

    Komut çıkışında:

    • MODEL_ID sütunu, daha sonra testleri çalıştırmak için kullanabileceğiniz tanımlayıcıyı içerir dikkat edin.
    • OS_VERSION_ID sütununda, desteklenen işletim sistemi sürümleri bulunuyor Cihaza göre değişir.

    Örnek çıkış

    gcloud firebase test android modelleri liste çıkışı

  • 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
    

    Komutun ilk iki sütunundan bir tanımlayıcı kullanabilirsiniz çıkışını (OS_VERSION_ID ve VERSION) kullanarak daha sonra Android sürümüne göre testler yapabilirsiniz. OS sürümü. Test yapacağınız Android OS sürümlerini belirtmezseniz TAGS sütununun altında belirtilen varsayılan değeri kullanılır.

    Örnek çıkış

    gcloud android sürümleri listesi

  • locales list: Test edebileceğiniz yerel ayarların geçerli listesini görü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 şekildedir:

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 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.

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

Test Lab'in araç testlerinizi çalıştırma şeklini de 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. Başarısız olan testinizin gerçekten güvenilir olup olmadığını ya da sayısını belirten --num-flaky-test-attempts işaretini kullanarak değil, Bir veya daha fazla test durumu olması durumunda test işleminin yeniden denenmesi herhangi bir nedenle başarısız olabilir. 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 Test Lab'i bazı testlerde gcloud firebase test android run çalıştırarak 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 :

  1. gcloud aracının 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. Bu öğenin bulunduğu Cloud Storage paketine gitmek için Test sonuçları'nı tıklayın test sonuçlarını takip edebilirsiniz.
  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 test sonuçlarınızın temel bir özeti, gcloud aracı:

Komut test sonuçları

Komut satırı test çalıştırmanızın sonucunda, testi görüntüleme bağlantısı da bulunur sonuç. 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'in Analizi.

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. Robo'ya belirli bir öğeyi yoksaymasını bildirmek için de bu işareti kullanabilirsiniz Kullanıcı arayüzü öğeleri (ör. "çıkış" 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 modu" oyun uygulamalarında oyuncu hareketlerini simüle edin. Koşu hakkında daha fazla bilgi Test Lab ile Oyun Döngüsü testleri.

  • Tek Tip Parçalama işareti (beta sürümde): Eşit olarak eklemek istediğiniz parça sayısını belirten bir işaret nasıl dağıtabilirsiniz? 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ı emüle eder, uygulamanızın performansını güvenilir olmayan veya tahmin edilemeyen ağlarda test etmenizi sağlar.

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 çıkış kodlarını komut dosyası oluşturma

Çıkış kodu Notlar
0 Tüm test işlemleri başarılı oldu.
1 Genel bir hata oluştu. Olası nedenler şunları içerir: veya HTTP/ağ hatası oluştu.
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.