Hướng dẫn này mô tả cách chuẩn bị và chạy một kiểm thử đo lường bằng Phòng thử nghiệm Firebase. Để sử dụng hướng dẫn này, bạn cần có một 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. Các bài kiểm thử đo lường có thể chạy trong 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 APK của ứng dụng và APK của thử nghiệm 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
Phòng thử nghiệm Firebase bao gồm 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 kiểm thử đo lường, chẳng hạn như các 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 của Firebase.
Thử một ứ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.kts
hoặ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.kts
hoặc<project>/<app-module>/build.gradle
), hãy thêm một phần phụ thuộc cho thư viện ảnh chụp màn hình của Phòng thử nghiệm.dependencies { // ... // Add Test Lab's instrumentation test screenshot library: androidTestImplementation("com.google.firebase:testlab-instr-lib:0.2") // ...
Trong tệp
AndroidManifest.xml
của bài kiểm thử, hãy đăng kýFirebaseScreenCaptureProcessor
trong một thẻ siêu dữ liệu trong phần tử<instrumentation>
. Thay vào đó, 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 về cách thực hiệ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.xml
của ứng dụng, hãy thêm các dòng sau bên trong phần tử<manifest>
:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Trong tệp
AndroidManifest.xml
, hãy chỉ định các quyền hệ thống cho ứng dụng của bạn 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 (API cấp 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 thử nghiệm
Tại bất cứ thời điểm nào trong quy 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. Thao tác này sẽ tạo ra một đố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
. Lưu ý là 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à cung cấp kết quả cho bạn khi bạn chạy kiểm thử với Phòng thử nghiệm Firebase.
Ví dụ về các trường hợp sử dụng việc tạo ScreenCapture
:
Chụp toàn bộ màn hình trên một API Build.VERSION_VERSION.JELLY_BEAN_MR2 trở lên:
Screenshot.capture()
Lấy
ScreenCapture
củ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ị dưới Build.VERSION_VERSION.JELLY_BEAN_MR2.@Rule public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class); ... Screenshot.capture(activityRule.getActivity()); ...
Ví dụ về các trường hợp sử dụng tính năng xử lý ScreenCapture
Xử lý
ScreenCapture
thông quaFirebaseScreenCaptureProcessor
:Screenshot.capture().process();
Xử lý
ScreenCapture
qua mộtScreenCaptureProcessor
đã chỉ định (điều này cho phép bạn bỏ qua việc đăng ký đơn vị xử lý):Set<ScreenCaptureProcessor> processors = new HashSet<>(); processors.add(new FirebaseScreenCaptureProcessor()); Screenshot.capture().process(processors);
Đặt tên và định dạng của
ScreenCapture
rồi xử lý thông qua đơn vị xử lý đã đăng ký:Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
Bước 3. Tạo và chạy kiểm thử
Tạo ứng dụng và kiểm thử APK (xem hướng dẫn trong phần Kiểm thử ứng dụng).
Tải tệp APK lên trang tổng quan Phòng thử nghiệm của bảng điều khiển của Firebase.
Cuối cùng, hãy chạy chương trình kiểm thử của bạn.
Bước 4. Xem ảnh chụp màn hình thử nghiệm
Sau khi thử nghiệm hoàn tất, bạn có thể xem mọi ảnh chụp màn hình được chụp trong bảng điều khiển của Firebase.
Trong thẻ Tests (Kiểm thử), hãy chọn lượt kiểm thử đã hoàn tất, sau đó nhấp vào thẻ Kết quả.
Chọn lại thử nghiệm rồi 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 thử nghiệm bổ sung
Bạn có thể bật các tính năng sau trong kiểm thử trước khi chạy bằng Phòng thử nghiệm:
Bật Orchestrator
Android Test Orchestrator là một công cụ chạy độc lập các bài kiểm thử đo lường của từng ứng dụng. Test Lab luôn sử dụng phiên bản mới nhất của Orchestrator.
Để bật Orchestrator cho Test Lab, trong phần thiết lập kiểm thử đo lường, hãy nhấp vào Other options > Run with Orchestrator.
Khi sử dụng Orchestrator, bạn sẽ được hưởng những lợi ích sau:
- Không có trạng thái được chia sẻ. Mỗi lượt kiểm thử chạy trong một thực thể đo lường riêng, do đó, trạng thái dùng chung không tích luỹ qua các lượt kiểm thử.
- Sự cố tách biệt. Nếu một kiểm thử gặp sự cố, thì chỉ có hoạt động đo lường đó mới bị chấm dứt và các kiểm thử khác trong bộ kiểm thử của bạn vẫn có thể chạy.
Lưu ý rằng khi bạn sử dụng Orchestrator, mỗi bài kiểm thử sẽ chạy một thực thể đo lường riêng, có nghĩa là quy trình ứng dụng sẽ được khởi động lại sau mỗi trường hợp kiểm thử. 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 lập hoá đơn 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, mức hao tổn này sẽ rút ngắn.
Để đặt các tuỳ chọn bổ sung cho Orchestrator, hãy chỉ định các tuỳ chọn đó thông qua trường environmentVariables
. Ví dụ: để sử dụng clearPackageData
, hãy sử 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 kiểm thử sẽ chia một tập hợp kiểm thử thành các nhóm con (phân đoạn) chạy riêng biệt. Phòng thử nghiệm tự động chạy song song từng phân đoạn bằng cách sử dụng nhiều thiết bị và hoàn thành toàn bộ tập hợp kiểm thử trong thời gian ngắn hơn.
Ví dụ: nếu bạn tạo phân đoạn N, đối với mỗi thiết bị bạn chọn, Phòng thử nghiệm sẽ xoay vòng N thiết bị giống nhau và chạy một tập hợp con 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 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 lượt chạy kiểm thử cho mỗi thiết bị. Để tìm hiểu các khái niệm trong Phòng thử nghiệm, hãy xem phần Các khái niệm chính.
Để bật tính năng phân đoạn kiểm thử trong bảng điều khiển của Firebase, hãy làm theo các bước sau:
Trong phần thiết lập kiểm thử đo lường, nhấp vào Additional options (Tuỳ chọn bổ sung).
Trong mục Phân đoạn, hãy nhập số lượng phân đoạn bạn muốn chạy.
Thanh toán cho phân đoạn kiểm thử
Phòng thử nghiệm triển khai các phân đoạn của bạn bằng cách tận dụng cơ chế phân đoạn tích hợp sẵn của AndroidJUnitRunner. Để tránh bị tính phí cho việc tạo phân đoạn trống (phân đoạn không có trường hợp kiểm thử được chỉ định), số lượng 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 từ 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ề thanh toán, hãy đọc bài viết Mức sử dụng, hạn mức và thanh toán.