Bu sayfada, Firebase Test Lab ile test çalıştırma hakkında sık sorulan soruların yanıtları ve sorun giderme yardımı sağlanmaktadır. Bilinen sorunlar da belgelenir. Aradığınızı bulamıyorsanız veya daha fazla yardıma ihtiyacınız varsa Firebase Slack'teki #test-lab kanalına katılın ya da Firebase Destek Ekibi ile iletişime geçin.
Sorun giderme
Testimin çalışması neden bu kadar uzun sürüyor?
Test Lab kataloğunda yüksek kapasite seviyesine sahip bir cihaz seçtiğinizde testler daha hızlı başlayabilir. Cihazın kapasitesi düşük olduğunda testlerin yürütülmesi daha uzun sürebilir. Çağrılan test sayısı, seçilen cihazların kapasitesinden çok daha fazlaysa testlerin tamamlanması daha uzun sürebilir.
Herhangi bir düzeydeki cihaz kapasitesinde çalışan testler, aşağıdaki faktörler nedeniyle daha uzun sürebilir:
Trafik (cihaz kullanılabilirliğini ve test hızını etkiler).
Cihaz veya altyapı arızaları (her an meydana gelebilir). Test Lab için bildirilen bir altyapı olup olmadığını kontrol etmek için Firebase durum kontrol paneline bakın.
Test Lab'daki cihaz kapasitesi hakkında daha fazla bilgi edinmek için Android ve iOS cihaz kapasitesi bilgilerine bakın.
Neden kesin olmayan test sonuçları alıyorum?
Kesin olmayan test sonuçları genellikle iptal edilen test çalıştırmaları veya altyapı hataları nedeniyle ortaya çıkar.
Altyapı hataları, ağ hataları veya beklenmedik cihaz davranışları gibi dahili Test Lab sorunlardan kaynaklanır. Test LabfailFast'i kullanarak bu yeniden denemeleri devre dışı bırakabilirsiniz. Ancak Test Lab, altyapı hatalarına birden çok kez neden olan test çalıştırmalarını sonuçsuz bir sonuç bildirmeden önce dahili olarak kullanımdan kaldırır.
Hatanın nedenini belirlemek için aşağıdaki adımları uygulayın:
Tekrarlanabilir olduğunu doğrulamak için testi Test Lab içinde tekrar deneyin.
Mümkünse testi farklı bir cihazda veya cihaz türünde çalıştırmayı deneyin.
Sorun devam ederse Firebase Slack'teki #test-lab kanalındaTest Lab ekibiyle iletişime geçin.
Parçalama neden testlerimin daha uzun sürmesine neden oldu?
Parçalama, belirttiğiniz parça sayısı Test Lab'da kullanılabilecek cihaz sayısını aştığında testlerinizin daha uzun sürmesine neden olabilir. Bu durumu önlemek için farklı bir cihaza geçmeyi deneyin. Farklı bir cihaz seçme hakkında daha fazla bilgi için
Cihaz Kapasitesi başlıklı makaleyi inceleyin.
Testimin başlaması neden uzun sürüyor?
Bir test isteği gönderdiğinizde, uygulamanız önce bir cihazda test çalıştırmaya hazırlık için doğrulanır, yeniden imzalanır vb. Bu işlem normalde birkaç saniyeden kısa sürer ancak uygulamanızın boyutu gibi faktörlerden etkilenebilir.
Uygulamanız hazırlandıktan sonra test yürütmeleri planlanır ve bir cihaz testi çalıştırmaya hazır olana kadar sıraya alınır. Tüm test işlemleri tamamlanana kadar matris durumu "Beklemede" olur (test işlemlerinin sırada olup olmamasından veya etkin bir şekilde çalışmasından bağımsız olarak).
Testimin tamamlanması neden bu kadar uzun sürüyor?
Test işlemi tamamlandıktan sonra test yapıları cihazdan indirilir, işlenir ve Cloud Storage'ya yüklenir. Bu adımın süresi, yapay nesnelerin miktarı ve boyutundan etkilenebilir.
Uygulama veri döndürmüyor ve ekran görüntüleri bulunamıyor
Test yürütme yapıları (ör. ekran görüntüleri ve günlük dosyaları) Google Cloud Storage içinde depolanır ve doğrudan Firebase konsolunda oluşturulur. Test yürütme işleminiz son 90 gün içinde gerçekleştirildiyse proje düzeyinde roller (proje sahibi, proje düzenleyici veya proje görüntüleyici) atadığınızdan emin olun.
Ayrıca, Cloud Audit Logging'in projeniz veya kuruluşunuz için etkinleştirilmediğinden de emin olun.
Yürütme 90 günden daha uzun süre önce yapıldıysa test yapıları büyük olasılıkla otomatik olarak silinmiştir. Test Lab kontrol panelinde Test sonuçları sekmesini tıklayarak sonuç grubu yapılandırmasını kontrol edebilirsiniz. Varsayılan sonuç grubu, nesneleri 90 gün boyunca saklayacak şekilde yapılandırılır.
Test yapılarınızı daha uzun süre saklamak için gcloud firebase test android run komutunu --results-bucket işaretiyle çalıştırın ve sonuç paketinin adını iletin. Daha fazla bilgi için gcloud firebase test android run referans belgelerini inceleyin.
Neden kısmi veya eksik enstrümantasyon testi sonuçları alıyorum?
Enstrümantasyon testlerini çalıştırdığınızda, Test run failed to complete. Expected
x tests, received y gibi mesajlar içeren kısmi sonuçları belirten test hataları görebilirsiniz (burada y, x değerinden küçüktür). Bu hata, Test Lab'ün genellikle AndroidJUnitRunner tarafından oluşturulan test durumu başlangıç veya bitiş işaretçileri için logcat'i ayrıştıramadığı anlamına gelir.
Bu sorunun yaygın nedenleri şunlardır:
Sorun açıklaması
Olası çözüm
Test durumu, zaman aşımı nedeniyle çalıştırılmadı. Testlerin toplam süresi, belirttiğiniz zaman aşımından veya maksimum zaman aşımından daha uzunsa Test Lab, test senaryolarının geri kalanını iptal eder.
Tüm testlerin tamamlanabilmesi için matrisin zaman aşımını artırın.
Henüz yapmadıysanız testleri parçalara ayırın. Böylece her parça testlerin bir alt kümesini çalıştırır ve daha kısa sürede tamamlanır.
Parçalamayı zaten etkinleştirdiyseniz parça sayısını artırın.
Test senaryosu, erken çıktığı veya takıldığı için tamamlanamadı.
Test durumu, yakalanmamış bir istisna veya onay hatası nedeniyle erken çıkabilir. Test senaryoları sonsuz döngüye takılabilir veya ilerleyemeyebilir. Örneğin, uygulama doğru görünümü göstermiyorsa ve test senaryosu kullanıcı arayüzünde işlemi gerçekleştiremiyorsa bu durum oluşabilir.
Testin nerede durduğunu araştırmak için videoyu ve logcat simgesini kontrol edin.
Özel bir test çalıştırıcı (AndroidJUnitRunner'ı genişletme dahil) beklenmedik şekilde çöktü veya logcat konumuna beklenmedik test durumu başlangıç ya da bitiş işaretçileri yazdı.
Test çalıştırıcı kodunuzu kontrol edin.
logcat konumuna aşırı günlük yazıldı. Bu durum, arabelleği aşırı yükledi veya logcat işleminin kilitlenmesine neden oldu.
Yazma işlemlerini logcat'ya düşürün.
Test edilen uygulama kilitlendi.
Uygulamanızda hata ayıklayın.
Sık sorulan sorular
Test Lab için ücretsiz kotalar nelerdir? Lisansım biterse ne yapmalıyım?
Firebase Test Lab, cihazlarda test etme ve Cloud API'lerini kullanma için ücretsiz kotalar sunar. Test kotasının standart Firebase fiyatlandırma planını kullandığını, Cloud API kotalarının ise kullanmadığını unutmayın.
Test kotası
Test kotaları, testleri çalıştırmak için kullanılan cihaz sayısına göre belirlenir.
Firebase Spark planında, kullanıcılar için ücretsiz olan sabit bir test kotası bulunur. Blaze planında, Google Cloud kullanımınız zamanla artarsa kotalarınız da artabilir. Test kotanıza ulaşırsanız ertesi günü bekleyin veya şu anda Spark planını kullanıyorsanız Blaze planına geçin.
Zaten Blaze planındaysanız kota artışı talep edebilirsiniz.
Daha fazla bilgi için Test kotası başlıklı makaleyi inceleyin.
Cloud Testing API'de iki kota sınırı vardır: proje başına günlük istek sayısı ve proje başına her 100 saniyede istek sayısı. Kullanımınızı Google Cloud konsolunda izleyebilirsiniz.
Cloud Tool Results API kotası
Cloud Tool Results API'nin iki kota sınırı vardır: proje başına günlük sorgu sayısı ve proje başına her 100 saniyede sorgu sayısı. Kullanımınızı Google Cloud konsolunda izleyebilirsiniz.
API sınırları hakkında daha fazla bilgi için Test Lab için Cloud API kotaları başlıklı makaleyi inceleyin. Bir API kotasına ulaştıysanız:
Doğrudan Google Cloud konsolunda kotalarınızı düzenleyerek daha yüksek kota isteğinde bulunun (Çoğu sınırın varsayılan olarak maksimum değere ayarlandığını unutmayın) veya
Google Cloud konsolunda bir istek formu doldurarak veya Firebase Destek Ekibi ile iletişime geçerek daha yüksek API kotaları isteyin.
Arka uçuma ulaşan trafiğin Test Lab kaynaklı olup olmadığını nasıl öğrenebilirim?
Arka uçtan, kaynak IP adresini IP aralıklarımızla karşılaştırarak trafiğin Firebase'de barındırılan test cihazlarından gelip gelmediğini belirleyebilirsiniz.
Test Lab, VPC-SC ile çalışır mı?
Test Lab, VPC-SC ile çalışmaz. VPC-SC, uygulamaların ve diğer test yapıtlarının Test Lab'nın dahili depolama alanı ile kullanıcıların sonuç grupları arasında kopyalanmasını engeller.
Test Lab'da kararsız testleri nasıl tespit edebilirim?
Testlerinizdeki kararsız davranışları tespit etmek için
--num-flaky-test-attempts
seçeneğini kullanmanızı öneririz. Deflake yeniden çalıştırmaları, normal test işlemleriyle aynı şekilde faturalandırılır veya günlük kotanıza dahil edilir.
Şunları unutmayın:
Bir hata algılandığında tüm test yürütme işlemi tekrar çalıştırılır. Yalnızca başarısız olan test durumlarını yeniden deneme desteği yoktur.
Hata düzeltme için yeniden deneme çalıştırmaları aynı anda çalışacak şekilde planlanır ancak trafiğin kullanılabilir cihaz sayısını aştığı durumlarda paralel olarak çalışacağı garanti edilmez.
Test Lab, giyilebilir cihazları destekliyor mu?
Evet! Test Lab, Google Pixel Watch'u destekler. Artık Google Pixel Watch'larda bağımsız Wear uygulamanızda testler çalıştırabilirsiniz. Test Lab cihazlar hakkında daha fazla bilgi edinmek için Kullanılabilir cihazlarda test etme başlıklı makaleyi inceleyin.
Test Lab, en yeni Google cihazlarını destekliyor mu?
Evet! Test Lab, Google Pixel Tablet ve Google Pixel Fold'u destekler. Testlerinizi bağımsız fiziksel cihazlarınızda çalıştırabilirsiniz.
Test Lab cihazlar hakkında daha fazla bilgi edinmek için Kullanılabilir cihazlarda test etme başlıklı makaleyi inceleyin.
Test Lab'da çalışan bir testi nasıl tespit ederim?
Uygulamanızı Firebase'de test ediyorsanız veya Play Console'da lansman öncesi rapor için testler çalıştırıyorsanız MainActivity dosyanızda firebase.test.lab sistem özelliğini kontrol ederek testin Firebase'de barındırılan bir cihazda çalıştırılıp çalıştırılmadığını tespit edebilirsiniz. Daha sonra, testLabSetting için boolean değerine göre ek ifadeler yürütebilirsiniz. Daha fazla bilgi için Değiştirilmiş test davranışları başlıklı makaleyi inceleyin.
Test Lab
Appium, Flutter/FlutterDriver, ReactNative/Jest veya Cucumber'ı destekliyor mu?
Bu öğelerin bazıları yol haritamızda yer alsa da şu anda bu test ve uygulama geliştirme platformlarını destekleme konusunda taahhütte bulunamıyoruz. Ancak uygulamanızı Espresso'yu destekleyen bir çerçeveyle (ör. Flutter) oluşturduysanız Espresso kullanarak bir enstrümantasyon testi yazabilir ve testi Test Lab'da çalıştırabilirsiniz.
Test Lab
(ör. ProGuard veya R8 ile) kod karartma uygulanmış uygulamaların test edilmesini destekliyor mu?
Test Lab, karartma veya karartmayı kaldırma işlemlerini açıkça desteklemez. Uygulama büyük olasılıkla çalışır ancak yığın izleri gibi karartılmış uygulama verileri günlüklerde karartılmış olarak görünür.
Test Lab üzerinde test yaparken katlanabilir cihazımı farklı katlanabilir durumlarda ve pozisyonlarda kullanabilir miyim?
Katlanabilir cihazlar, FLAT (tamamen açık) veya HALF_OPENED (tamamen açık ile tamamen kapalı arasında) gibi çeşitli katlanmış durumlarda olabilir.
Pozisyonlar ise belirli bir cihaz yönü ve katlanabilir durumdan oluşur. Örneğin, yatay yönde HALF_OPENED durumunda olan masaüstü duruşu veya dikey yönde HALF_OPENED durumunda olan kitap duruşu.
Diğer Firebase ürünlerinin aksine, Test Lab kullanmak için Firebase SDK'sı eklemeniz gerekmez. Henüz bir uygulamanız yoksa internetten bir APK indirebilir veya AndroidX GitHub deposundaki örneklerden birini kullanarak uygulama ve test APK'sı oluşturabilirsiniz.
Robo testi çalıştırmak için yalnızca uygulamanızın APK dosyasının gerektiğini, enstrümantasyon testi için ise kaynak koddan oluşturulmuş hem bir uygulama hem de bir test APK'sının gerektiğini unutmayın. Daha fazla bilgi için Enstrümanlı testler hakkında bilgi edinin.
Ekran görüntüsü karşılaştırma testi için en uygun cihazlar hangileridir?
Ekran görüntüsü karşılaştırmalı test, test onaylarının, test çalıştırılırken elde edilen ekran görüntülerini beklenen davranışı temsil eden altın görüntülerle karşılaştırmaya dayandığı bir testtir. Bu tür testler, bazı cihaz türlerinde diğerlerine kıyasla daha hassas olabilir. Bu tür testler için Arm (*.arm) emülatör cihazlarını hedeflemenizi öneririz. Arm emülatör cihazlar, Android Studio'nun "genel" emülatörlerine çok benzeyen veya aynı olan görüntüler kullanır.
Ayrıca, beklenen değişiklikler olduğunda ekran görüntüsü testlerinin daha sağlam hale gelmesine yardımcı olabilecek test kitaplıklarını araştırmanızı öneririz.
Test Lab sanal cihazları günceller mi?
Evet! Aşağıdaki değişiklikler yapıldığında sanal cihazlar güncellenir:
Mevcut resimlerde yapılan güncellemeler
Daha önceki API düzeylerinin desteğinin sonlandırılması
Yeni Android API düzeyleri eklenir
Kapsam raporlarını nasıl etkinleştirebilirim?
Kapsam raporlarını etkinleştirmek için environmentVariables alanınacoverage=true ekleyin.
Android Test Orchestrator kullanıyorsanız kapsam sonuçlarını depolamak için bir dizin sağlamanız gerekir:
Çözünürlük, desteklenen ABI'ler gibi cihaz ayrıntılarını nerede bulabilirim?
Ayrıntılı cihaz bilgileri API aracılığıyla kullanılabilir ve describe komutu kullanılarak gcloud istemcisinden erişilebilir:
gcloud firebase test android models describe MODEL
Bilinen sorunlar
Oturum açma Captcha'ları
Robo testi, oturum açmak için kimlik bilgilerini girmenin dışında ek kullanıcı işlemi (ör. CAPTCHA tamamlama) gerektiren oturum açma ekranlarını atlayamaz.
Kullanıcı arayüzü çerçevesi desteği
Robo testi, Android kullanıcı arayüzü çerçevesindeki kullanıcı arayüzü öğelerini (View, ViewGroup ve WebView nesneleri dahil) kullanan uygulamalarda en iyi şekilde çalışır. Unity oyun motorunu kullanan uygulamalar da dahil olmak üzere diğer kullanıcı arayüzü çerçevelerini kullanan uygulamaları çalıştırmak için Robo testini kullanırsanız test, ilk ekranın ötesine geçmeden sonlandırılabilir.