Google cam kết thúc đẩy công bằng chủng tộc cho các cộng đồng Đen. Xem thế nào.
Trang này được dịch bởi Cloud Translation API.
Switch to English

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à phá bỏ các bước không thể được thực hiện 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 apks khác (ngoài apk thử nghiệm)
  • đẩy một số tập tin vào thiết bị
  • chạy các lệnh (ví dụ: adb shell pm ...)

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

Mượn từ CTS, chúng tôi đã giới thiệu khái niệm cấu hình mô-đun thử nghiệm để hỗ trợ các tác vụ như vậy, danh sách các 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. Để 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 tên là 'AndroidTest.xml'. XML tuân theo định dạng của tệp cấu hình được sử dụng bởi khai thác tự động hóa thử nghiệm của Liên đoàn thương mại. Hiện tại, các thẻ chính được xử lý thông qua các cấu hình mô-đun kiểm tra là các thẻ Target_preparer và các thẻ "thử nghiệm".

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

Thẻ Target_preparer, như tên cho thấy, định nghĩa một trình chuẩn bị đích (xem ITargetPreparer ) cung cấp phương thức thiết lập, được gọi trước khi mô-đun kiểm tra được thực thi để kiểm tra; và nếu lớp được tham chiếu trong thẻ Target_preparer và cũng thực hiện ITargetCleaner , phương thức phá bỏ 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 tích hợp sẵn, hãy thêm một tệp mới 'AndroidTest.xml' vào thư mục cấp cao nhất cho mô-đun thử nghiệm của bạn và điền vào đó 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>
 

Để làm ví dụ, chúng ta có thể thêm các thẻ tùy chọn sau (tại phần bình luận chèn chèn trên đây):

     <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ẽ cấu hình khai thác thử nghiệm để:

  1. trước khi mô-đun kiểm tra được gọi, hãy thực thi lệnh shell Cài đặt cài đặt an toàn cho khả năng truy cập_en bật 1 trên thiết bị
  2. sau khi mô-đun kiểm tra kết thúc, thực thi lệnh shell Cài đặt cài đặt an toàn

Trong ví dụ cụ thể này, khả năng truy cập được bật / tắt trước / sau khi thực hiện mô-đun kiểm tra, tương ứng. Với một ví dụ đơn giản đã được trình bày, cần phải trình bày chi tiết hơn về cách sử dụng thẻ Tùy chọn trên mạng. Như được hiển thị ở trên, thẻ có thể có hai thuộc tính: tên, giá trị. Thuộc tính name chỉ ra tên của tùy chọn và được chia 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ế được cung cấp bởi người chuẩn bị.

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. rằng chúng tôi đang thiết lập giá trị cho tùy chọn Lệnh run run được xác định bởi một người chuẩn bị mục tiêu với tên viết tắt là run run-lệnh Command; và tên của run run-Command: xé nát-lệnh Lệnh có nghĩa là chúng ta đang thiết lập giá trị cho tùy chọn Cấm xé rách-lệnh cũng được xác định bởi cùng một người chuẩn bị mục tiêu với tên ngắn gọn là run run-lệnh ra. Dưới đây là tóm tắt về ba người chuẩn bị mục tiêu phổ biến:

  • tên lớp: PushFilePreparer

    • tên viết tắt : tập tin đẩy
    • 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ú :
      • người chuẩn bị này có thể đẩy từ thư mục này sang thư mục khác, hoặc tập tin này sang tập tin khác; nghĩa là, bạn không thể đẩy tệp trong 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 đó.
    • tùy chọn :
      • đẩy: Một thông số đẩ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ể được 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 out.
      • ** 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 thông thường sẽ được sử dụng chmod cho quyền
  • Tên lớp: InstallApkSetup

    • tên viết tắt: install-apk
    • chức năng: đẩy các tập tin apk tùy ý vào đích trên thiết bị
    • 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 truyền cho lệnh pm install, bao gồm dấu gạch đầu dòng, ví dụ: -d -d ". Có thể được lặp lại
  • Tên lớp: RunCommandTargetPreparer

    • tên viết tắt: run-lệnh
    • Hàm: thực thi các lệnh shell tùy ý trước hoặc sau khi thực hiện mô-đun kiểm tra
    • tùy chọn:
      • run-lệnh: adb shell lệnh để chạy. Có thể được lặp đi lặp lại
      • xé rách-lệnh: lệnh shell adb để chạy trong giai đoạn xé nát. Có thể được lặp đi lặp lại

Lớp kiểm tra

Một lớp kiểm tra là lớp Liên đoàn Thương mại sẽ sử dụng để thực hiện kiểm tra.

 <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 kiểm tra phổ biến:

  • tên lớp: GTest

    • tên viết tắt: gtest
    • chức năng: Một thử nghiệm chạy gói thử nghiệm gốc trên thiết bị đã cho.
    • tùy chọn:
      • đường dẫn thử nghiệm gốc-thiết bị: Đường dẫn trên thiết bị nơi đặt các thử nghiệm gốc.
  • tên lớp: instrumentationTest

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

    • function: Một bài kiểm tra chạy gói kiểm tra thiết bị trên thiết bị đã cho 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ị.