Süitlerde ayarlama

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:

  1. Modülün yapılandırmasını yükleyin ve hangi kümenin çalışması gerektiğini belirleyin.
  2. Her modülü çalıştırın:

    1. Modül düzeyinde kurulum çalıştırın.
    2. Modül testleri çalıştırın.
    3. Modül düzeyinde ayırma işlemi gerçekleştirin.
  3. 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.