Parçalama testi

Test topluluğu büyük olduğunda veya yürütme süresi uzun olduğunda, testleri birkaç cihaza bölme olanağı sunuyoruz: parçalama .

Parçalamanın, test çalıştırıcısının parçalamayı desteklemesi için önkoşulları vardır.

Ana test çalıştırıcılarının çoğunluğu parçalamayı zaten desteklediğinden ek çalışmaya gerek yoktur. Bunlar zaten parçalamayı destekliyor: enstrümantasyon testleri, ana bilgisayar tarafı yönlendirmeli testler, GTest.

Tradefed'de desteklediğimiz iki tür parçalama vardır: yerel ve dağıtılmış. Bazı benzerlikler paylaşıyorlar, bu nedenle bu sayfada ortak özellikler ve ardından her birinin özellikleri açıklanmaktadır.

Ortak özellikler

Her iki parçalama biçimi de testi çalıştıranlardan aynı özellikleri alır: Parçaların bağımsız ve belirleyici olması gerekir. Her iki parçanın da ilk adımı, testlerin tam sıralı listesini oluşturmak ve ardından bunları farklı gruplara/parçalara bölmektir.

Parçalama formlarının temel farkı, testleri yürütme şeklidir. Daha fazla ayrıntı aşağıdaki bölümlerde.

Yerel parçalama

Yerel parçalama, parçalı çağrının yürütülmesinde yer alan tüm cihazların aynı fiziksel ana bilgisayara bağlı olduğu anlamına gelir.

Uygulamak

Yerel parçalama, yürütülmesi gereken bir test havuzu oluşturarak ve her cihazın ücretsiz olduğunda testleri yoklamasını sağlayarak (yani önceki testle birlikte yapıldığında) tüm cihazların aynı ana bilgisayara bağlı olmasından yararlanır. Bu, optimize edilmiş cihaz kullanımıyla sonuçlanır. Biz buna dinamik parçalama da diyoruz.

Seçenekler

--shard-count XX

Dağıtılmış parçalama

Dağıtılmış parçalama, parçalı çağrının yürütülmesinde yer alan tüm cihazların herhangi bir yerde yaşayabileceği ve farklı fiziksel ana bilgisayarlara bağlanabileceği anlamına gelir.

Uygulamak

Dağıtılmış parçalama, test listesi oluşturulduktan sonra gerçekleşir ve her parçanın içeriği yalnızca o anda istenen parçayı çalıştırır. Böylece tüm dağıtılmış parçalar ilk başta aynı listeyi oluşturur ve ardından bunun birbirini dışlayan bir alt kümesini yürütür, bu da tüm testlerin yürütülmesiyle sonuçlanır.

Bu formun ana özelliği, parçaların birbirinden tamamen habersiz olması ve bağımsız olarak başarısız olabilmesidir.

Ana dezavantaj, her bir parçadaki her testin çalışma süresini önceden tahmin edemediğimiz için parça uzunluğunun mutlaka dengeli olmamasıdır. Dağıtım, her parçada yaklaşık olarak aynı sayıda test senaryosuna sahip olacak şekilde yapılır.

Seçenekler

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

Token parçalama

Token parçalama yalnızca yerel parçalamayla kullanılabilir. Bayrak, yerel olmayan parçalama kullanım durumlarında çalışmaz. Bazen parçalamaya dahil olan cihazlardan biri, SIM kart gibi diğerlerinin sahip olmadığı özel kaynakları barındırır. Bazı testler yalnızca söz konusu özel kaynak mevcut olduğunda işe yarayabilir, aksi halde başarısız olabilir.

Token parçalama bu tür kullanım durumlarına çözümümüzdür. Test modülleri, AndroidTest.xml dosyasında hangi özel kaynağa ihtiyaç duyduklarını bildirebilir ve Tradefed, testleri kaynağa sahip bir cihaza yönlendirir.

XML yapılandırması

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

Belirtecin value Tradefed'in TokenProperty eşleşir ve TokenProviderHelper içindeki bir işleyiciyle ilişkilendirilir.

Bu, test modüllerinin testleri düzgün bir şekilde yürütebilecek cihazlara karşı çalıştırılmasına olanak tanır.

Testi hiçbir cihaz çalıştıramazsa ne olur?

Kullanılabilir hiçbir cihazın test modülüyle eşleşen kaynağı yoksa test modülü düzgün şekilde yürütülemediği için başarısız olur ve atlanır.

Örneğin, bir test modülü bir SIM kartın çalışmasını isterse ancak hiçbir cihazın SIM kartı yoksa, test modülü başarısız olur.

Uygulama

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

--enable-token-sharding