Thiết lập dãy phòng

Một bộ trong Tradefed đề cập đến một thiết lập trong đó một số thử nghiệm đang chạy trong một trình chạy thử nghiệm chung để thúc đẩy quá trình thực thi tổng thể.

Trong Tradefed, các bộ phần mềm được điều khiển thông qua lớp ITestSuite , cho phép các bài kiểm tra được thêm và xóa một cách độc lập với cách chúng được chạy.

Các định nghĩa

  • Bộ: Tập hợp các mô-đun thử nghiệm được định cấu hình để chạy theo thiết lập cấp cao nhất tương tự nhằm báo cáo kết quả của chúng theo một lệnh gọi duy nhất.
  • Thiết lập cấp cao nhất: Thiết lập được áp dụng cho các thiết bị trước khi chạy bất kỳ mô-đun thử nghiệm nào.
  • Cấu hình chính: Cấu hình Tradefed XML cấp bộ mô tả mô-đun nào sẽ chạy và thiết lập cấp cao nhất nào sẽ được sử dụng.
  • Thiết lập cấp độ mô-đun: Thiết lập được áp dụng cho các thiết bị ngay trước khi chạy mô-đun. Đây còn được gọi là thiết lập dành riêng cho mô-đun .
  • Cấu hình mô-đun: Đề cập đến cấu hình XML được giao dịch của AndroidTest.xml mô tả các mô-đun và thiết lập cấp mô-đun nào sẽ được thực hiện.
  • Mô-đun: Đơn vị kiểm tra bao gồm bước thiết lập ( thiết lập cấp mô-đun ), bước thực hiện kiểm tra và bước chia nhỏ.
  • Thử lại trong mô-đun: Thử lại tự động được thực hiện bằng bộ dây bên trong mô-đun.
  • Thử lại bộ phần mềm: Chạy lại toàn bộ các thử nghiệm thất bại trước đó của bộ phần mềm.

Cấu trúc ITestSuite

ITestSuite trong Tradefed đề cập đến lớp cơ sở chung thúc đẩy việc thực thi bộ phần mềm. Nó được chia sẻ bởi tất cả các bộ thử nghiệm chính, cụ thể là Bộ kiểm tra tương thích Android (CTS)Bộ kiểm tra nhà cung cấp Android (VTS) và đảm bảo trải nghiệm thực thi nhất quán trên tất cả các bộ.

Đôi khi chúng tôi gọi ITestSuitebộ công cụ chạy .

Trình chạy bộ thực hiện theo các bước sau khi thực thi:

  1. Tải cấu hình của mô-đun và xác định bộ nào sẽ chạy.
  2. Chạy từng mô-đun:

    1. Chạy thiết lập cấp mô-đun.
    2. Chạy thử nghiệm mô-đun.
    3. Chạy phân tích cấp độ mô-đun.
  3. Báo cáo kết quả.

Thiết lập cấp cao nhất

Từ quan điểm của Tradefed, ITestSuite chỉ là một thử nghiệm khác. Đây là một thử nghiệm phức tạp nhưng vẫn chỉ là một thử nghiệm giống như bất kỳ IRemoteTest nào khác. Vì vậy, khi chỉ định trình chạy bộ trong cấu hình Tradefed, Tradefed tuân theo mẫu cấu hình thông thường: chạy build_provider , target_preparer , test (bộ phần mềm của chúng tôi trong trường hợp này) và target_cleaner .

Trình tự này trong cấu hình Tradefed chứa ITestSuite là thiết lập cấp cao nhất.

Ví dụ:

<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>

Siêu dữ liệu mô-đun

Chúng tôi gọi thông tin bổ sung về siêu dữ liệu mô-đun được chỉ định trong mô-đun thử nghiệm AndroidTest.xml . Siêu dữ liệu này cho phép bạn chỉ định thông tin bổ sung về mô-đun và các mô-đun có thể được lọc bằng siêu dữ liệu.

Siêu dữ liệu ví dụ:

<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

Bộ lọc ví dụ về siêu dữ liệu:

--module-metadata-include-filter component=framework

Ở trên sẽ chạy tất cả các mô-đun có khung làm siêu dữ liệu thành phần .

Ví dụ đầy đủ AndroidTest.xml :

<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>

Mô-đun tham số

Loại siêu dữ liệu đặc biệt là parameter .

<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

Siêu dữ liệu này chỉ định rằng mô-đun cần được thực thi ở chế độ khác, chẳng hạn như ứng dụng tức thì, thay vì chế độ ứng dụng tiêu chuẩn.

Tất cả các chế độ hoặc tham số có thể được mô tả bởi ModuleParameters và có trình xử lý liên quan trong ModuleParametersHelper cho phép bạn thay đổi thiết lập mô-đun để thực thi ở chế độ cụ thể.

Ví dụ: chế độ ứng dụng tức thì buộc cài đặt APK ở chế độ tức thì.

Để quá trình tham số hóa xảy ra, dòng lệnh cần kích hoạt nó bằng:

--enable-parameterized-modules

Cũng có thể chạy một chế độ nhất định với:

--enable-parameterized-modules --module-parameter <Mode>

--enable-parameterized-modules --module-parameter INSTANT_APP

Khi một phiên bản được tham số hóa của một mô-đun chạy, nó sẽ báo cáo kết quả của nó dưới tên mô-đun được tham số hóa, ví dụ CtsGestureTestCases[instant] so với CtsGestureTestCases cơ sở.