Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Cấu hình kiểm tra phức tạp

Một số mô-đun thử nghiệm có thể yêu cầu thiết lập tùy chỉnh và chia nhỏ các bước không thể thực hiện được trong chính trường hợp thử nghiệm. Ví dụ điển hình có thể bao gồm:

  • cài đặt các ứng dụng khác (ngoài apk thử nghiệm)
  • đẩy một số tệp vào thiết bị
  • chạy lệnh (ví dụ: adb shell pm ...)

Trước đây, các nhóm thành phần thường sử dụng cách viết một bài kiểm tra phía máy chủ để thực hiện các nhiệm vụ như vậy, điều này đòi hỏi sự hiểu biết về khai thác của Trade Federation và thường làm tăng độ phức tạp của một mô-đun kiểm tra.

Vay mượn từ CTS, chúng tôi đã đưa ra khái niệm cấu hình mô-đun kiểm tra để hỗ trợ các tác vụ như vậy, danh sách tác vụ phổ biến ở trên có thể đạt được chỉ bằng một vài dòng cấu hình. Để có tính linh hoạt tối đa, bạn thậm chí có thể triển khai trình chuẩn bị mục tiêu của riêng mình, như được xác định bởi ITargetPreparer hoặc ITargetCleaner và định cấu hình chúng để sử dụng trong cấu hình mô-đun thử nghiệm của riêng bạn.

Cấu hình mô-đun thử nghiệm cho mô-đun thử nghiệm là tệp XML bắt buộc được thêm vào thư mục nguồn mô-đun cấp cao nhất, có tên là 'AndroidTest.xml'. XML tuân theo định dạng của một tệp cấu hình được sử dụng bởi bộ khai thác tự động hóa thử nghiệm của Trade Federation. Hiện tại, các thẻ chính được xử lý thông qua cấu hình mô-đun thử nghiệm là thẻ “target_preparer” và “test”.

Người chuẩn bị mục tiêu

Thẻ “target_preparer”, như tên cho thấy, xác định một trình chuẩn bị đích (xem ITargetPreparer ) cung cấp một phương thức thiết lập, phương thức này được gọi trước khi thực thi mô-đun thử nghiệm để thử nghiệm; và nếu lớp được tham chiếu trong thẻ “target_preparer” cũng triển khai ITargetCleaner , thì phương thức teardown của nó sẽ được gọi sau khi mô-đun thử nghiệm kết thúc.

Để sử dụng cấu hình mô-đun chung được tích hợp sẵn, hãy thêm tệp mới 'AndroidTest.xml' ở thư mục cấp cao nhất cho mô-đun thử nghiệm của bạn và điền vào nó với nội dung sau:

<?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>

Ví dụ, chúng tôi có thể thêm các thẻ tùy chọn sau (tại nhận xét “chèn” ở trên):

    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put secure accessibility_enabled 1" />
        <option name="teardown-command" value="settings put secure accessibility_enabled 0" />
    </target_preparer>

Các tùy chọn sẽ định cấu hình dây kiểm tra để:

  1. trước khi mô-đun kiểm tra được gọi, hãy thực hiện lệnh shell “settings đặt secure accessibility_enabled 1” trên thiết bị
  2. sau khi mô-đun kiểm tra kết thúc, hãy thực hiện lệnh shell “settings đặt secure accessibility_enabled 0”

Trong ví dụ cụ thể này, khả năng truy cập được bật / tắt tương ứng trước / sau khi thực thi mô-đun thử nghiệm. Với một ví dụ đơn giản được trình bày, cần phải trình bày thêm chi tiết về cách sử dụng thẻ "option". Như hình trên, thẻ có thể có hai thuộc tính: tên, giá trị. Thuộc tính name cho biết tên của tùy chọn và được chia nhỏ thành hai phần được phân tách bằng dấu hai chấm: tên viết tắt của người chuẩn bị và tên tùy chọn thực tế do người chuẩn bị cung cấp.

