Tradefed'teki paket, bir testin altında birkaç testin gerçekleştirildiği genel performansı artıran ortak bir test çalıştırıcısı gibidir.
Tradefed'te süitler,
ITestSuite
sınıfını kullanır. Bu da, testlerin
gerekir.
Tanımlar
- Paket: Benzer bir üst düzey düzey altında çalışacak şekilde yapılandırılmış test modülleri grubu ayarlarını tek bir çağrı altında raporlamak için kullanır.
- Üst düzey kurulum: test modüllerini de kullanabilirsiniz.
- Ana yapılandırma: Şu paket düzeyinde Tradefed XML yapılandırması: hangi modüllerin çalışması gerektiğini ve hangi üst düzey kurulumun çalışması gerektiğini açıklar. kullanılır.
- Modül düzeyinde kurulum: Kurulum, modülünü kullanabilirsiniz. Bunlar, modüle özel kurulumlar olarak da bilinir.
- Modül yapılandırması:
AndroidTest.xml
Tradefed XML anlamına gelir ve hangi modül düzeyinde kurulumu açıklayan bir yapılandırma yapılması gerekir. - Modül: Bir kurulum adımından (modül düzeyinde kurulum), bir testten oluşan test birimi ve yıkma adımını içerir.
- Modül içi yeniden deneme: Modül içindeki donanım kullanılarak otomatik yeniden deneme yapılır.
- Paketi yeniden deneme: Paketin daha önce başarısız olan testlerinin tamamen yeniden çalıştırılması.
ITestSuite yapısı
ITestSuite
Tradefed, paketin yürütülmesini sağlayan ortak temel sınıfı ifade eder. İnsanların
başta Android Uyumluluk Testi olmak üzere tüm önemli test paketleri tarafından paylaşılmıştır
Suite (CTS) ve Android Vendor Test Suite
(VTS) sunar ve tutarlı bir yürütme deneyimi sağlar.
her yerde hizmet veriyor.
Bazen ITestSuite'ten paket kıyafeti sorumlusu olarak anıyoruz.
Paket çalıştırıcı, yürütürken şu adımları izler:
- Modülün yapılandırmasını yükleyin ve hangi kümenin çalışması gerektiğini belirleyin.
Her modülü çalıştırın:
- Modül düzeyinde kurulum çalıştırın.
- Modül testleri çalıştırın.
- Modül düzeyinde ayırma işlemi gerçekleştirin.
Sonuçları bildirin.
Üst düzey kurulum
Tradefed açısından bakıldığında ITestSuite
yalnızca başka bir testtir. Bu karmaşık bir
diğeri IRemoteTest
gibi hâlâ yalnızca bir testtir. Bu nedenle,
Tradefed yapılandırmasındaki paket koşucusu, Tradefed
yapılandırma kalıbı: çalıştırılıyor build_provider
, target_preparer
, test
(bu örnekte paketimiz) ve target_cleaner
.
Tradefed yapılandırmasında ITestSuite
içeren bu dizi
üst düzey kurulum olduğunu unutmayın.
Örnek:
<configuration description="Common config for Compatibility suites">
<build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
<!-- Setup applied before the suite: so everything running in the suite will
have this setup beforehand -->
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
<option name="run-command" value="settings put global package_verifier_enable 0" />
<option name="teardown-command" value="settings put global package_verifier_enable 1"/>
</target_preparer>
<!-- Our ITestSuite implementation -->
<test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite" />
<result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
</configuration>
Modül meta verileri
Test modülünde belirtilen modül meta verilerine ek bilgiler adını veriyoruz.
AndroidTest.xml
. Bu meta veriler, sizinle alakalı
meta veriler kullanılarak filtrelenebilir.
Örnek meta veri:
<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
Meta veri için örnek filtre:
--module-metadata-include-filter component=framework
Yukarıdaki işlemler, bir çerçeveye sahip tüm modülleri bileşen meta verisi olarak çalıştırır.
Tam AndroidTest.xml
örneği:
<configuration description="Config for CTS Gesture test cases">
<option name="test-suite-tag" value="cts" />
<!-- Metadata -->
<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
<!-- End: metadata -->
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="CtsGestureTestCases.apk" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="android.gesture.cts" />
<option name="runtime-hint" value="10m50s" />
</test>
</configuration>
Parametreli modül
parameter
, özel bir meta veri türüdür.
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
Bu meta veri, modülün farklı bir mod olarak değiştirildi.
Olası tüm modlar veya parametreler
ModuleParameters
ve ilişkili bir işleyicisi varsa
ModuleParametersHelper
Modül kurulumunu belirli modda çalışacak şekilde değiştirmenize olanak tanır.
Örneğin, hazır uygulama modu, APK'nın hazır uygulama olarak yüklenmesini zorunlu kılar yatırım yapmanız önemlidir.
Parametreleştirmenin gerçekleşmesi için komut satırının bunu etkinleştirmesi gerekir şununla:
--enable-parameterized-modules
Ayrıca tek bir mod aşağıdakiler için çalıştırılabilir:
--enable-parameterized-modules --module-parameter <Mode>
--enable-parameterized-modules --module-parameter INSTANT_APP
Bir modülün parametreleştirilmiş bir sürümü çalıştığında, sonuçlarını
parametreleştirilmiş bir modül adı (örneğin, CtsGestureTestCases[instant]
veya
CtsGestureTestCases
temel.