Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Parçalamayı Yapılandır

Bu sayfada, parçalama yoluyla bir paket modülünün ( AndroidTest.xml ) ayarlanmasının ve laboratuvarda sürekli yürütme sırasında en iyi hız performansını elde etmenin mümkün olduğu açıklanmaktadır. Seçenekleri, her birinin kullanım mantığı ile genel bir şekilde açıklamaya çalışacağız.

Laboratuvarda sürekli olarak bir paket çalıştırılırken, toplam tamamlanma süresini azaltmak için paket genellikle birkaç cihazda parçalanır. Kablo grubu, genel tamamlanma süresini (son parça bittiğinde) en aza indirmek için tipik olarak her bir parçanın yürütme süresini dengelemeye çalışır; ancak bazı testlerin doğası gereği, her zaman yeterli iç gözlemimiz yoktur ve modül sahibinin bazı davranışları ayarlaması gerekir.

Parçalanabilir mi, parçalanamaz mı?

<option name="not-shardable" value="true" /> gerektiğini bildirmek için bir modülü ( AndroidTest.xml ) <option name="not-shardable" value="true" /> ile etiketlemek mümkündür.

Tipik bir modülde, kablo demetinin modülünüzü parçalamasına izin vermek (varsayılan davranış) yapılacak doğru şeydir. Ancak bazı durumlarda, bu davranışı geçersiz kılmak isteyebilirsiniz:

  • Modülünüzün kurulumu pahalı olduğunda:

Bir modülün parçalanması, hazırlanmanın (APK yükleme, itme dosyası, vb.) Muhtemelen dahil olan her cihaz için bir kez çalıştırılmasıyla sonuçlanır. Modül kurulumunuz uzun ve pahalıysa ve testin çalışma zamanına kıyasla çoğaltılmaya değmiyorsa, modülünüzü parçalanamaz olarak etiketlemelisiniz.

  • Modülünüzdeki test sayısı az olduğunda:

Bir modülün parçalanması, tüm test durumlarının muhtemelen farklı cihazlarda bağımsız olarak yürütülmesine neden olur. Bu, ilk nokta ile ilgilidir; test sayınız düşükse, tek bir testle sonuçlanabilir veya bazı parçalarda test yapılmayabilir ve bu da herhangi bir hazırlık adımını oldukça pahalı hale getirir. Örneğin, tek bir test senaryosu için bir APK yüklemek genellikle buna değmez.

Enstrümantasyon testleri: Maksimum parça sayısı?

AndroidJUnitTest aracılığıyla çalıştırılan bir enstrümantasyon testi, APK'yi gerçekten yükleyip çalıştırana kadar kaç testin enstrümantasyonun parçası olduğunu koşum takımına göstermez. Bu işlemler maliyetlidir ve paketin tüm modüller parçası için parçalama zamanında yürütülemez.

Kablo demeti, enstrümantasyon testini aşabilir ve bazı boş parçalarla sonuçlanabilir; Bir enstrümantasyon testini altı parça içinde beş test ile parçalamak, bir test ile beş parça ve test içermeyen bir parça ile sonuçlanır. Bu parçaların her biri, maliyetli bir APK kurulumu gerektirecektir.

Dolayısıyla, enstrümantasyon testi APK'sındaki test sayısı düşük olduğunda, modülü <option name="not-shardable" value="true" /> ile etiketlemek, kablo demetinin modülün parçalanmasının buna değmeyeceğini bilmesini sağlar.

AndroidJUnitTest çalıştırıcısı, parçalanmasına izin verilen maksimum parça sayısını belirtmesine izin veren özel bir seçeneğe sahiptir: <option name="ajur-max-shard" value="5" /> .

Bu, çağırma seviyesinde istenen parça sayısına bakılmaksızın enstrümantasyonun maksimum kaç kez parçalanabileceğini belirtmenize olanak tanır. Varsayılan olarak enstrümantasyon, çağrı için istenen parça sayısına bölünecektir.

Örneğin, enstrümantasyon testi APK'nız yalnızca iki test durumu içeriyorsa ancak yine de ajur-max-shard istiyorsanız, ajur-max-shard değerinin 2 olması boş parçalar oluşturmamanızı sağlar.