Mục đích chính xác của trường giá trị phụ thuộc vào cách người chuẩn bị xác định tùy chọn: nó có thể là một chuỗi, một số, một boolean hoặc thậm chí là một đường dẫn tệp, v.v. Trong ví dụ trên, tên “run-command: run-command” có nghĩa là rằng chúng tôi đang đặt giá trị cho tùy chọn “run-command” được xác định bởi một trình chuẩn bị mục tiêu với tên viết tắt “run-command”; và tên “run-command: teardown-command” có nghĩa là chúng tôi đang đặt giá trị cho tùy chọn “teardown-command” cũng được xác định bởi cùng một trình chuẩn bị mục tiêu với tên viết tắt “run-command”. Dưới đây là tóm tắt về ba công cụ chuẩn bị mục tiêu phổ biến:

  • tên lớp: PushFilePreparer

    • tên viết tắt : push-file
    • chức năng : đẩy các tệp tùy ý trong thư mục trường hợp thử nghiệm vào đích trên thiết bị
    • ghi chú :
      • trình chuẩn bị này có thể đẩy từ thư mục này sang thư mục khác, hoặc tệp này sang tệp khác; nghĩa là bạn không thể đẩy tệp vào một thư mục trên thiết bị: bạn cũng phải chỉ định tên tệp đích trong thư mục đó
    • các tùy chọn :
      • push: Một thông số kỹ thuật đẩy, được định dạng là ' /path/to/srcfile.txt->/path/to/destfile.txt ' hoặc ' /path/to/srcfile.txt->/path/to/destdir/ '. Có thể lặp lại Đường dẫn này có thể liên quan đến thư mục mô-đun thử nghiệm hoặc chính thư mục ngoài.
      • ** post-push: ** Một lệnh chạy trên thiết bị (với ` adb shell <your command> `) sau khi tất cả các lần đẩy đã được thử. Trường hợp sử dụng điển hình sẽ sử dụng chmod cho các quyền
  • tên lớp: InstallApkSetup

    • tên viết tắt: install-apk
    • chức năng: đẩy các tệp apk tùy ý vào đích trên thiết bị
    • các tùy chọn:
      • test-file-name: tên của apk sẽ được cài đặt trên thiết bị.
      • install-arg: Các đối số bổ sung được chuyển đến lệnh pm install, bao gồm cả dấu gạch ngang ở đầu, ví dụ: “-d". Có thể lặp lại
  • tên lớp: RunCommandTargetPreparer

    • tên viết tắt: run-command
    • chức năng: thực hiện các lệnh shell tùy ý trước hoặc sau khi thực thi mô-đun thử nghiệm
    • các tùy chọn:
      • run-command: lệnh shell adb để chạy. Có thể được lặp lại
      • teardown-command: lệnh adb shell để chạy trong giai đoạn teardown. Có thể được lặp lại

Lớp kiểm tra

Lớp thử nghiệm là lớp Liên đoàn thương mại để sử dụng để thực hiện thử nghiệm.

<test class="com.android.tradefed.testtype.AndroidJUnitTest">
  <option name="package" value="android.test.example.helloworld"/>
  <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>

Dưới đây là ba lớp thử nghiệm phổ biến:

  • tên lớp: GTest

    • tên viết tắt: gtest
    • chức năng: Thử nghiệm chạy gói thử nghiệm gốc trên thiết bị nhất định.
    • các tùy chọn:
      • native-test-device-path: Đường dẫn trên thiết bị chứa các thử nghiệm gốc.
  • tên lớp: InstrumentationTest

    • tên viết tắt: thiết bị đo đạc
    • chức năng: Một thử nghiệm chạy gói thử nghiệm thiết bị đo trên thiết bị nhất định
    • các tùy chọn:
      • package: Tên gói tệp kê khai của ứng dụng thử nghiệm Android để chạy.
      • class: Tên lớp thử nghiệm để chạy.
      • method: Tên phương pháp kiểm tra để chạy.
  • tên lớp: AndroidJUnitTest

    • chức năng: Kiểm tra chạy gói kiểm tra thiết bị trên thiết bị nhất định bằng cách sử dụng android.support.test.runner.AndroidJUnitRunner Đây là cách chính để thực hiện kiểm tra thiết bị.