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
- Google Cloud SDK'yı indirin
- Yüklemenizin güncel olduğundan emin olun:
gcloud components update
- Google Hesabınızı kullanarak gcloud KSA'da oturum açın:
gcloud auth login
- PROJECT_ID, Firebase projenizin kimliğidir:
gcloud config set project PROJECT_ID
gcloud KSA aracı da buna dahildir.
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ış
models describe
: Belirli bir AndroidMODEL_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
veVERSION
) bir tanımlayıcı kullanabilirsiniz. Test edilecek Android OS sürümlerini belirtmezsenizTAGS
sütununda belirtilen varsayılan sürüm kullanılır.Örnek çıkış
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:
gcloud
aracınınFirebase terminalinizdeki test sonucu tablosuna bakın.- Söz konusu bağlantıdaki listeden bir test yürütmesini tıklayarak ilgili yürütme ayrıntılar sayfasına gidin.
- 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.
- 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 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. |