Thiết lập phòng suite

Bộ công cụ trong Tradefeed là một thiết lập trong đó một số thử nghiệm đang chạy trong trình chạy kiểm thử phổ biến giúp thúc đẩy quá trình thực thi tổng thể.

Trong Tradefed, các bộ được điều khiển thông qua lớp ITestSuite. Lớp này cho phép thêm và xoá các chương trình kiểm thử độc lập với cách chạy các chương trình kiểm thử đó.

Định nghĩa

  • Suite: Tập hợp mô-đun kiểm thử được định cấu hình để chạy trong một cấp cao nhất" tương tự thiết lập để báo cáo kết quả trong một lệnh gọi.
  • 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 kiểm thử nào.
  • Cấu hình chính: Cấu hình XML Tradefed cấp bộ mô tả các mô-đun sẽ chạy và chế độ thiết lập cấp cao nhất 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à chế độ thiết lập theo mô-đun cụ thể.
  • Cấu hình mô-đun: Tham chiếu đến AndroidTest.xml Trade tác XML cấu hình mô tả các mô-đun và thiết lập cấp mô-đun nào là việc nên làm.
  • Mô-đun: Đơn vị kiểm thử bao gồm một bước thiết lập (thiết lập cấp mô-đun), một bước kiểm thử bước thực thi và bước chia nhỏ.
  • Thử lại trong mô-đun: Tự động thử lại do phần khai thác bên trong mô-đun thực hiện.
  • Thử lại bộ: Chạy lại toàn bộ các thử nghiệm không thành công trước đó của bộ công cụ.

Cấu trúc ITestSuite

ITestSuite trong Tradefeed có đề cập đến lớp cơ sở chung dẫn đến việc thực thi bộ sản phẩm. Tất cả các bộ kiểm thử chính, cụ thể là Bộ kiểm thử tính tương thích với Android (CTS)Bộ kiểm thử nhà cung cấp Android (VTS) đều dùng chung API này, đồng thời đảm bảo trải nghiệm thực thi nhất quán trên tất cả các bộ kiểm thử.

Đôi khi, chúng tôi gọi ITestSuitetrình chạy phần mềm.

Trình chạy bộ ứng dụng tuâ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 tập hợp nào sẽ chạy.
  2. Chạy từng mô-đun:

    1. Chạy quy trình thiết lập ở cấp mô-đun.
    2. Chạy kiểm thử mô-đun.
    3. Chạy quá trình chia nhỏ ở cấp mô-đun.
  3. Báo cáo kết quả.

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

Theo quan điểm của Tradefeed, ITestSuite chỉ là một phép kiểm thử khác. Đây là một bài kiểm thử phức tạp nhưng vẫn chỉ là một bài kiểm thử như mọi IRemoteTest khác. Vì vậy, khi chỉ định trình chạy bộ kiểm thử trong cấu hình Tradefed, Tradefed sẽ tuân theo mẫu thông thường của cấu hình: chạy build_provider, target_preparer, kiểm thử (trong trường hợp này là bộ kiểm thử của chúng ta) và target_cleaner.

Trình tự này trong cấu hình Tradefed chứa ITestSuite là chế độ 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 siêu dữ liệu mô-đun là thông tin bổ sung được chỉ định trong mô-đun kiểm thử 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.

Ví dụ về siêu dữ liệu:

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

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

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

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

Ví dụ đầy đủ về 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ố hóa

Một 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 trong một chế độ, ví dụ như dưới dạng ứng dụng tức thì thay vì chế độ ứng dụng chuẩn.

Tất cả các chế độ hoặc thông số có thể có được mô tả bằng ModuleParameters và có một trình xử lý liên kết trong ModuleParametersHelper cho phép bạn thay đổi chế độ 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ì.

Để tham số hoá xảy ra, dòng lệnh cần bật tham số đó bằng:

--enable-parameterized-modules

Bạn cũng có thể chạy một chế độ nhất định bằng:

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

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

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