Parçalama testi

Test topluluğu büyük olduğunda veya yürütme süresi uzadığında testlerin birkaç cihaza bölünme olasılığı: kırma.

Parçalamanın ön koşulları vardır test çalıştırıcısının parçalamayı desteklemesini sağlayın.

Ana test çalıştırıcılarının çoğu parçalamayı zaten desteklediğinden çalışma gereklidir. Şu anda parçalama desteklemektedir: araç testleri, ana makine taraflı testler, GTest.

Tradefed'te desteklediğimiz iki tür kırma vardır: yerel ve dağıtılmış. Bu ikisi arasında bazı benzerlikler olduğu için, bu sayfada ortak özellikler ve her birinin ayrıntılarını öğrenin.

Yaygın özellikler

Her iki kırma biçimi de test çalışanlarıyla aynı özellikleri kabul eder: Shards bağımsız ve deterministik olması gerekir. Her iki parçalamanın da ilk adımı tam sıralı test listesini oluşturmak ve ardından bunları farklı gruplar/parçalar.

Parçalama formlarının başlıca farkı, testleri yürütme biçimleridir. Daha ayrıntılı bilgiyi aşağıdaki bölümlerde bulabilirsiniz.

Yerel parçalama

Yerel parçalama, parçalama işlemine dahil edilen tüm cihazları ifade eder. aynı fiziksel ana makineye bağlı olduğundan emin olun.

Uygulama

Yerel parçalama, aynı ağa bağlı tüm cihazlardan yararlanır yürütülmesi gereken testlerden oluşan bir havuz oluşturarak cihaz yoklama testlerini ücretsiz olarak gerçekleştirmelerini sağlar (yani önceki testle yapılır). Bu, optimize edilmiş bir cihaz kullanımı sağlar. Biz de buna diyoruz. dinamik parçalama.

Seçenekler

--shard-count XX

Dağıtılmış parçalama

Dağıtılmış parçalama, parçalama yürütülürken kullanılan tüm cihazları parçalanmış çağrı her yerde yaşayabilir ve farklı fiziksel ana makineler.

Uygulama

Dağıtılmış parçalama, test listesi ve içeriği oluşturulduğunda gerçekleşir her kırık yalnızca o anda istenen parçayı yürütür. Yani tüm dağıtılmış parçalardan önce aynı listeyi derler ve ardından ortak olarak test edilir. Bu da tüm testlerin yürütülmesine neden olur.

Bu formun ana özelliği, kırıkların her biri başarısızlığa uğrayabilir.

Temel dezavantajı, kırık uzunluğunun mutlaka dengeli olmamasıdır. çünkü her kırıktaki her testin çalışma zamanını önceden tahmin edemiyoruz. Dağıtım, yaklaşık olarak aynı sayıda test durumuna sahip olacak şekilde yapılır her bir parçaya koyabilirsiniz.

Seçenekler

--shard-count XX --shard-index XX

Jeton kırma

Jeton kırma yalnızca yerel parçalamayla kullanılabilir. Bayrak yerel olmayan parçalama kullanım alanlarında çalışmıyor. Bazen cihazlardan biri parçalamaya dahil olan ve olmayan özel kaynakları (ör. SIM) muhafaza eder kartını inceleyebilirsiniz. Bazı testler yalnızca o özel kaynak mevcut olduğunda ve başarısız olur.

Bu tür kullanım alanlarına yönelik çözümümüz jeton kırmadır. Test modüllerini AndroidTest.xml içinde hangi özel kaynağa ihtiyaç duyduklarını belirtmelidir ve Tradefed, testleri kaynağa sahip bir cihaza yönlendirir.

XML yapılandırması

<option name="config-descriptor:metadata" key="token" value="SIM_CARD" />

Jetonun value değeri Tradefed'in TokenProperty ve şuradaki bir işleyiciyle ilişkilendirilir: TokenProviderHelper.

Bu şekilde, test modüllerini düzgün şekilde çalıştırabilen cihazlarda yürütmeniz gerekecek.

Hiçbir cihaz testi çalıştıramıyorsa ne olur?

Test modülüyle eşleşen kaynağa sahip cihaz yoksa test modülü başarısız oldu ve düzgün şekilde yürütülemediği için atlandı.

Örneğin, bir test modülünün çalışması için SIM kart isteniyorsa ancak hiçbir cihazda SIM kart, test modülü başarısız.

Uygulama

Bu özellik işaretini ana Tradefed komut satırına iletin:

--enable-token-sharding