Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Gcloud CLI ile test etmeye başlayın

Firebase Test Lab, gcloud komut satırı arayüzü (CLI) ile tam entegrasyon dahil olmak üzere Android uygulamalarını test etmek için bulut tabanlı altyapı sağlar . Bu belge, gcloud CLI'den Test Lab'ı kullanmaya başlamak için gereken kurulum ve yapılandırmayı kapsar.

Test Lab'da Android uygulamanızla kullanabileceğiniz gcloud komutlarının tam listesi için gcloud firebase test android için referans belgelerini ziyaret edin .

Uygulamanız için bir Firebase projeniz yoksa, Firebase konsoluna gidin ve şimdi bir tane oluşturmak için Yeni Proje Oluştur'u tıklayın. Projenizde sahiplik veya düzenleme izinlerine ihtiyacınız olacak.

Gcloud KSA'yı ayarlayın

  1. Google Cloud SDK'yı indirin .
  2. Bu, gcloud CLI aracını içerir.

  3. Kurulumunuzun güncel olduğundan emin olun:
    gcloud components update
    
  4. Google hesabınızı kullanarak gcloud KSA'ya giriş yapın:
    gcloud auth login
    
  5. Firebase projenizi gcloud'da ayarlayın; burada PROJECT_ID , Firebase projenizin kimliğidir:
    gcloud config set project PROJECT_ID
    

Testinizi yapılandırın

Bu örnekte, Not Defteri adlı basit bir not alma Android uygulamasında bazı testler yapacaksınız.

  1. Not Defteri uygulaması için ikili APK dosyasını ( app-debug-unaligned.apk ) ve ilgili enstrümantasyon testlerini ( app-debug-test-unaligned.apk ) indirin NotePad / app / build / outputs / apk / not defteri dizininde sağlanan .zip .

  2. Aşağıdaki gibi test edilebilecek Android cihazların güncel listesini alın:

    
    $ gcloud firebase test android models list
    
    gcloud firebase test android models list output Komut çıktısının ilk sütunu, MODEL_ID , daha sonra belirli bir model üzerinde testleri çalıştırmak için kullanabileceğiniz tanımlayıcıyı içerir. OS_VERSION_ID sütunu, o cihaz tarafından desteklenen işletim sistemi sürümlerini listeler. Hangi MODEL_ID test MODEL_ID belirtmezseniz, TAGS sütununun altında belirtilen varsayılan değer kullanılır.

  3. firebase test android models describe ile belirli bir Android MODEL_ID hakkında daha fazla bilgi edinin, aşağıdaki komutu firebase test android models describe :

    
    $ gcloud firebase test android models describe Nexus5
    
    Yukarıda gösterilen örnek komut, Nexus5 modeli hakkında marka, üretici ve desteklenen API seviyeleri ve modelin fiziksel olup olmadığı gibi ayrıntılı bilgiler sağlar. veya sanal.

  4. Test etmek için kullanılabilen Android işletim sistemi sürümlerinin güncel listesini edinin:

    
    $ gcloud firebase test android versions list
    
    gcloud android versions list Daha sonra bir Android işletim sistemi sürümüne yönelik testleri ç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ütununun altında belirtilen varsayılan değer kullanılır.

  5. Test etmek için kullanılabilecek yerel ayarların geçerli listesini alın:

    
    $ gcloud firebase test android locales list
    
    Komut çıktısının ilk sütunu olan LOCALE , daha sonra bir yerel ayara karşı testleri çalıştırmak için kullanabileceğiniz tanımlayıcıyı içerir. Test edilecek yerel ayarları belirtmezseniz, varsayılan yerel ayar olarak İngilizce kullanılır. Yüzlerce yerel ayar mevcut olduğundan komut çıktısı burada gösterilmiyor.

Koşu testleri

Şimdi uygulamanızı test ederken kullanmaya müsait cihaz modellerine, işletim sistemi sürümleri ve yerel aralığını bildiğinize kullanarak test cihazları belirtmek için bu bilgileri kullanabilirsiniz gcloud firebase test android run komuta ve --device bayrağı. Bu komut ve bayrak, ister Robo testini uygulamanızı otomatik olarak test etmek için kullanıyor olun, ister özellikle uygulamanızı test etmek için yazılmış enstrümantasyon testleri çalıştırıyor olun.

Robo testini çalıştırma

Herhangi bir enstrümantasyon testiniz olmasa bile, yine de uygulamanızda hataları arayabilirsiniz. Uygulamanızın kullanıcı arayüzünün otomatik incelemesini gerçekleştirmek için Robo testini kullanın. Robo test, uygulamanın kullanıcı arayüzü aracılığıyla çeşitli yolların statik bir analizini gerçekleştirerek ve ardından çökmeleri ve diğer olası sorunları bulmak için uygulama içinde gezinerek uygulamayı denetler.

Örnek bir komut çalıştırarak başlayalım:

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

--type robo parametresi, --type değeri belirtilmezse --type . gcloud help firebase test android run yazarak testleri çalıştırmak için eksiksiz komut satırı seçenekleri kümesini görebilirsiniz. Tüm 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. Bu özelliği nasıl kullanacağınızı öğrenmek için gcloud topic arg-files çalıştırın.

Robo testinden elde edilen test sonuçlarını nasıl araştıracağınızı öğrenmek için Test sonuçlarınızı analiz edin bölümüne bakın.

Enstrümantasyon testlerinizi çalıştırma

Şimdi, app-debug-test-unaligned.apk içindeki testleri aşağıdaki gibi çalıştırmak için instrumentation test türünü kullanarak Not Defteri uygulamasının Espresso testlerini belirtilen Android cihaz yapılandırmalarınızda çalıştırmak için gcloud komut satırı aracını kullanın:

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

