Hướng dẫn này mô tả cách chuẩn bị và chạy 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ó kiểm thử đo lường (được viết bởi bạn hoặc nhóm của bạn) sử dụng Espresso hoặc Công cụ tự động hoá giao diện người dùng Khung kiểm thử Android. Thử nghiệm đo lường có thể chạy đến 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 lên và APK kiểm thử của bạn 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 bao gồm một thư viện (testlab-instr-lib) mà bạn có thể
sử dụng để xử lý mọi ảnh chụp màn hình mà bạn chụp bằng AndroidX
Chụp ảnh màn hình
khi chạy kiểm thử đo lường, chẳng hạn 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 AndroidX
và cách xử lý chú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ử tính năng này. Hiện có 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 cơ sở của dự án kiểm thử (
settings.gradle.kts
hoặcsettings.gradle
), 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 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.xml
của chương trình kiểm thử, hãy đăng kýFirebaseScreenCaptureProcessor
trong thẻ siêu dữ liệu trong Phần tử<instrumentation>
. Bạn cũng có thể chỉ định đơn vị xử lý là đối số trong AndroidJUnitRunner (hãy xem Tài liệu tham khảo về AndroidJUnitRunner để được hướng dẫn 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 vào 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 thử nghiệm trên Android 10 (API cấp 29) trở lên, hãy bỏ quaWRITE_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 thử nghiệm mà bạn muốn chụp ảnh màn hình, hãy gọi hàm
Phương thức Screenshot.capture()
từ thư viện AndroidX. Thao tác này sẽ tạo 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
đã được đăng ký trong AndroidManifest.xml
của bạn. Lưu ý rằng
BasicScreenCaptureProcessor
đượ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 của bạn sẽ
được xử lý qua FirebaseScreenCaptureProcessor
và sẽ có sẵn
cho bạn kết quả khi chạy kiểm thử bằng Firebase Test Lab.
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_codes.JELLY_BEAN_MR2 và bên trên:
Screenshot.capture()
Lấy
ScreenCapture
của Hoạt động ở mọi cấp độ API. Lưu ý rằng đây là chỉ dành cho các thiết bị có phiên bản dưới đây Build.VERSION_Indexed.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
thông quaScreenCaptureProcessor
đã chỉ định (điều này cho phép bạn bỏ qua việc đăng ký trình 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ý bằng hàm đơ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 của bạn và kiểm thử APK (xem Kiểm thử ứng dụng để được hướng dẫn).
Tải tệp APK lên trang tổng quan của Test Lab của bảng điều khiển 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 kiểm thử xong, bạn có thể xem mọi ảnh chụp màn hình đã chụp trong bảng điều khiển của Firebase.
Trong thẻ 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 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 thử nghiệm của mình trước khi chạy thử nghiệm bằng Test Lab:
Bật Orchestrator
Android Test Orchestrator là một công cụ chạy độc lập từng bài 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 Orchestrator.
Để bật Orchestrator cho Test Lab, trong kiểm thử đo lường thiết lập, nhấp vào Tuỳ chọn khác > Chạy cùng 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 kiểm thử sẽ tự chạy thực thể đo lường, do đó, trạng thái dùng chung không tích luỹ qua các lần kiểm thử.
- Sự cố riêng lẻ. Nếu kiểm thử gặp sự cố, chỉ có vậy công cụ đo lường bị chấm dứt và các chương trình kiểm thử khác trong bộ công cụ của bạn vẫn có thể chạy.
Xin lưu ý rằng khi bạn sử dụng Orchestrator, mỗi lượt kiểm thử sẽ chạy riêng thực thể đo lường, tức là quy trình ứng dụng sẽ được khởi động lại sau khi 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 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, thì 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 tham số này
tuỳ chọn 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ử chia một tập hợp 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 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 N phân đoạn, thì đối với mỗi thiết bị bạn chọn, Test Lab sẽ xoay N thiết bị giống nhau và chạy một tập hợp con thử nghiệm trên mỗi thiết bị. Điều này có nghĩa là rằng 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ử cho 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 về Test Lab, hãy xem 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 Firebase, hãy làm theo các bước sau:
Trong phần thiết lập kiểm thử đo lường, hãy nhấp vào 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ử
Test Lab triển khai phân đoạn của bạn bằng cách tận dụng công cụ cài sẵn của AndroidJUnitRunner cơ chế phân đoạn. Để tránh bị tính phí cho việc quay các phân đoạn trống (phân đoạn chưa được chỉ định trường hợp kiểm thử), số lượng phân đoạn mà bạn tạo phải ít hơn tổng số trường hợp kiểm thử. Tuỳ thuộc vào cách thức thời gian chạy mỗi trường hợp kiểm thử lâu, thường nên chỉ định từ 2 đến 10 kiểm thử trường hợp 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.