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 belgelenmiştir. 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 veya 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 düzeyine sahip bir cihaz seçtiğinizde testler daha hızlı başlayabilir. Cihazın kapasitesi düşükse testlerin yürütülmesi daha uzun sürebilir. Çağrılan testlerin sayısı, seçilen cihazların kapasitesinden çok daha büyükse testlerin tamamlanması daha uzun sürebilir.
Herhangi bir düzeyde cihaz kapasitesi üzerinde çalıştırılan testler aşağıdaki faktörler nedeniyle daha uzun sürebilir:
Cihaz kullanılabilirliğini ve test hızını etkileyen trafik.
Her an gerçekleşebilecek cihaz veya altyapı hataları. Test Lab için bildirilmiş bir altyapı olup olmadığını kontrol etmek isterseniz Firebase durum kontrol paneline bakın.
Test Lab'teki cihaz kapasitesi hakkında daha fazla bilgi edinmek için Android ve iOS için 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 sorunlarından kaynaklanır. Test Lab, kesin olmayan bir sonuç bildirmeden önce birden çok kez altyapı hatası oluşturan test çalıştırmalarını dahili olarak emekliye ayırır. Ancak failFast'ı kullanarak bu yeniden denemeleri devre dışı bırakabilirsiniz.
Hatanın nedenini belirlemek için aşağıdaki adımları uygulayın:
Tekrarlanabilirliğini doğrulamak için Test Lab'te testi tekrar deneyin.
Testi farklı bir cihazda veya cihaz türünde (varsa) çalıştırmayı deneyin.
Sorun devam ederse Firebase Slack'teki #test-lab kanalındaTest Lab ekibiyle iletişime geçin.
Bölme işlemi, testlerimin neden daha uzun sürmesine neden oldu?
Belirttiğiniz parça sayısı Test Lab'te kullanılabilen cihaz sayısını aştığında parçalara ayırma, 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 bölümüne bakın.
Testimin başlaması neden bu kadar uzun sürüyor?
Bir test isteği gönderdiğinizde uygulamanız, cihazda test çalıştırmaya hazırlanmak için önce doğrulanır, yeniden imzalanır vb. Bu işlem genellikle birkaç saniyeden kısa sürer ancak uygulamanızın boyutu gibi faktörlerden etkilenebilir.
Uygulamanız hazırlandıktan sonra test çalıştırmaları planlanır ve bir cihaz çalıştırmaya hazır olana kadar kuyrukta kalır. Tüm test çalıştırmaları tamamlanana kadar matris durumu "Beklemede" olur (test çalıştırmalarının sırada olup olmadığından veya etkin bir şekilde çalışıp çalışmadığından bağımsız olarak).
Testimin tamamlanması neden bu kadar uzun sürüyor?
Test çalıştırması tamamlandıktan sonra test yapıları cihazdan indirilir, işlenir ve Cloud Storage'e yüklenir. Bu adımın süresi, yapıların miktarından ve boyutundan etkilenebilir.
Uygulama veri döndürmez ve ekran görüntülerini bulamaz
Test yürütme yapıları (ekran görüntüleri ve günlük dosyaları gibi), Google Cloud Storage'te depolanır ve doğrudan Firebase konsolunda oluşturulur. Test çalıştırma 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 emin olun.
Yürütme işlemi 90 günden uzun bir süre önce gerçekleştirildiyse test yapıları büyük olasılıkla otomatik olarak silinmiştir. Test Lab kontrol panelindeki Test sonuçları sekmesini tıklayarak sonuç paketi yapılandırmasını kontrol edebilirsiniz. Varsayılan sonuç paketi, nesneleri 90 gün saklayacak şekilde yapılandırılmıştı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 dokümanlarını inceleyin.
Neden kısmi veya eksik enstrümantasyon test kaydı 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 (y, x'den 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 nedenlerinden bazıları ş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 durumlarının geri kalanını iptal eder.
Tüm testlerin tamamlandığından emin olmak için matrisin zaman aşım süresini 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, erken çıktığı veya takıldığı için tamamlanamadı.
Test kaydı, yakalanmayan bir istisna veya iddia hatası nedeniyle erkenden çıkabilir. Test durumları sonsuz bir döngüye takılabilir veya devam edemeyebilir. Örneğin, uygulama doğru görünümü göstermiyorsa ve test durumu kullanıcı arayüzünde işlemi gerçekleştiremiyorsa.
Testin hangi noktada durduğunu öğrenmek için videoyu ve logcat'ü kontrol edin.
Özel bir test çalıştırıcı (AndroidJUnitRunner'ın genişletilmesi dahil) beklenmedik bir şekilde kilitlendi veya logcat dosyasına beklenmedik test durumu başlangıç ya da bitiş işaretçileri yazdı.
Test çalıştırıcınızın kodunu kontrol edin.
logcat'e aşırı sayıda günlük yazıldı. Bu durum, arabelleği tıkadı veya logcat işlemini kilitledi.
Yazma işlemlerini logcat'e düşürün.
Test edilen uygulama kilitlendi.
Uygulamanızda hata ayıklama yapın.
Sık sorulan sorular
Test Lab için ücretsiz kotalar nelerdir? Kredim tükenirse ne yapmalıyım?
Firebase Test Lab, cihazlarda test yapmak ve Cloud API'leri kullanmak 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ı, test çalıştırmak için kullanılan cihaz sayısına göre belirlenir.
Firebase Spark planında, kullanıcılara ücretsiz olarak sunulan sabit bir test kotası vardır. Blaze planında, Google Cloud kullanımınız zaman içinde artarsa kotalarınız artabilir. Test kotanıza ulaşırsanız ertesi güne kadar bekleyin veya Spark planını kullanıyorsanız Blaze planına geçin.
Halihazırda Blaze planını kullanıyorsanız kota artışı isteğinde bulunabilirsiniz.
Daha fazla bilgi için Kotayı test etme başlıklı makaleyi inceleyin.
Cloud Testing API'nin 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. API kotasına ulaştıysanız:
Doğrudan Google Cloud konsolunda kotalarınızı düzenleyerek daha yüksek kotalar için istek gönderin (çoğu sınırın varsayılan olarak maksimuma 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 ucuma ulaşan trafiğin Test Lab'ten gelip gelmediğini nasıl öğrenebilirim?
Arka uçtan, kaynak IP adresini IP aralığımızla karşılaştırarak trafiğin Firebase tarafından 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. Bu durum, uygulamaların ve diğer test yapılarının Test Lab'ın dahili depolama alanı ile kullanıcıların sonuç grupları arasında kopyalanmasını engeller.
Test Lab'te kararsız testleri nasıl tespit edebilirim?
Testlerinizde 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 çalıştırmalarıyla aynı şekilde faturalandırılır veya günlük kotanıza dahil edilir.
Şunları unutmayın:
Hata tespit edildiğinde testin tamamı tekrar çalıştırılır. Yalnızca başarısız test durumlarının yeniden denenmesi desteklenmez.
Deflake yeniden deneme çalıştırmalarının aynı anda çalıştırılması planlanır ancak paralel olarak çalıştırılmaları (ör. trafik mevcut cihaz sayısını aştığında) garanti edilmez.
Test Lab giyilebilir cihazları destekler mi?
Evet! Test Lab, Google Pixel Watch'ı 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 Mevcut cihazlarda test etme başlıklı makaleyi inceleyin.
Test Lab en son 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 Mevcut cihazlarda test etme başlıklı makaleyi inceleyin.
Test Lab'te çalışan bir testi nasıl algılayabilirim?
Uygulamanızı Firebase'da test ediyorsanız veya Play Console'da lansman öncesi rapor için testler çalıştırıyorsanız MainActivity dosyanızdaki firebase.test.lab sistem mülkünü kontrol ederek bir testin Firebase tarafından barındırılan bir cihazda çalışıp çalışmadığını tespit edebilirsiniz. Ardından, testLabSetting için boole 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'u destekliyor mu?
Bu öğelerden 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'yu kullanarak bir enstrümantasyon testi yazabilir ve ardından testi Test Lab'de çalıştırabilirsiniz.
Test Lab kod karartılmış uygulamaların test edilmesini destekliyor mu (ör. ProGuard veya R8 ile)?
Test Lab, kodun karartılmasını veya kodun karartılmasını açıkça desteklemez. Uygulama büyük olasılıkla çalışır ancak karmaşık hale getirilmiş uygulama verileri (ör. yığın izlemeleri) günlüklerde karmaşık hale getirilmiş olarak görünür.
Test Lab'te test yaparken katlanabilir cihazımı farklı katlanabilir durumlarda ve duruşlarda 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.
Diğer yandan duruşlar, belirli cihaz yönelimi ve katlanabilir durumdan oluşur. Örneğin, yatay yönde HALF_OPENED durumu olan masaüstü duruşu veya dikey yönde HALF_OPENED durumu olan kitap duruşu.
Diğer Firebase ürünlerinden farklı olarak, Test Lab'ü kullanmak için Firebase SDK'sı eklemeniz gerekmez. Uygulamanız yoksa internetten APK indirebilir veya AndroidX GitHub deposundaki örneklerden birini kullanarak bir uygulama ve test APK'sı oluşturabilirsiniz.
Robo testi çalıştırmak için yalnızca uygulamanızın APK dosyasına ihtiyacınız olduğunu, enstrümasyon testi için ise hem bir uygulamaya hem de kaynak koddan oluşturulmuş bir test APK'sına ihtiyacınız olduğunu unutmayın. Daha fazla bilgi için Araçla test etme hakkındaki makaleyi inceleyin.
Ekran görüntüsü karşılaştırma testi için en iyi cihazlar hangileridir?
Ekran görüntüsü karşılaştırma testi, test beyanlarının bir test çalıştırılırken elde edilen ekran görüntülerinin beklenen davranışı temsil eden altın resimlerle karşılaştırılmasına dayanır. Bu tür testler bazı cihaz türlerinde diğerlerinden 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 benzer veya aynı resimleri kullanır.
Ayrıca, beklenen değişikliklerin bulunduğu durumlarda ekran görüntüsü testlerini daha güçlü hale getirmeye yardımcı olabilecek test kitaplıklarını incelemenizi öneririz.
Test Lab, sanal cihazları günceller mi?
Evet! Sanal cihazlar aşağıdaki değişiklikler yapıldığında güncellenir:
Mevcut resimlerde yapılan güncellemeler
Önceki API düzeylerinin desteğinin sonlandırılması
Yeni Android API düzeyleri eklendi
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 üzerinden 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 test, oturum açmak için kimlik bilgilerinin girilmesinin yanı sıra ek kullanıcı işlemi (ör. CAPTCHA'yı tamamlama) gerektiren oturum açma ekranlarını atlayamaz.
Kullanıcı arayüzü çerçevesi desteği
Robo test, Android kullanıcı arayüzü çerçevesindeki kullanıcı arayüzü öğelerini (View, ViewGroup ve WebView nesneleri dahil) kullanan uygulamalarda en iyi performansı gösterir. Unity oyun motorunu kullanan uygulamalar da dahil olmak üzere diğer kullanıcı arayüzü çerçevelerini kullanan uygulamaları test etmek için Robo test'i kullanırsanız test, ilk ekranın ötesine geçmeden çıkabilir.