Hướng dẫn này mô tả cách chuẩn bị và chạy chương trình kiểm thử đo lường bằng Firebase Test Lab. Để sử dụng hướng dẫn này, bạn cần có một chương trình kiểm thử đo lường (do bạn hoặc nhóm của bạn viết) sử dụng khung kiểm thử Android Espresso hoặc UI Automator. Chương trình kiểm thử đo lường có thể chạy tối đa 45 phút trên thiết bị thực và tối đa 60 phút trên thiết bị ảo.
Trong các bước sau, bạn sẽ tải tệp APK của ứng dụng và tệp APK của chương trình kiểm thử lên Firebase.
(Không bắt buộc) Thêm thư viện ảnh chụp màn hình vào ứng dụng
Firebase Test Lab có một thư viện (testlab-instr-lib) mà bạn có thể
dùng để xử lý mọi ảnh chụp màn hình bạn chụp bằng ScreenCapture của AndroidX
khi chạy chương trình kiểm thử đo lường, chẳng hạn như chương trình kiểm thử được viết bằng
khung kiểm thử Espresso.
Phần này mô tả cách tạo đối tượng ScreenCapture bằng thư viện AndroidX và cách xử lý các đối tượng đó bằng testlab-instr-lib.
Sau khi chạy chương trình kiểm thử đo lường, bạn có thể xem ảnh chụp màn hình đã chụp trong bảng điều khiển Firebase.
Dùng thử ứng dụng mẫu
Tải ứng dụng mẫu NotePad xuống để dùng thử chức năng này. Tính năng chụp ảnh màn hình đã được tích hợp vào dự án NotePad.
Bước 1. Thêm thư viện ảnh chụp màn hình vào dự án
Trong tệp Gradle cài đặt ở cấp gốc của dự án kiểm thử (
settings.gradle.ktshoặcsettings.gradle), hãy thêm kho lưu trữ Maven của Google vào mọi phầnrepositories:pluginManagement { repositories { // Add the following line: google() // Google's Maven repository mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { // Add the following line: google() // Google's Maven repository mavenCentral() } } // ...
Trong tệp Gradle mô-đun (cấp ứng dụng) (thường là
<project>/<app-module>/build.gradle.ktshoặc<project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc cho thư viện ảnh chụp màn hình Test Lab.dependencies { // ... // Add Test Lab's instrumentation test screenshot library: androidTestImplementation("com.google.firebase:testlab-instr-lib:0.2") // ...
Trong tệp
AndroidManifest.xmlcủa chương trình kiểm thử, hãy đăng kýFirebaseScreenCaptureProcessortrong thẻ siêu dữ liệu trong phần tử<instrumentation>. Bạn cũng có thể chỉ định bộ xử lý làm đối số trong AndroidJUnitRunner (xem tài liệu tham khảo về AndroidJUnitRunner để biết hướng dẫn).<instrumentation // Check that you have the following line (if not, add it): android:name="androidx.test.runner.AndroidJUnitRunner" // Specifies AndroidJUnitRunner as the test runner android:targetPackage="com.your.package.name"> // Add the following: <meta-data android:name="screenCaptureProcessors" android:value="com.google.firebase.testlab.screenshot.FirebaseScreenCaptureProcessor" /> </instrumentation> ...Trong tệp
AndroidManifest.xmlcủa ứng dụng, hãy thêm các dòng sau vào phần tử<manifest>:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>Trong tệp
AndroidManifest.xml, hãy chỉ định quyền của hệ thống cho ứng dụng bằng cách thêm các dòng sau vào thẻ<manifest>. Nếu bạn đang kiểm thử trên Android 10 (cấp độ API 29) trở lên, hãy bỏ qua quyềnWRITE_EXTERNAL_STORAGE(ứng dụng của bạn không yêu cầu quyền này để đọc và ghi ảnh chụp màn hình vào thiết bị).<manifest ... > <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> ... </manifest>
Bước 2. Chụp ảnh màn hình trong quá trình kiểm thử
Tại bất kỳ thời điểm nào trong quá trình kiểm thử mà bạn muốn chụp ảnh màn hình, hãy gọi phương thức Screenshot.capture() từ thư viện AndroidX. Phương thức này tạo ra đối tượng
ScreenCapture.
Khi bạn gọi process() trên đối tượng ScreenCapture, đối tượng này sẽ được xử lý
bằng ScreenCaptureProcessor
đã đăng ký trong AndroidManifest.xml. Xin lưu ý rằng BasicScreenCaptureProcessor sẽ được dùng nếu không có bộ xử lý nào được đăng ký.
Vì bạn đã đăng ký FirebaseScreenCaptureProcessor, nên ảnh chụp màn hình sẽ
được xử lý thông qua FirebaseScreenCaptureProcessor và bạn sẽ có thể xem các ảnh này
cùng với kết quả khi chạy chương trình kiểm thử bằng Firebase Test Lab.
Các trường hợp sử dụng mẫu để tạo ScreenCapture:
Chụp toàn bộ ScreenCapture trên API Build.VERSION_CODES.JELLY_BEAN_MR2 trở lên:
Screenshot.capture()Chụp
ScreenCapturecủa Hoạt động ở mọi cấp độ API. Xin lưu ý rằng đây là lựa chọn duy nhất cho các thiết bị có phiên bản thấp hơn Build.VERSION_CODES.JELLY_BEAN_MR2.@Rule public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class); ... Screenshot.capture(activityRule.getActivity()); ...
Các trường hợp sử dụng mẫu để xử lý ScreenCapture
Xử lý
ScreenCapturethông quaFirebaseScreenCaptureProcessor:Screenshot.capture().process();Xử lý
ScreenCapturethông quaScreenCaptureProcessorđã chỉ định (điều này cho phép bạn bỏ qua việc đăng ký bộ xử lý):Set<ScreenCaptureProcessor> processors = new HashSet<>(); processors.add(new FirebaseScreenCaptureProcessor()); Screenshot.capture().process(processors);Đặt tên và định dạng cho
ScreenCapture, đồng thời xử lý bằng bộ xử lý đã đăng ký:Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
Bước 3. Tạo và chạy chương trình kiểm thử
Tạo tệp APK của ứng dụng và chương trình kiểm thử (xem bài viết Kiểm thử ứng dụng để biết hướng dẫn).
Trong bảng điều khiển Firebase, hãy chuyển đến DevOps và Tương tác > Phòng thử nghiệm, sau đó tải tệp APK lên.
Cuối cùng, hãy chạy chương trình kiểm thử.
Bước 4. Xem ảnh chụp màn hình của chương trình kiểm thử
Sau khi chương trình kiểm thử hoàn tất, bạn có thể xem mọi ảnh chụp màn hình đã chụp:
Trong bảng điều khiển Firebase, hãy chuyển đến DevOps và Tương tác > Phòng thử nghiệm.
Trong thẻ Chương trình kiểm thử, hãy chọn chương trình kiểm thử đã hoàn tất, sau đó nhấp vào thẻ Kết quả.
Chọn lại chương trình kiểm thử, sau đó nhấp vào thẻ Ảnh chụp màn hình xuất hiện.
(Không bắt buộc) Bật các tính năng kiểm thử bổ sung
Bạn có thể bật các tính năng sau trong chương trình kiểm thử trước khi chạy chương trình đó bằng Test Lab:
Bật Trình điều phối
Android Test Orchestrator là một công cụ chạy độc lập từng chương trình kiểm thử đo lường của ứng dụng. Test Lab luôn sử dụng phiên bản mới nhất của Trình điều phối.
Để bật Trình điều phối cho Test Lab, trong phần thiết lập chương trình kiểm thử đo lường, hãy nhấp vào Tuỳ chọn bổ sung > Chạy bằng Trình điều phối.
Khi sử dụng Trình điều phối, bạn sẽ được hưởng các lợi ích sau:
- Không có trạng thái dùng chung. Mỗi chương trình kiểm thử chạy trong một thực thể đo lường riêng, vì vậy, trạng thái dùng chung sẽ không tích luỹ trên các chương trình kiểm thử.
- Sự cố riêng biệt. Nếu một chương trình kiểm thử gặp sự cố, thì chỉ chương trình đo lường đó bị chấm dứt và các chương trình kiểm thử khác trong bộ kiểm thử vẫn có thể chạy.
Xin lưu ý rằng khi bạn sử dụng Trình điều phối, mỗi chương trình kiểm thử sẽ chạy thực thể đo lường riêng. Điều này có nghĩa là quá trình ứng dụng sẽ khởi động lại sau mỗi trường hợp kiểm thử. Việc thời gian chạy tăng lên có thể ảnh hưởng đến mức sử dụng hạn mức hoặc thời gian tính phí và có thể khiến bạn vượt quá giới hạn thời gian chờ của thiết bị. Nếu bạn giảm thời gian khởi động ứng dụng, thì chi phí này sẽ giảm.
Để đặt các tuỳ chọn bổ sung cho Trình điều phối, hãy chỉ định các tuỳ chọn đó thông qua
environmentVariables trường. Ví dụ: để sử dụng clearPackageData, hãy dùng tuỳ chọn này trong gcloud:
--environment-variables clearPackageData=true
Bật tính năng phân đoạn
Tính năng phân đoạn chương trình kiểm thử chia một nhóm chương trình kiểm thử thành các nhóm con (phân đoạn) chạy riêng biệt. Test Lab tự động chạy song song từng phân đoạn bằng nhiều thiết bị và hoàn tất toàn bộ nhóm chương trình kiểm thử trong thời gian ngắn hơn.
Ví dụ: nếu bạn tạo N phân đoạn, thì đối với mỗi thiết bị bạn chọn, Test Lab sẽ tạo N thiết bị giống hệt nhau và chạy một nhóm chương trình kiểm thử trên mỗi thiết bị. Điều này có nghĩa là các trường hợp kiểm thử được phân đoạn có thể dẫn đến nhiều lần thực thi chương trình kiểm thử trên mỗi thiết bị. Tuy nhiên, các trường hợp kiểm thử không được phân đoạn sẽ dẫn đến một phiên chạy thử nghiệm trên mỗi thiết bị. Để tìm hiểu các khái niệm Test Lab, hãy xem Các khái niệm chính.
Để bật tính năng phân đoạn chương trình kiểm thử trong bảng điều khiển Firebase, hãy làm theo các bước sau:
Trong phần thiết lập chương trình kiểm thử đo lường, hãy nhấp vào Tuỳ chọn bổ sung.
Trong phần Phân đoạn, hãy nhập số phân đoạn bạn muốn chạy.
Tính phí cho các phân đoạn chương trình kiểm thử
Test Lab triển khai các phân đoạn bằng cách tận dụng cơ chế phân đoạn tích hợp của AndroidJUnitRunner. Để tránh bị tính phí cho việc tạo các phân đoạn trống (phân đoạn không có trường hợp kiểm thử được chỉ định), số phân đoạn bạn tạo phải nhỏ hơn tổng số trường hợp kiểm thử. Tuỳ thuộc vào thời gian chạy của mỗi trường hợp kiểm thử, bạn nên chỉ định 2 đến 10 trường hợp kiểm thử cho mỗi phân đoạn.
Để biết thêm thông tin về việc tính phí, hãy đọc bài viết Mức sử dụng, hạn mức và việc tính phí.