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
- 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
. - Firebase projenizi, PROJECT_ID öğesinin bulunduğu gcloud'da ayarlayın
Firebase projenizin kimliği:
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 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ış
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
Komutun ilk iki sütunundan bir tanımlayıcı kullanabilirsiniz çıkışını (
OS_VERSION_ID
veVERSION
) 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 belirtmezsenizTAGS
sütununun altında belirtilen varsayılan değeri kullanılır.Örnek çıkış
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 :
gcloud
aracının 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.
- Bu öğenin bulunduğu Cloud Storage paketine gitmek için Test sonuçları'nı tıklayın test sonuçlarını takip edebilirsiniz.
- 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 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. |