โครงสร้างโดยรวมของการกำหนดค่าโมดูลเป็นไปตามรูปแบบที่คล้ายกัน เข้ากับการกำหนดค่า Tradefed XML ปกติ แต่มีข้อจำกัดบางประการเนื่องจาก การทำงานเป็นส่วนหนึ่งของห้องสวีท
รายการแท็กที่อนุญาต
AndroidTest.xml
การกำหนดค่าโมดูลแบบกว้างขึ้นไปจะมีได้เฉพาะ
แท็ก XML ต่อไปนี้: target_preparer
, multi_target_preparer
, test
และ
metrics_collector
แม้ว่ารายการดังกล่าวจะดูมีข้อจำกัด แต่จะช่วยให้คุณกำหนด ความต้องการตั้งค่าโมดูลการทดสอบและการทดสอบเพื่อเรียกใช้
หมายเหตุ: โปรดดูการกำหนดค่า XML ที่เทรด หากต้องการทบทวนข้อมูลเกี่ยวกับแท็กต่างๆ
ออบเจ็กต์ เช่น build_provider
หรือ result_reporter
จะเพิ่มพารามิเตอร์
ConfigurationException
หากพยายามเรียกใช้จากภายในโมดูล
การกำหนดค่า เพื่อหลีกเลี่ยงความคาดหวังของ
ที่จะทำงานบางอย่างจากภายในโมดูลได้
ตัวอย่างการกำหนดค่าโมดูล
<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>
การกําหนดค่านี้อธิบายการทดสอบที่จำเป็นต้องใช้ CtsGestureTestCases.apk
เพื่อ
และจะเรียกใช้เครื่องมือกับ android.gesture.cts
ใหม่
แท็กการรวม <include>
และ <template-include>
การใช้ <include>
และ <template-include>
ในการกำหนดค่าโมดูลคือ
ให้กับเรา เราไม่รับประกันว่าผลการค้นหาเหล่านั้นจะทำงานตามที่คาดไว้
กรณีพิเศษสำหรับแท็กMetric_collector
metrics_collector
ได้รับอนุญาต แต่ถูกจำกัดตาม
FilePullerLogCollector
เพื่อระบุไฟล์หรือไดเรกทอรีที่จะดึงและบันทึกไว้
โมดูล ซึ่งจะเป็นประโยชน์หากคุณจะทิ้งบันทึกไว้ในตำแหน่งใดตำแหน่งหนึ่งและ
ต้องการกู้คืนวิดีโอโดยอัตโนมัติ
ตัวอย่างการกำหนดค่า
<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>
แล้วข้อมูลบิลด์หรือการดาวน์โหลดล่ะ
คําจํากัดความของแท็กที่อนุญาตอาจทําให้เกิดการแสดงผลที่ไม่ถูกต้องว่า โมดูลจะไม่ได้รับข้อมูลบิลด์ ไม่จริง
ข้อมูลบิลด์มาจากการตั้งค่าระดับชุดโปรแกรมและจะ แชร์โดยโมดูลทั้งหมดของชุดโปรแกรม วิธีนี้จะช่วยให้ตั้งค่าระดับบนสุดรายการเดียวได้ สำหรับชุดโปรแกรมเพื่อเรียกใช้โมดูลทั้งหมดของชุดโปรแกรม
ตัวอย่างเช่น แทนที่แต่ละแท็ก
ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS)
แต่ละโมดูลในการค้นหาข้อมูลอุปกรณ์ ประเภท และอื่นๆ CTS
การตั้งค่าระดับชุดโปรแกรม (cts.xml
) จะทำครั้งเดียวและแต่ละโมดูลจะได้รับ
ข้อมูลหากพวกเขาร้องขอ
ออบเจ็กต์ในโมดูลจะต้องรับข้อมูลบิลด์
ให้ทำแบบเดียวกับการกำหนดค่า Tradefed ปกติ นั่นก็คือการนำ
IBuildReceiver
เพื่อรับ IBuildInfo
โปรดดู
ทดสอบกับอุปกรณ์
เพื่อดูรายละเอียดเพิ่มเติม
ช่องข้อมูลเมตา
โมดูลทดสอบจำนวนมากมีข้อกำหนดบางอย่างของ metadata
โดยแต่ละคนก็มีเป้าหมายของตัวเอง
ตัวอย่าง
<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" />
ส่วนประกอบ
ข้อมูลเมตา component
อธิบายคอมโพเนนต์ Android ทั่วไปที่โมดูลนี้ใช้
ต้องการทดสอบ ไม่มีผลกระทบโดยตรงต่อการดำเนินการทดสอบ คือ
ใช้สำหรับองค์กรเป็นหลัก
รายการคอมโพเนนต์ที่อนุญาตสำหรับ CTS ล่าสุดมีอยู่ใน CtsConfigLoadingTest การทดสอบนี้จะดำเนินการไม่สำเร็จในการส่งล่วงหน้าหากมีการเพิ่มคอมโพเนนต์ที่ไม่มีอยู่ในไฟล์ โมดูล CTS
คุณสามารถกรองชุดโปรแกรมตามคอมโพเนนต์ได้โดยใช้
module-metadata-include-filter
และ module-metadata-exclude-filter
ตัวอย่าง
--module-metadata-include-filter component framework
ตัวอย่างนี้เรียกใช้เฉพาะโมดูลการทดสอบที่มีคำอธิบายประกอบ framework
คอมโพเนนต์
พารามิเตอร์
ข้อมูลเมตา parameter
เป็นข้อมูลและส่งผลต่อการทดสอบ
จะระบุโหมด Android ที่นำโมดูลการทดสอบไปใช้
ในกรณีนี้ โหมดจะจำกัดให้ใช้ได้เฉพาะโหมด Android ระดับสูง เช่น
instant apps
, secondary users
หรือ different abis
ระหว่างการทำงานโปรแกรม หากโหมดที่ใช้กับการทดสอบ จะมีหลายรูปแบบ ของโมดูลทดสอบจะสร้างขึ้นตามโหมด แต่ละรูปแบบจะทำงาน การทดสอบที่คล้ายกันแต่อยู่ในโหมดที่ต่างกัน
instant_app
: สร้างการทดสอบรูปแบบหนึ่งที่ติดตั้ง APK เป็น Instant Appmulti_abi
: สร้างรูปแบบการทดสอบสำหรับ ABI แต่ละรายการที่ระบบรองรับ อุปกรณ์secondary_user
: สร้างการทดสอบรูปแบบหนึ่งที่ติดตั้ง APK และ ทำการทดสอบในฐานะผู้ใช้รอง
การรวบรวมเมตริกและการประมวลผลหลังการประมวลผลสำหรับโมดูลทดสอบประสิทธิภาพ
สำหรับโมดูลทดสอบประสิทธิภาพ metrics_collector
ระดับโมดูลและ
metric_post_processor
ได้ เนื่องจากมีความสำคัญต่อการทดสอบประสิทธิภาพ
เครื่องมือรวบรวมเมตริกระดับโมดูลและผู้ประมวลผลหลังประมวลผลอาจเจาะจงโมดูลได้
เราไม่แนะนำให้ระบุผู้ใช้หลังการประมวลผลทั้งระดับบนสุดและ
ระดับโมดูล
การกำหนดค่าโมดูลการทดสอบประสิทธิภาพต้องมีข้อมูลเมตา test-type
ที่มีค่า performance
เช่น
xml
<option name="config-descriptor:metadata" key="test-type" value="performance" />
ถ้าไม่มีส่วนนี้ หากการกำหนดค่าการทดสอบมี metric_collector
อื่นนอกเหนือจาก
FilePullerLogCollector
หรือ metric_post_processor
การทดสอบ
ส่งล่วงหน้าไม่สำเร็จ
ตัวอย่างการกำหนดค่าโมดูลการทดสอบประสิทธิภาพ
<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>