Bir test APK'sı --test ile belirtilmişse --type instrumentation parametresi --test . Tüm 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. Bu özelliği nasıl kullanacağınızı öğrenmek için gcloud topic arg-files çalıştırın.

Gcloud CLI, Android Test Orkestratörü'nü destekler. Orchestrator, AndroidJUnitRunner v1.0 veya üstünü gerektirir. Etkinleştirmek için gcloud firebase test android run ile birlikte
--use-orchestrator bayrağı. --no-use-orchestrator dışı bırakmak için --no-use-orchestrator bayrağını --no-use-orchestrator .

Not: Test Lab'in enstrümantasyon testlerinizi yukarıda gösterilmeyen ek işaretler kullanarak nasıl çalıştırdığını da kontrol edebilirsiniz. Örneğin, test APK'nız tarafından kullanılan tek bir sınıfı veya bir sınıf yöntemini test etmek için --test-targets bayrağını kullanabilirsiniz. Başarısız olan testinizin gerçekten kesintili olup olmadığını da öğrenmek için, bir veya daha fazla test yürütmesinin kaç kez tekrar denenmesi gerektiğini belirten "--num-flaky-test-tryts" işaretini test durumları herhangi bir nedenle başarısız olur. Daha fazla bilgi edinmek için gcloud firebase test android run bölümüne bakın.

Enstrümantasyon testleri için kod kapsamı raporları

Test Lab, kod kapsamı raporlama araçları EMMA ve JaCoCo'yu destekler . Uygulamanızın gcloud firebase test android run , aşağıdaki bağımsız değişkenlerle gcloud firebase test android run komutunu çalıştırarak Test Lab testleri için bir kod kapsamı raporu alabilirsiniz:

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/coverage.ec" \
  --directories-to-pull /sdcard

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

  1. gcloud aracının, terminalinizdeki test sonucu tablosunun üzerine yazdırdığı gcloud konsol bağlantısını açın.
  2. Yürütmenin ayrıntılar sayfasını açmak için o bağlantıdaki listeden bir test yürütmesine tıklayın.
  3. 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 açın.

Test sonuçlarınızı analiz edin

Birkaç dakika sonra, test sonuçlarınızın temel bir özeti gcloud aracı tarafından yazdırılır:

Command test results

Komut satırı test çalıştırmanızın çıktısı ayrıca test sonuçlarını görüntülemek için bir bağlantı içerir. Bu sonuçların nasıl yorumlanacağı hakkında daha fazla bilgi edinmek için Android Sonuçlarını Firebase Test Lab'ı Analiz Etme bölümüne bakın.

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

Robo testi, --no-auto-google-login parametresini kullanmadığınız sürece, kimlik doğrulama için bir Google hesabı kullanan oturum açma ekranlarını otomatik olarak tamamlar. Ayrıca, sağladığınız test hesabı kimlik bilgilerini kullanarak özel oturum açma ekranlarını da tamamlayabilir. Bu parametreyi, uygulamanız tarafından kullanılan diğer metin alanları için özel giriş metni sağlamak için de kullanabilirsiniz.

Uygulamanızdaki metin alanlarını tamamlamak için --robo-directives parametresini kullanın ve key hedef UI öğesinin Android kaynak adı ve value metin dizesi olduğu virgülle ayrılmış key-value çiftleri listesi sağlayın . Bu bayrağı, Robo'ya belirli UI öğelerini (örneğin, "oturumu kapat" düğmesi) göz ardı etmesini söylemek için de kullanabilirsiniz. EditText alanları desteklenir ancak WebView UI öğelerindeki metin alanları desteklenmez.

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

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

Mevcut komutlar ve işaretler

Test Lab gcloud CLI, farklı spesifikasyonlara sahip testleri çalıştırmanıza olanak tanıyan çeşitli komutlara ve işaretlere sahiptir:

Test Lab ile gcloud komutlarını komut dosyası oluşturma

Aksi takdirde gcloud komut satırını kullanarak çalıştıracağınız mobil uygulama test komutlarını otomatikleştirmek için kabuk komut dosyalarını veya toplu iş dosyalarını kullanabilirsiniz. Aşağıdaki örnek bash betiği, iki dakikalık bir zaman aşımı ile bir enstrümantasyon testi çalıştırır ve test çalıştırmasının başarıyla tamamlandığı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 iş dosyalarını kullanarak çalıştırdığınız testlerin sonuçlarını daha iyi anlamak için kullanabileceğiniz birkaç çıkış kodu sağlar.

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

Çıkış kodu Notlar
0 Tüm test yürütmeleri geçti.
1 Genel bir arıza meydana geldi. Olası nedenler şunları içerir: var olmayan bir dosya adı veya bir HTTP / ağ hatası.
2 Bilinmeyen komutlar veya bağımsız değişkenler sağlandığı için testten çıkıldı.
10 Bir test yürütmesi içindeki bir veya daha fazla test senaryosu (test edilen sınıflar veya sınıf yöntemleri) geçmedi.
15 Firebase Test Lab, beklenmeyen bir hata nedeniyle test matrisinin başarılı olup olmadığını belirleyemedi.
18 Bu test yürütmesi için test ortamı, uyumsuz test boyutları nedeniyle desteklenmiyor. Bu hata, seçilen Android API seviyesi seçilen cihaz türü tarafından desteklenmiyorsa ortaya çıkabilir.
19 Test matrisi kullanıcı tarafından iptal edildi.
20 Bir test altyapısı hatası oluştu.