Kiểm thử đo lường

Đầu tiên hãy đọc Kiểm tra ứng dụng của bạn trên dev.android.com. Hãy lưu ý rằng có một số khác biệt trong cách sử dụng thử nghiệm thiết bị đo đạc trong thử nghiệm nền tảng.

Tóm lại, kiểm thử thiết bị đo lường cung cấp một môi trường thực thi kiểm thử đặc biệt khi được khởi chạy thông qua lệnh am instrument , trong đó quy trình ứng dụng mục tiêu được khởi động lại và khởi tạo với ngữ cảnh ứng dụng cơ bản, đồng thời một luồng thiết bị đo lường được khởi động bên trong VM quy trình ứng dụng. Mã thử nghiệm của bạn bắt đầu thực thi trên luồng công cụ này và được cung cấp một phiên bản Instrumentation cung cấp quyền truy cập vào ngữ cảnh ứng dụng và các API để thao tác quy trình ứng dụng đang được thử nghiệm.

Ý chính

  • một thiết bị đo đạc phải được khai báo trong gói ứng dụng, với thẻ <instrumentation> được lồng trong thẻ <manifest> của bảng kê khai gói ứng dụng.
  • về mặt kỹ thuật, một bản kê khai gói ứng dụng có thể chứa nhiều thẻ <instrumentation> , mặc dù nó không được sử dụng phổ biến theo kiểu này.
  • mỗi <instrumentation> phải chứa:
    • thuộc tính android:name : thuộc tính này phải là tên của một lớp con của Instrumentation có trong ứng dụng thử nghiệm, thường là trình chạy thử nghiệm đang được sử dụng, ví dụ: android.support.test.runner.AndroidJUnitRunner
    • thuộc tính android:targetPackage phải được xác định. Giá trị của nó phải được đặt thành gói ứng dụng đang được thử nghiệm.

Tóm tắt các bước

  1. Dưới đây là các điểm đến phổ biến cho các thử nghiệm kín đối với các dịch vụ khung:

    frameworks/base/core/tests/coretests
    frameworks/base/services/tests/servicestests
    

    Nếu bạn đang thêm một mô-đun thiết bị đo đạc hoàn toàn mới cho thành phần của mình, hãy xem

  2. Tuân theo quy ước hiện có nếu bạn đang thêm các bài kiểm tra vào một trong các vị trí trên. Nếu bạn đang thiết lập một mô-đun thử nghiệm mới, vui lòng thực hiện theo quá trình thiết lập AndroidManifest.xmlAndroid.mk tại một trong các vị trí trên

  3. Xem frameworks/base/core/tests/coretests/ để biết ví dụ. Lưu ý những dòng này cài đặt thêm ứng dụng:

    <option name="test-file-name" value="FrameworksCoreTests.apk" />
    <option name="test-file-name" value="BstatsTestApp.apk" />
    
  4. Đừng quên đánh dấu bài kiểm tra của bạn là @SmallTest , @MediumTest hoặc @LargeTest

  5. Xây dựng mô-đun thử nghiệm với m, ví dụ:

    m FrameworksCoreTests
    
  6. Chạy thử nghiệm:

    m tradefed-all
    tradefed.sh run template/local_min --template:map test=FrameworksCoreTests
    
  7. Nếu không sử dụng Tradefed, hãy cài đặt và chạy thử nghiệm theo cách thủ công:

    1. Cài đặt apk đã tạo:
    adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
    
    1. Chạy thử nghiệm với nhiều tùy chọn khác nhau:

      1. tất cả các bài kiểm tra trong apk

        adb shell am instrument -w com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      2. tất cả các thử nghiệm trong một gói Java cụ thể

        adb shell am instrument -w -e package android.animation \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      3. tất cả các bài kiểm tra thuộc một lớp cụ thể

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      4. phương pháp thử nghiệm cụ thể

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest#testCancel \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        

Thử nghiệm của bạn có thể đưa ra xác nhận rõ ràng về việc đạt hay không bằng cách sử dụng API JUnit ; Ngoài ra, bất kỳ trường hợp ngoại lệ nào chưa được phát hiện cũng sẽ gây ra lỗi chức năng.

Để phát ra số liệu hiệu suất, mã kiểm tra của bạn có thể gọi Instrumentation#sendStatus để gửi danh sách các cặp khóa-giá trị. Điều quan trọng cần lưu ý là:

  1. số liệu có thể là số nguyên hoặc dấu phẩy động
  2. mọi giá trị phi số sẽ bị loại bỏ
  3. apk thử nghiệm của bạn có thể là thử nghiệm chức năng hoặc thử nghiệm số liệu, tuy nhiên việc kết hợp cả hai hiện không được hỗ trợ