Bu sayfada, bir paket modülünü (
AndroidTest.xml ) parçalama yoluyla ayarlamak ve laboratuarda sürekli yürütme sırasında en iyi hız performansını elde etmek mümkün. Seçenekleri, her birini kullanma rasyonuyla genel bir şekilde tarif etmeye çalışacağız.
Laboratuarda sürekli bir paket çalıştırırken, paket genel olarak tamamlanma süresini azaltmak için genellikle birkaç cihazda parçalanır. Kablo demeti, genel olarak tamamlanma süresini (son parça bittiğinde) en aza indirmek için her bir parçanın uygulama süresini dengelemeye çalışır; ancak bazı testlerin doğası gereği, her zaman yeterli içgözlemeye sahip değiliz ve modül sahibinin bazı davranışları ayarlaması gerekiyor.
Keskinleştirilebilir veya keskinleştirilemez mi?
Bir modülü (
AndroidTest.xml ),
<option name="not-shardable" value="true" /> gereken kablo demetini bildirmek için
<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ış) doğru olan ş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ı, ilgili cihaz başına muhtemelen bir kez çalışacak hazırlık (APK, push dosyası vb.) İle sonuçlanır. Modül kurulumunuz uzun ve pahalıysa ve testin çalışma süresine kıyasla çoğaltılmaya değmezse, modülünüzü keskinleştirilemez olarak etiketlemelisiniz.
- Modülünüzdeki test sayısı düşük olduğunda:
Bir modülün parçalanması, tüm test senaryolarının muhtemelen farklı cihazlarda bağımsız olarak yürütülmesine neden olur. Bu birinci nokta ile ilgilidir; test sayınız düşükse, bazı parçalarda tek bir test yapabilir veya hiç test yapamazsınız, 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 kırık sayısı?
AndroidJUnitTest üzerinden çalışan bir enstrümantasyon testi, APK'yı gerçekten yükleyip çalıştırmayana kadar kaç testin enstrümantasyonun bir parçası olduğunu ortaya çıkarmaz . Bu işlemler maliyetlidir ve paketin tüm modüller bölümü için parçalama zamanında gerçekleştirilemez.
Emniyet kemeri, enstrümantasyon testini fazla parçalayabilir ve bazı boş kırıklarla sonuçlanabilir; bir enstrümantasyon testinin altı kırıkta beş testle parçalanması, bir testle beş ve testsiz bir parça ile sonuçlanır. Bu parçaların her biri pahalı bir APK yüklemesi gerektirir.
Bu yüzden 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 buna değmez olduğunu bilmesine izin verir.
AndroidJUnitTest koşucusu, 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, invokasyon seviyesinde istenen kırıkların sayısına bakılmaksızın, enstrümantasyonun kaç kez parçalanabileceğini belirlemenizi sağlar. Varsayılan olarak, enstrümantasyon çağırma için talep edilen parça sayısına bölünecektir.
Örneğin, enstrümantasyon testi APK'nız sadece iki test vakası içeriyorsa ancak yine de
ajur-max-shard istiyorsanız,
ajur-max-shard değerinin
2 olması boş parçalar oluşturmamanızı sağlayacaktır.