Keseluruhan struktur konfigurasi modul mengikuti pola yang serupa ke konfigurasi XML Tradefed biasa tetapi dengan beberapa pembatasan karena fakta bahwa mereka berjalan sebagai bagian dari suite.
Daftar tag yang diizinkan
AndroidTest.xml
atau lebih luas lagi, konfigurasi modul hanya dapat berisi
tag XML berikut: target_preparer
, multi_target_preparer
, test
, dan
metrics_collector
.
Meskipun tampak ketat, daftar tersebut memungkinkan Anda untuk mendefinisikan secara tepat kebutuhan pengaturan modul pengujian dan pengujian yang akan dijalankan.
CATATAN: Lihat Konfigurasi XML Tradef jika Anda perlu penyegaran tentang tag yang berbeda.
Objek seperti build_provider
atau result_reporter
akan memunculkan
ConfigurationException
jika dicoba untuk dijalankan dari dalam modul
konfigurasi Anda. Hal ini dimaksudkan untuk menghindari
objek yang sebenarnya melakukan
tugas dari dalam modul.
Contoh konfigurasi modul
<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>
Konfigurasi ini menjelaskan pengujian yang memerlukan CtsGestureTestCases.apk
untuk
diinstal dan akan menjalankan instrumentasi terhadap android.gesture.cts
paket.
Tag penyertaan <include>
dan <template-include>
Penggunaan <include>
dan <template-include>
dalam konfigurasi modul adalah
tidak disarankan. Tidak dijamin akan berfungsi seperti yang diharapkan.
Kasus khusus untuk tag metrics_collector
metrics_collector
diizinkan tetapi terbatas pada
FilePullerLogCollector
untuk menentukan file atau direktori tertentu yang akan ditarik dan dicatat dalam log
modul ini. Hal ini berguna jika Anda meninggalkan
log di lokasi tertentu dan
ingin memulihkannya secara otomatis.
Contoh konfigurasi:
<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>
Bagaimana dengan info build atau download?
Definisi tag yang diizinkan mungkin memberikan tayangan iklan yang salah bahwa tidak akan mendapatkan informasi build. Hal ini tidak benar.
Informasi build disediakan dari penyiapan level suite dan akan yang dibagikan oleh semua modul suite. Hal ini memungkinkan satu penyiapan tingkat atas untuk suite guna menjalankan semua bagian modul dari suite.
Misalnya, daripada masing-masing
Compatibility Test Suite (CTS)
modul secara individual mengkueri informasi perangkat, jenis, dll., CTS
konfigurasi level suite (cts.xml
) melakukannya sekali dan setiap modul akan menerima
tambahan jika mereka memintanya.
Agar objek dalam modul dapat menerima informasi build, mereka perlu
untuk melakukan hal yang sama seperti dalam konfigurasi Tradefed reguler:
Antarmuka IBuildReceiver
untuk menerima IBuildInfo
. Lihat
menguji dengan perangkat
untuk mengetahui detail selengkapnya.
Kolom metadata
Sejumlah besar modul pengujian menyertakan beberapa spesifikasi metadata
,
yang masing-masing
memiliki tujuan unik.
Contoh:
<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" />
Komponen
Metadata component
menjelaskan komponen Android umum yang merupakan modul
yang akan diuji. Hal ini tidak memiliki dampak langsung pada eksekusi uji; ini
terutama digunakan untuk
tujuan organisasi.
Daftar terbaru komponen yang diizinkan untuk CTS tersedia di CtsConfigLoadingTest. Pengujian ini gagal dalam prapengiriman jika komponen yang tidak ada ditambahkan ke modul CTS.
Anda dapat memfilter rangkaian yang dijalankan
berdasarkan komponen menggunakan
module-metadata-include-filter
dan module-metadata-exclude-filter
.
Contoh:
--module-metadata-include-filter component framework
Contoh ini hanya menjalankan modul pengujian yang dianotasi dengan framework
komponen.
Parameter
Metadata parameter
bersifat informatif dan berdampak pada pengujian
dalam proses eksekusi. Ini menentukan mode Android tempat modul pengujian diterapkan.
Dalam hal ini, mode terbatas pada mode Android level tinggi, seperti
instant apps
, secondary users
, atau different abis
.
Selama suite berjalan, jika mode diterapkan untuk pengujian, beberapa variasi modul pengujian dibuat berdasarkan mode. Setiap variasi berjalan pengujian serupa tetapi dengan mode yang berbeda.
instant_app
: Membuat variasi pengujian yang menginstal APK sebagai aplikasi instan.multi_abi
: Membuat variasi pengujian untuk setiap ABI yang didukung oleh perangkat seluler.secondary_user
: Membuat variasi pengujian yang menginstal APK dan menjalankan pengujian sebagai pengguna sekunder.
Pengumpulan dan pascapemrosesan metrik untuk modul pengujian performa
Untuk modul pengujian performa, metrics_collector
dan tingkat modul
metric_post_processor
diizinkan karena penting untuk pengujian performa.
Kolektor metrik dan pasca-prosesor tingkat modul dapat bersifat khusus modul.
Tidak disarankan untuk menentukan pasca-pemroses pada tingkat atas dan
level modul.
Konfigurasi modul pengujian performa harus menyertakan metadata test-type
dengan nilai performance
, seperti:
xml
<option name="config-descriptor:metadata" key="test-type" value="performance" />
Tanpanya, jika konfigurasi pengujian menyertakan metric_collector
selain
FilePullerLogCollector
atau metric_post_processor
apa pun, pengujian
gagal dalam pra-pengiriman.
Contoh konfigurasi modul pengujian performa:
<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>