Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Gcloud CLI ile teste başlayın

Firebase Test Lab, gcloud komut satırı arabirimi (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 Laboratuvarı'nı kullanmaya başlamak için gereken kurulum ve yapılandırmayı kapsar.

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

Bir Firebase projesi oluşturma

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.

Kıvılcım ve Alev planlarında sınırlı sayıda günlük test yürütmesi için Test Laboratuvarı'nı kullanabilirsiniz. Test Laboratuvarı'nı günlük kota sınırları olmadan kullanmak için Firebase Blaze planına yükseltmelisiniz.

Gcloud CLI'yi kurma

  1. Google Cloud SDK'sını 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 CLI'ye giriş yapın:
    gcloud auth login
    
  5. Firebase projenizi gcloud olarak 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 gerçekleştireceksiniz.

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

  2. Test etmek için şu anki Android cihazların listesini aşağıdaki gibi alın:

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

  3. firebase test android models describe komut ile belirli bir Android MODEL_ID hakkında daha fazla bilgi edinin:

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

  4. Test edilebilecek mevcut Android işletim sistemi sürümlerinin listesini alın:

     
    $ gcloud firebase test android versions list
     
    gcloud android versions list Daha sonra bir Android OS sürümüne karşı testler yapmak için komut çıkışının ilk iki sütunundan ( OS_VERSION_ID ve VERSION ) herhangi birinden 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 edilebilecek mevcut yerlerin listesini alın:

     
    $ gcloud firebase test android locales list
     
    Komut çıkışının ilk sütunu LOCALE , daha sonra yerel ayarlara karşı sınama yapmak için kullanabileceğiniz tanımlayıcıyı içerir. Test edilecek yerel ayarları belirtmezseniz, İngilizce varsayılan yerel ayar olarak kullanılır. Yüzlerce yerel ayar bulunduğundan komut çıktısı burada gösterilmez.

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 işaret, uygulamanızı otomatik olarak test etmek için Robo testini kullanıp kullanmadığınıza veya uygulamanızı test etmek için özel olarak yazılmış enstrümantasyon testlerini kullanıp kullanmadığınıza göre kullanılır.

Robo testini çalıştırma

Herhangi bir enstrümantasyon testiniz olmasa bile, uygulamanızda hata arayabilirsiniz. Uygulamanızın kullanıcı arayüzünün otomatik incelemesini yapmak için Robo testini kullanın. Robo testi, uygulamanın kullanıcı arayüzü üzerinden çeşitli yolların statik bir analizini yaparak ve ardından kilitlenmeleri ve diğer olası sorunları bulmak için uygulamayı tarayarak 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 değeri belirtilmezse --type robo parametresi örtük olur. Testleri çalıştırmak için komut satırı seçeneklerinin gcloud help firebase test android run yazarak görebilirsiniz: gcloud help firebase test android run . 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ğin nasıl kullanılacağını öğrenmek için gcloud topic arg-files çalıştırın.

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

Enstrümantasyon testlerinizi yapma

Şimdi, notepad uygulamasının Espresso testlerini belirtilen Android cihaz yapılandırmalarında çalıştırmak için gcloud komut satırı aracını kullanın ve testleri app-debug-test-unaligned.apk çalıştırmak için instrumentation test türü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

--test ile bir test --test belirtilmişse --type instrumentation parametresi örtük olur. 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ğin nasıl kullanılacağını öğrenmek için gcloud topic arg-files çalıştırın.

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

Not: Test Laboratuarının yukarıda gösterilmeyen ek bayrakları kullanarak enstrümantasyon testlerinizi nasıl çalıştıracağını da kontrol edebilirsiniz. Örneğin, tek bir sınıfı veya test APK'nız tarafından kullanılan bir sınıf yöntemini test etmek için --test-targets bayrağını kullanabilirsiniz. Ayrıca, başarısız olan testinizin bir veya daha fazla sayıda test yürütmesinin kaç kez denenmesi gerektiğini belirten '--num-flaky-test-attempt-' bayrağını kullanarak gerçekte pul pul olup olmadığını da öğrenebilirsiniz. Test senaryoları herhangi bir nedenle başarısız olur. Daha fazla bilgi için gcloud firebase testi android çalıştırmaya bakın .

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

Test Laboratuvarı EMMA ve JaCoCo kod kapsama raporlama araçlarını destekler. Uygulamanız için derlemeye entegre edilmiş bir gcloud firebase test android run , gcloud firebase test android run komutunu aşağıdaki bağımsız değişkenlerle gcloud firebase test android run 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 Laboratuvarı testlerinizi çalıştırmayı bitirdiğinde Google Cloud Storage'da kod kapsamı raporlarınızı bulun:

  1. Terminalinizdeki test sonucu tablosunun üzerinde yazılı gcloud aracının oluşturduğu gcloud konsolu 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 sınama yürütmesini tıklatın.
  3. Uygulamanın test sonuçlarının bulunduğu Google Cloud Storage grubuna 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ı için Firebase Test Laboratuarını Analiz Etme konusuna bakın.

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

Robo test, --no-auto-google-login parametresini kullanmadığınız sürece kimlik doğrulama için Google hesabı kullanan oturum açma ekranlarını otomatik olarak tamamlar. Ayrıca, sağladığınız test hesabı kimlik bilgilerini kullanarak özel giriş ekranlarını tamamlayabilir. Bu parametreyi, uygulamanız tarafından kullanılan diğer metin alanlarına ö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ış bir key-value çifti listesi sağlayın . Bu bayrağa Robo'ya belirli kullanıcı arabirimi öğelerini (ör. "Oturum kapatma" düğmesi) yok saymasını bildirmek 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
 

Kullanılabilir komutlar ve işaretler

Test Laboratuvarı gcloud CLI'sinde, farklı özelliklere sahip testleri çalıştırmanıza izin veren çeşitli komutlar ve işaretler bulunur:

  • Android Test Orkestratörü bayrağı : Uygulamanızın testlerinin her birini kendi Instrumentation çağrısında çalıştırmanıza izin veren bir araç olan Orkestratörü etkinleştirmek için bir bayrak. Test Laboratuvarı her zaman Orkestratör'ün en son sürümünü çalıştırır.

  • Game Loop test bayrakları : Oyun uygulamalarındaki oyuncu eylemlerini simüle etmek için bir "demo modunu" etkinleştiren ve kontrol eden bir dizi yapılandırma bayrağı. Test Laboratuarı ile Game Loop testlerini çalıştırma hakkında daha fazla bilgi edinin.

  • Düzgün Parçalama bayrağı (beta olarak) : Test senaryolarını eşit olarak dağıtmak istediğiniz parça sayısını belirten bir bayrak. Kırıklar ayrı cihazlarda paralel olarak çalıştırılır.

  • Manuel Parçalama bayrağı (beta olarak) : Bir parçada (bir grup test vakası) çalıştırılacak bir grup paketi, sınıfı ve / veya test vakasını belirten bir bayrak. Kırıklar ayrı cihazlarda paralel olarak çalıştırılır.

  • Ağ trafik profilleri bayrağı (beta olarak) : Testlerinizin fiziksel cihazlarla hangi ağ profilini kullandığını belirten bir bayrak. Ağ profilleri, çeşitli ağ koşullarını taklit ederek uygulamanızın performansını güvenilmez veya öngörülemeyen ağlarda test etmenize olanak tanır.

Test Laboratuvarı ile komut dosyası gcloud komutları

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ışmasının 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 Laboratuvarı, komut dosyaları veya toplu iş dosyaları kullanarak çalıştırdığınız testlerin sonuçlarını daha iyi anlamak için kullanabileceğiniz birkaç çıkış kodu sağlar.

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

Çıkış kodu notlar
0 Tüm test yürütmeleri geçti.
1 Genel bir hata oluştu. Olası nedenler şunlardır: Varolmayan 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 Test yürütmesi içindeki bir veya daha fazla test durumu (test edilen sınıflar veya sınıf yöntemleri) geçmedi.
15 Firebase Test Laboratuvarı, beklenmedik bir hata nedeniyle test matrisinin başarılı olup olmadığını belirleyemedi.
18 Bu test yürütme için test ortamı, uyumsuz test boyutları nedeniyle desteklenmiyor. Bu hata, seçilen Android API düzeyi seçilen cihaz türü tarafından desteklenmiyorsa oluşabilir.
19 Test matrisi kullanıcı tarafından iptal edildi.
20 Bir test altyapısı hatası oluştu.