Enstrümantasyon testi , Espresso ve UI Automator 2.0 Android test çerçevelerini kullanarak uygulamanızı test etmek için sizin veya ekibiniz tarafından özel olarak yazılmış bir testtir. Test Lab, bu süre içinde yürütmeyi tamamlayan tüm test senaryoları için sonuçlar sağlar.
Bir enstrümantasyon testi yazdığınızda, uygulamanız için APK modülüyle birlikte daha sonra Test Lab'a yükleyeceğiniz ikinci bir APK modülü oluşturursunuz. Test APK'ları oluşturma hakkında bilgi edinmek için bkz . Uygulamanızı test edin .
Enstrümantasyon testi zaman aşımı
Enstrümantasyon testlerinin fiziksel cihazlarda 45 dakikaya ve sanal cihazlarda 60 dakikaya kadar çalışmasına izin verilir.
Orchestrator ile testleri bağımsız olarak çalıştırın
Android Test Orkestratörü , uygulamanızın her enstrümantasyon testini bağımsız olarak çalıştırmanıza olanak tanır. Test Lab her zaman Orchestrator'ın en son sürümünü kullanır. Orchestrator'ı kullanmanın birkaç avantajı ve bir dezavantajı vardır:
Artıları:
- Paylaşılan durum yok: Her test kendi enstrümantasyon örneğinde çalışır, böylece paylaşılan bir durum testler arasında birikmez.
- İzole çökmeler: Bir test çökerse, yalnızca o araç sonlandırılır ve paketinizdeki diğer testler yine de çalışabilir.
Con:
- Daha uzun çalışma süresi: Her test kendi enstrümantasyon örneğini çalıştırır, yani test süreci genel olarak biraz daha uzun sürer. Artan çalışma süresi, kota kullanımınızı veya fatura sürenizi etkileyebilir ve cihazlarınızın zaman aşımı sınırlarına ulaşmanıza neden olabilir.
Orkestratörü etkinleştir
Orchestrator for Test Lab'i etkinleştirmek için, enstrümantasyon test kurulumunda, Ek seçenekler > Orkestratör ile Çalıştır'a tıklayın.
Parçalama ile testleri hızlandırın
Test parçalama, bir dizi testi ayrı ayrı çalışan alt gruplara (parçalara) böler. Test Lab, her bir parçayı birden fazla cihaz kullanarak paralel olarak otomatik olarak çalıştırır ve tüm test setini daha kısa sürede tamamlar.
N parça oluşturduğunuzu varsayalım. Test Lab, seçtiğiniz her cihaz için N adet aynı cihazı döndürür ve her cihazda testlerin bir alt kümesini çalıştırır. Bu, parçalanmış test senaryolarının, her cihaz için her zaman bir test çalıştırmasıyla sonuçlanan parçalanmamış test senaryolarının aksine, cihaz başına birden çok test yürütmesine neden olabileceği anlamına gelir (Test Laboratuvarı'ndaki temel kavramlara hızlı bir genel bakış için bkz. Anahtar kavramlar ).
Test parçaları için faturalandırma
Test Lab, AndroidJUnitRunner'ın yerleşik parçalama mekanizmasından yararlanarak parçalarınızı uygular . Boş parçaları döndürmek için ücretlendirilmekten kaçınmak için (atanmış test durumları olmayan parçalar), oluşturduğunuz parça sayısı toplam test durumu sayısından az olmalıdır. Her bir test senaryosunun çalışması ne kadar sürdüğüne bağlı olarak, genellikle parça başına 2-10 test durumu atamak iyi bir fikirdir.
Faturalama hakkında daha fazla bilgi için Kullanım, kotalar ve faturalama bölümünü okuyun.
Test parçalamayı etkinleştir
Firebase Konsolu'nu kullanarak test parçalamayı etkinleştirebilirsiniz. Test parçalamayı etkinleştirmek için:
Enstrümantasyon testi kurulumunda, Ek seçenekler öğesine tıklayın.
Sharding bölümünde çalıştırmak istediğiniz parça sayısını girin.
Ekran görüntüsü alma
Aşağıdaki talimatlar, Test Lab'in ekran görüntüsü kitaplığını uygulamanıza nasıl ekleyeceğinizi ve bu kitaplığı testinizden nasıl çağıracağınızı açıklamaktadır. Test Lab, Espresso test çerçevesi kullanılarak yazılan testler gibi enstrümantasyon testlerini çalıştırırken ekran görüntüsü almak için kullanabileceğiniz bir kitaplık sağlar. Testiniz çalıştırıldıktan sonra, Android Studio veya Firebase konsolunda ekran görüntülerini inceleyebilirsiniz.
Testinizi ekran görüntüsü alma için etkinleştirmek üzere şu kitaplığı ekleyin: cloudtestingscreenshotter_lib.aar . Ekran görüntüsü alma özelliğinin test APK app-debug-test-unaligned.apk ve NotePad örnek uygulamasına zaten dahil edildiğini unutmayın. Bir Robo testi çalıştırdığınızda ekran görüntüleri de otomatik olarak alınır.
1. Ekran görüntüsü kitaplığını projenize ekleyin
Android Studio'da Proje görünümünü açın ve proje adınıza sağ tıklayın. Ardından Yeni > Dizin'i tıklayın.
Yeni Dizin iletişim kutusuna aars yazın . Bu, test projenizin kökünde bir aars dizini oluşturur ( uygulama klasörüne bir eş dizin olarak).
Cloudtestingscreenshotter_lib.aar dosyasını kopyalayın ve aars klasörüne yapıştırın.
Uygulamanızın kök düzeyinde (proje düzeyinde)
build.gradledosyasında, her
repositoriesbloğundaki aars klasörüne bir referans ekleyin:
repositories { jcenter() flatDir { dirs '../aars' } } ...
Senin modülün üst düzey dizinde, açın (NotePad örnek uygulama için, bu uygulama dizinidir)
build.gradledosyası ve üst düzey için cloudtestingscreenshotter_lib.aar için bir bağımlılık ekleyin
dependenciesbloğun:
dependencies { // Cloud testing androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar') // Other dependencies go here }
AndroidManifest.xmldosyanızda,
<manifest>etiketine aşağıdaki satırları ekleyerek uygulamanız için sistem izinlerini belirtin. Android 10 (API seviyesi 29) veya daha yüksek bir
WRITE_EXTERNAL_STORAGEtest ediyorsanız,
WRITE_EXTERNAL_STORAGEiznini atlayın (uygulamanızın cihaza ekran görüntülerini okuyup yazması için bu izne gerek yoktur).
<manifest ... > <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> ... </manifest>
2. Testinizden bir ekran görüntüsü alın
Testinizde ekran görüntüsü almak istediğiniz herhangi bir noktada cloudtestingscreenshotter_lib kitaplığından
ScreenShotter.takeScreenshot yöntemini çağırın; burada ilk bağımsız değişken, ekran görüntüsünü tanımlamak için kullandığınız bir etikettir (aşağıdaki örnekte
main_screen_2 kullanılmıştır):
Java
ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);
Kotlin + KTX
ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)
3. Ekran görüntülerinizi görüntüleyin
Testiniz tamamlandıktan sonra, test sonuçları ağacından bir öğe seçerek ve ardından Ekran Görüntülerini Görüntüle'ye tıklayarak test sırasında alınan ekran görüntülerini karşılaştırabilirsiniz. seçeneği.
Farklı konfigürasyonlardan ekran görüntülerini aşağıdaki gibi seçebilir ve karşılaştırabilirsiniz:
|Görev||Aksiyon|
|Test yürütmeleri arasında geçiş yapın.|| Sol üst köşedeki açılır menüyü kullanın.|
|Bir test yürütmesi içinde ekran görüntüleri arasında geçiş yapın.|| Sağ üst köşedeki okları kullanın. |
|Mevcut görünüme ek ekran görüntüsü karşılaştırma panelleri ekleyin.|| Karşılaştır'a tıklayın.|
|Farklı bir test boyutu seçin (cihaz türü, yönelim, yerel ayar vb.).||Ekran görüntüsünün altındaki listeden yeni bir boyut üyesi seçin.|