Modül yapılandırmasının genel yapısı benzer bir kalıp izler. normal Tradefed XML yapılandırmasına sahiptir ancak bir paketin parçası olarak işletiliyor.
İzin verilen etiketlerin listesi
AndroidTest.xml
veya daha genel anlamda modül yapılandırması,
şu XML etiketleri: target_preparer
, multi_target_preparer
, test
ve
metrics_collector
.
Bu liste kısıtlayıcı görünse de, projenizin kapsamını test modülü kurulumunun gerektiği ve çalıştırılacağı testin nasıl yapılacağını gösterir.
NOT: Satın alınmış XML yapılandırması bölümüne bakın. konu alan Yardım Merkezi makalemizi inceleyin.
build_provider
veya result_reporter
gibi nesneler
Bir modülün içinden çalıştırılmaya çalışıldıysa ConfigurationException
yapılandırma. Bunun amacı, bu tür durumlara karşı
bir görevi gerçekten yerine getiren nesnelerin
gerçekleşmesini ifade eder.
Örnek modül yapılandırması
<configuration description="Config for CTS Gesture test cases">
<option name="test-suite-tag" value="cts" />
<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>
Bu yapılandırmada, CtsGestureTestCases.apk
tarafından şu işlemler için gerekli olan bir test açıklanmaktadır:
android.gesture.cts
çerçevesinde yüklenmeli ve bir enstrümantasyon çalıştırılacaktır.
paketinden yararlanın.
Dahil etme etiketleri <include>
ve <template-include>
Modül yapılandırmalarında <include>
ve <template-include>
kullanımı
daha fazla sonuç alırsınız. Beklendiği gibi çalışmaları garanti edilmez.
metrics_collector etiketi için özel durum
metrics_collector
için izin verilir ancak bu öğeler şununla sınırlıdır:
FilePullerLogCollector
sınıfını kullanır.
inceleyeceğiz. Bu, günlükleri belirli bir konumda bırakıyorsanız ve
bunları otomatik olarak kurtarmak istiyor.
Örnek yapılandırma:
<configuration description="Config for CTS UI Rendering test cases">
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="CtsUiRenderingTestCases.apk" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="android.uirendering.cts" />
<option name="runtime-hint" value="11m55s" />
<option name="runner" value="android.uirendering.cts.runner.UiRenderingRunner" />
<option name="isolated-storage" value="false" />
</test>
<!-- Collect the files in the dump directory for debugging -->
<metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
<option name="directory-keys" value="/sdcard/UiRenderingCaptures" />
<option name="collect-on-run-ended-only" value="true" />
</metrics_collector>
</configuration>
Derleme bilgileri veya indirilenler ne olacak?
İzin verilen etiketlerin tanımı, bir kullanıcının modülünü herhangi bir derleme bilgisi almaz. Bu doğru değildir.
Derleme bilgileri paket düzeyindeki kurulumdan sağlanır ve paketin tüm modülleri tarafından paylaşılmaktadır. Bu, tek bir üst düzey kuruluma izin verir çalıştırmanız gerekir.
Örneğin, her bir
Uyumluluk Test Paketi (CTS)
cihaz bilgilerini, türlerini vb., CTS'yi ayrı ayrı sorgulayan modül
paket düzeyinde kurulumda (cts.xml
) bunu bir kez yapar ve her modül bu işlemi
diğer kullanıcılara bilgi verebilir.
Bir modüldeki nesnelerin derleme bilgilerini alabilmesi için
normal Tradefed yapılandırmasındakiyle aynı şeyi yapmak için:
IBuildReceiver
arayüzünü IBuildInfo
alın. Görüntüleyin
cihazla test etme
inceleyebilirsiniz.
Meta veri alanları
Çok sayıda test modülünün bazı metadata
özellikleri,
Her birinin farklı bir hedefi var.
Örnek:
<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />
<option name="config-descriptor:metadata" key="parameter" value="multi_abi" />
<option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
Bileşen
component
meta verileri, modülün genel Android bileşenini açıklar.
düşünmesi gerekir. Testin yürütülmesi üzerinde doğrudan etkisi yoktur; bu
amacıyla kullanılmasıdır.
CTS için izin verilen bileşenlerin güncel listesini şu adreste bulabilirsiniz: CtsConfigLoadingTest. Mevcut olmayan bir bileşen CTS modülü.
Paket çalıştırmasını bileşenlere göre filtreleyebilirsiniz.
module-metadata-include-filter
ve module-metadata-exclude-filter
.
Örnek:
--module-metadata-include-filter component framework
Bu örnek yalnızca framework
ile açıklama eklenen test modülünü çalıştırır
bir bileşenidir.
Parametre
parameter
meta verileri bilgilendirme amaçlıdır ve testi etkiler
birkaç adım var. Test modülünün hangi Android moduna uygulanacağını belirtir.
Bu durumda, modlar üst düzey Android modlarıyla sınırlıdır. Örneğin:
instant apps
, secondary users
veya different abis
.
Paket çalıştırma sırasında, mod test için geçerliyse birkaç varyasyon modlarına göre oluşturulur. Her varyasyon, ancak farklı modlarda test edebilirsiniz.
instant_app
: APK'ları hazır uygulamalar.multi_abi
: olanak tanır.secondary_user
: APK'ları yükleyen ve ikincil kullanıcı olarak testleri çalıştırabilir.
Performans testi modülleri için metrik toplama ve işleme sonrası
Performans testi modülleri için modül düzeyindeki metrics_collector
ve
Performans testleri için gerekli oldukları için metric_post_processor
öğelerine izin verilir.
Modül düzeyinde metrik toplayıcılar ve son işlemciler, modüle özel olabilir.
Son işlemcilerin hem üst düzey hem de üst düzeylerde belirtilmesi önerilmez.
kullanabilirsiniz.
Performans test modülü yapılandırması, test-type
meta verilerini içermelidir
performance
değerine sahip, örneğin:
xml
<option name="config-descriptor:metadata" key="test-type" value="performance" />
Bu olmadan, bir test yapılandırmasında metric_collector
FilePullerLogCollector
veya herhangi bir metric_post_processor
başarısız olur.
Örnek performans testi modülü yapılandırması:
<configuration description="Runs sample performance test.">
<!-- Declare as a performance test module -->
<option name="config-descriptor:metadata" key="test-type" value="performance" />
<option name="test-tag" value="hello-world-performance-test" />
<test class="com.android.tradefed.testtype.HostTest" >
<option name="class" value="android.test.example.helloworldperformance.HelloWorldPerformanceTest" />
</test>
<!-- Add module-level post processor MetricFilePostProcessor -->
<metric_post_processor class="com.android.tradefed.postprocessor.MetricFilePostProcessor">
<option name="aggregate-similar-tests" value="true" />
<option name="enable-per-test-log" value="false" />
</metric_post_processor>
</configuration>