Trước tiên, hãy đọc bài viết Kiểm thử ứng dụng trên developer.android.com. Xin lưu ý rằng có một số điểm khác biệt trong cách sử dụng kiểm thử đo lường trong kiểm thử nền tảng.
Tóm lại, kiểm thử đo lường cung cấp một môi trường thực thi kiểm thử đặc biệt được khởi chạy thông qua lệnh am instrument
, trong đó quy trình ứng dụng được nhắm mục tiêu sẽ được khởi động lại và khởi chạy bằng ngữ cảnh ứng dụng cơ bản, đồng thời một luồng đo lường sẽ được bắt đầu bên trong máy ảo quy trình ứng dụng. Mã kiểm thử của bạn bắt đầu thực thi trên luồng đo lường này và được cung cấp một thực thể Instrumentation
cung cấp quyền truy cập vào ngữ cảnh ứng dụng và các API để thao tác với quy trình ứng dụng đang được kiểm thử.
Khái niệm chính
- bạn phải khai báo một công cụ đo lường trong gói ứng dụng, với thẻ
<instrumentation>
lồng trong thẻ<manifest>
của tệp kê khai gói ứng dụng. - về mặt kỹ thuật, tệp kê khai gói ứng dụng có thể chứa nhiều thẻ
<instrumentation>
, mặc dù tệp này thường không được sử dụng theo cách 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ủaInstrumentation
có trong ứng dụng kiểm thử, thường là trình chạy kiểm thử đang được sử dụng, ví dụ:android.support.test.runner.AndroidJUnitRunner
- phải xác định thuộc tính
android:targetPackage
. Bạn nên đặt giá trị của thuộc tính này thành gói ứng dụng đang được kiểm thử.
- thuộc tính
Tóm tắt các bước
Dưới đây là các đích đến phổ biến cho kiểm thử 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 đo lường hoàn toàn mới cho thành phần của mình, hãy xem
Làm theo quy ước hiện có nếu bạn thêm chương trình kiểm thử vào một trong các vị trí trên. Nếu bạn đang thiết lập một mô-đun kiểm thử mới, vui lòng làm theo quy trình thiết lập
AndroidManifest.xml
vàAndroid.mk
ở một trong các vị trí ở trênHãy xem frameworks/base/core/tests/coretests/ để biết ví dụ. Lưu ý rằng các dòng này sẽ cài đặt các ứng dụng bổ sung:
<option name="test-file-name" value="FrameworksCoreTests.apk" /> <option name="test-file-name" value="BstatsTestApp.apk" />
Đừng quên đánh dấu kiểm thử của bạn là
@SmallTest
,@MediumTest
hoặc@LargeTest
Tạo mô-đun kiểm thử bằng m, ví dụ:
m FrameworksCoreTests
Chạy kiểm thử:
Giải pháp đơn giản nhất là sử dụng Atest (Chạy) như sau:
atest FrameworksCoreTests
Hoặc đối với các bài kiểm thử phức tạp hơn, hãy sử dụng Bộ kiểm thử Liên minh thương mại:
m tradefed-all tradefed.sh run template/local_min --template:map test=FrameworksCoreTests
Nếu không sử dụng Tradefed, hãy cài đặt và chạy các chương trình kiểm thử theo cách thủ công:
- Cài đặt tệp APK đã tạo:
adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
Chạy kiểm thử bằng nhiều tuỳ chọn:
tất cả các bài kiểm thử trong tệp APK
adb shell am instrument -w com.android.frameworks.coretests\ /android.support.test.runner.AndroidJUnitRunner
tất cả các bài kiểm thử 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
tất cả các bài kiểm thử trong 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
một phương thức kiểm thử cụ thể
adb shell am instrument -w -e class \ android.animation.AnimatorSetEventsTest#testCancel \ com.android.frameworks.coretests\ /android.support.test.runner.AndroidJUnitRunner
Kiểm thử của bạn có thể đưa ra khẳng định rõ ràng về việc đạt hoặc không đạt bằng cách sử dụng API JUnit
; ngoài ra, mọi trường hợp ngoại lệ chưa được nắm bắt cũng sẽ gây ra lỗi chức năng.
Để phát các chỉ số hiệu suất, mã kiểm thử của bạn có thể gọi Instrumentation#sendStatus
để gửi danh sách các cặp khoá-giá trị. Bạn cần lưu ý rằng:
- chỉ số có thể là số nguyên hoặc dấu phẩy động
- mọi giá trị không phải số sẽ bị loại bỏ
- tệp APK kiểm thử của bạn có thể là kiểm thử chức năng hoặc kiểm thử chỉ số. Tuy nhiên, việc kết hợp cả hai hiện không được hỗ trợ