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 Tradefeed, các dãy phòng được điều khiển thông qua ITestSuite lớp, cho phép thêm và xoá các bài kiểm thử một cách độc lập chạy.

Đị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ỳ các mô-đun kiểm thử.
  • Cấu hình chính: Cấu hình trao đổi XML ở cấp bộ sản phẩm mô tả mô-đun nào sẽ chạy và chế độ thiết lập cấp cao nhất nào sẽ đã sử dụng.
  • Thiết lập ở cấp mô-đun: Chế độ thiết lập được áp dụng cho các thiết bị ngay trước khi chạy . Đâ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ộ ứng dụng.

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. Bây giờ được chia sẻ bởi tất cả các bộ kiểm thử chính, đặc biệt là bộ công cụ Kiểm tra tính tương thích với Android Suite (CTS)Bộ kiểm thử 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 dãy phòng.

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

Theo quan điểm của Tradefeed, ITestSuite chỉ là một phép kiểm thử khác. Đây là một tổ chức phức tạp một nhưng vẫn chỉ là một phép kiểm thử giống như mọi IRemoteTest khác. Vì vậy, khi chỉ định trình chạy bộ sản phẩm trong cấu hình Tradefeed, Tradefeed sẽ tuân theo các cấu hình thông thường mẫu của cấu hình: chạy build_provider, target_preparer, kiểm thử (bộ công cụ 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 Tradefeed 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 của mô-đun

Chúng ta gọi siêu dữ liệu mô-đun 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.

Siêu dữ liệu mẫ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

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

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

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

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