Hướng dẫn này mô tả cách chạy một bài kiểm thử đo lường, Robo hoặc Vòng lặp trò chơi bằng gcloud CLI.
Để xem danh sách đầy đủ các lệnh gcloud mà bạn có thể sử dụng
với ứng dụng Android trong Test Lab, hãy truy cập vào
tài liệu tham khảo về gcloud firebase test android.
Trước khi bắt đầu
Nếu bạn chưa thực hiện, hãy thêm Firebase vào dự án Android.
Bước 1. Thiết lập gcloud CLI
- Tải SDK Google Cloud xuống
- Đảm bảo bản cài đặt của bạn là bản mới nhất:
gcloud components update
- Đăng nhập vào gcloud CLI bằng Tài khoản Google của bạn:
gcloud auth login
- Đặt dự án Firebase của bạn trong gcloud, trong đó PROJECT_ID là
mã dự án Firebase của bạn:
gcloud config set project PROJECT_ID
SDK này bao gồm công cụ gcloud CLI.
Bước 2. Kiểm tra các thiết bị kiểm thử có sẵn
Sử dụng các lệnh gcloud sau đây để xem các thiết bị kiểm thử và ngôn ngữ có sẵn cho bài kiểm thử của bạn.
Ngoài ra, bạn cũng có thể tải ứng dụng
Notepad mẫu xuống để bắt đầu
chạy các lệnh ngay lập tức. Sử dụng tệp nhị phân app-debug-unaligned.apk và tệp kiểm thử đo lường app-debug-test-unaligned.apk nằm trong NotePad/app/build/outputs/apk/.
models list: Nhận danh sách hiện tại gồm các thiết bị Android mà bạn có thể kiểm thử.gcloud firebase test android models listTrong kết quả lệnh:
- Cột
MODEL_IDchứa mã nhận dạng mà bạn có thể sử dụng sau này để chạy các bài kiểm thử trên mô hình thiết bị. - Cột
OS_VERSION_IDchứa các phiên bản hệ điều hành mà thiết bị hỗ trợ.
Ví dụ về kết quả

- Cột
models describe: Nhận thêm thông tin về mộtMODEL_IDAndroid cụ thể.gcloud firebase test android models describe MODEL_IDKết quả chứa thương hiệu, nhà sản xuất, phiên bản hệ điều hành, cấp độ API được hỗ trợ, Giao diện nhị phân ứng dụng (ABI) được hỗ trợ, ngày phát hành và liệu thiết bị đó là thiết bị thực hay thiết bị ảo.
versions list: Nhận danh sách các phiên bản hệ điều hành hiện có để kiểm thử.gcloud firebase test android versions listBạn có thể sử dụng mã nhận dạng từ một trong hai cột đầu tiên của kết quả lệnh output (
OS_VERSION_IDvàVERSION) để chạy các bài kiểm thử sau này trên một phiên bản hệ điều hành Android. Nếu bạn không chỉ định các phiên bản hệ điều hành Android để kiểm thử, thì hệ thống sẽ sử dụng phiên bản mặc định được ghi chú trong cộtTAGS.Ví dụ về kết quả

locales list: Nhận danh sách hiện tại gồm các ngôn ngữ có sẵn để kiểm thử.gcloud firebase test android locales listCột đầu tiên của kết quả lệnh,
LOCALE, chứa mã nhận dạng mà bạn có thể sử dụng sau này để chạy các bài kiểm thử trên một ngôn ngữ. Nếu bạn không chỉ định các ngôn ngữ để kiểm thử, thì tiếng Anh sẽ được sử dụng làm ngôn ngữ mặc định.
Bước 3. Chạy bài kiểm thử
Giờ đây, bạn đã biết phạm vi của các mô hình thiết bị, ngôn ngữ và phiên bản hệ điều hành có sẵn để kiểm thử ứng dụng của mình. Bạn có thể chỉ định các thiết bị bằng lệnh gcloud firebase test android run và cờ --device để chạy các bài kiểm thử Robo hoặc đo lường.
Chạy thử nghiệm Robo
Ngay cả khi không có bài kiểm thử đo lường nào, bạn vẫn có thể tìm lỗi trong ứng dụng của mình. Hãy sử dụng Thử nghiệm Robo để thực hiện quy trình xem xét tự động giao diện người dùng của ứng dụng. Thử nghiệm Robo thực hiện phân tích tĩnh các đường dẫn khác nhau thông qua giao diện người dùng của ứng dụng, sau đó thu thập thông tin của ứng dụng để tìm sự cố và các vấn đề tiềm ẩn khác.
Để chạy bài kiểm thử Robo, hãy chạy lệnh ví dụ sau:
gcloud firebase test android run \ --type robo \ --app app-debug-unaligned.apk \ --device model=Nexus6,version=21,locale=en,orientation=portrait \ --device model=Nexus7,version=19,locale=fr,orientation=landscape \ --timeout 90s \ --client-details matrixLabel="Example matrix label"
- Tham số
--type robolà ngầm định nếu không có giá trị--typenào được chỉ định. - Để giúp bạn xác định và tìm ma trận thử nghiệm trong bảng điều khiển của Firebase, bạn có thể sử dụng cờ
--client-details matrixLabel="Example matrix label"không bắt buộc để gắn nhãn cho ma trận thử nghiệm. - Bạn có thể xem toàn bộ tập hợp các tuỳ chọn dòng lệnh để chạy các bài kiểm thử bằng cách nhập:
gcloud help firebase test android run.
Ngoài việc chỉ định các đối số này trên dòng lệnh, bạn có thể tuỳ ý chỉ định các đối số trong tệp đối số có định dạng YAML. Chạy gcloud topic arg-files để tìm hiểu cách sử dụng tính năng này.
Để tìm hiểu cách điều tra kết quả kiểm thử từ Thử nghiệm Robo, hãy xem bài viết Phân tích kết quả kiểm thử.
Chạy bài kiểm thử đo lường
Bây giờ, hãy sử dụng công cụ dòng lệnh gcloud để chạy các bài kiểm thử
Espresso
của ứng dụng Notepad trên các cấu hình thiết bị Android mà bạn đã chỉ định. Sử dụng loại kiểm thử instrumentation để chạy các bài kiểm thử trong app-debug-test-unaligned.apk như sau:
gcloud firebase test android run \ --type instrumentation \ --app app-debug-unaligned.apk \ --test app-debug-test-unaligned.apk \ --device model=Nexus6,version=21,locale=en,orientation=portrait \ --device model=Nexus7,version=19,locale=fr,orientation=landscape --client-details matrixLabel="Example matrix label"
- Tham số đo lường
--typelà ngầm định nếu một APK kiểm thử được chỉ định bằng--test. - Để giúp bạn xác định và tìm ma trận thử nghiệm trong bảng điều khiển Firebase,
bạn có thể sử dụng cờ
--client-details matrixLabel="Example matrix label"không bắt buộc để gắn nhãn cho ma trận thử nghiệm. - Bạn có thể xem toàn bộ tập hợp các tuỳ chọn dòng lệnh để chạy các bài kiểm thử bằng cách nhập
gcloud help firebase test android run.
Ngoài việc chỉ định các đối số này trên dòng lệnh, bạn có thể tuỳ ý chỉ định các đối số trong tệp đối số có định dạng YAML. Chạy gcloud topic arg-files để tìm hiểu cách sử dụng tính năng này.
gcloud CLI hỗ trợ Android Test Orchestrator.
Orchestrator yêu cầu AndroidJUnitRunner phiên bản 1.1 trở lên. Để bật Orchestrator, hãy sử dụng
gcloud firebase test android run với cờ --use-orchestrator. Để tắt Orchestrator, hãy sử dụng cờ --no-use-orchestrator.
Bạn cũng có thể kiểm soát cách Test Lab chạy các bài kiểm thử đo lường
bằng cách sử dụng các cờ bổ sung không được hiển thị ở trên. Ví dụ: bạn có thể sử dụng cờ --test-targets để kiểm thử một lớp hoặc phương thức lớp do APK kiểm thử của bạn sử dụng. Bạn cũng có thể tìm hiểu xem bài kiểm thử không thành công có thực sự không ổn định hay không bằng cách sử dụng cờ --num-flaky-test-attempts. Cờ này chỉ định số lần phiên chạy thử nghiệm cần được thử lại nếu một hoặc nhiều trường hợp kiểm thử của bài kiểm thử đó không thành công vì bất kỳ lý do nào. Để tìm hiểu thêm, hãy xem bài viết gcloud firebase test android run.
Báo cáo mức độ sử dụng mã cho các bài kiểm thử đo lường
Test Lab hỗ trợ các công cụ báo cáo mức độ sử dụng mã
EMMA và
JaCoCo. Nếu đã tích hợp một trong hai công cụ này
vào bản dựng cho ứng dụng của mình, bạn có thể nhận báo cáo mức độ sử dụng mã cho
Test Lab bài kiểm thử bằng cách chạy gcloud firebase test android run với một số
đối số bổ sung. Nếu Android Test Orchestrator không được bật, hãy sử dụng như sau:
gcloud firebase test android run \ --type instrumentation \ --app your-app.apk \ --test your-app-test.apk \ --device model=TestDevice,version=AndroidVersion \ --environment-variables coverage=true,coverageFile="/sdcard/Download/coverage.ec" \ --directories-to-pull /sdcard/Download
Nếu bạn đang tạo báo cáo mức độ sử dụng mã trong khi cũng sử dụng Android Test Orchestrator, hãy sửa đổi các biến môi trường như sau:
gcloud firebase test android run \ --type instrumentation \ --app your-app.apk \ --test your-app-test.apk \ --device model=TestDevice,version=AndroidVersion \ --environment-variables clearPackageData=true,coverage=true,coverageFilePath="/sdcard/Download/" \ --directories-to-pull /sdcard/Download
Khi Test Lab chạy xong các bài kiểm thử, hãy tìm báo cáo mức độ sử dụng mã trong Google Cloud Storage:
- Mở đường liên kết đến bảng điều khiển Firebase mà công cụ
gcloudđã in ở trên bảng kết quả kiểm thử trong cửa sổ dòng lệnh. - Nhấp vào một phiên chạy thử nghiệm trong danh sách tại đường liên kết đó để mở trang thông tin chi tiết của phiên chạy đó.
- Nhấp vào Kết quả kiểm thử để chuyển đến nhóm Cloud Storage có kết quả kiểm thử của lần thực thi đó.
- Mở
artifacts/coverage.ecđể xem báo cáo mức độ sử dụng mã.
Phân tích kết quả kiểm thử
Sau vài phút, công cụ gcloud sẽ in bản tóm tắt cơ bản về kết quả kiểm thử:

Kết quả của lần chạy kiểm thử dòng lệnh cũng bao gồm một đường liên kết để xem kết quả kiểm thử. Để tìm hiểu thêm về cách diễn giải các kết quả này, hãy xem bài viết Phân tích kết quả của Firebase Test Lab cho Android.
Đăng nhập tuỳ chỉnh và nhập văn bản bằng Thử nghiệm Robo
Thử nghiệm Robo tự động hoàn tất các màn hình đăng nhập sử dụng Tài khoản Google
để xác thực, trừ phi bạn sử dụng
--no-auto-google-login
tham số. Bài kiểm thử này cũng có thể hoàn tất các màn hình đăng nhập tuỳ chỉnh bằng thông tin đăng nhập vào tài khoản kiểm thử mà bạn cung cấp. Bạn cũng có thể sử dụng tham số này để cung cấp thông tin đầu vào tuỳ chỉnh cho các trường văn bản khác mà ứng dụng của bạn sử dụng.
Để hoàn tất các trường văn bản trong ứng dụng, hãy sử dụng tham số
--robo-directives
và cung cấp danh sách các cặp key-value được phân tách bằng dấu phẩy, trong đó
key là tên tài nguyên Android của phần tử trên giao diện người dùng mục tiêu và value là
chuỗi văn bản. Bạn cũng có thể sử dụng cờ này để yêu cầu Robo bỏ qua các phần tử giao diện người dùng cụ thể (ví dụ: nút "đăng xuất").
EditText
trường được hỗ trợ nhưng không phải là các trường văn bản trong WebView phần tử giao diện người dùng.
Ví dụ: bạn có thể sử dụng tham số sau đây để đăng nhập tuỳ chỉnh:
--robo-directives username_resource=username,password_resource=password
Các lệnh và cờ có thể dùng
gcloud CLI của Test Lab có một số lệnh và cờ có thể dùng cho phép bạn chạy các bài kiểm thử với nhiều thông số kỹ thuật:
Cờ Android Test Orchestrator: Cờ để bật Orchestrator, một công cụ cho phép bạn chạy từng bài kiểm thử của ứng dụng trong lệnh gọi riêng của
Instrumentation. Test Lab luôn chạy phiên bản Orchestrator mới nhất.Cờ kiểm thử Vòng lặp trò chơi: Một tập hợp các cờ cấu hình cho phép và kiểm soát "chế độ minh hoạ" để mô phỏng hành động của người chơi trong các ứng dụng trò chơi. Tìm hiểu thêm về cách chạy các bài kiểm thử Vòng lặp trò chơi bằng Test Lab.
Cờ Phân đoạn đồng nhất (ở giai đoạn thử nghiệm): Cờ chỉ định số lượng phân đoạn mà bạn muốn phân phối đều các trường hợp kiểm thử. Các phân đoạn được chạy song song trên các thiết bị riêng biệt.
Cờ Phân đoạn thủ công (ở giai đoạn thử nghiệm): Cờ chỉ định một nhóm gói, lớp và/hoặc trường hợp kiểm thử để chạy trong một phân đoạn (một nhóm trường hợp kiểm thử). Các phân đoạn được chạy song song trên các thiết bị riêng biệt.
Cờ hồ sơ lưu lượng truy cập mạng (ở giai đoạn thử nghiệm): Cờ chỉ định hồ sơ mạng mà các bài kiểm thử của bạn sử dụng với các thiết bị thực. Hồ sơ mạng mô phỏng nhiều điều kiện mạng, cho phép bạn kiểm thử hiệu suất của ứng dụng trên các mạng không đáng tin cậy hoặc không thể đoán trước.
Tạo tập lệnh cho các lệnh gcloud bằng Test Lab
Bạn có thể sử dụng tập lệnh shell hoặc tệp hàng loạt để tự động hoá các lệnh kiểm thử ứng dụng di động mà bạn sẽ chạy bằng dòng lệnh gcloud. Tập lệnh bash ví dụ sau đây chạy một bài kiểm thử đo lường với thời gian chờ là 2 phút và báo cáo nếu lần chạy kiểm thử hoàn tất thành công:
if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
echo "Test matrix successfully finished"
else
echo "Test matrix exited abnormally with non-zero exit code: " $?
fi
Mã thoát tập lệnh
Test Lab cung cấp một số mã thoát mà bạn có thể sử dụng để hiểu rõ hơn về kết quả của các bài kiểm thử mà bạn chạy bằng tập lệnh hoặc tệp hàng loạt.
Viết tập lệnh cho mã thoát của Test Lab
| Mã thoát | Ghi chú |
|---|---|
| 0 | Tất cả các lần thực thi kiểm thử đều thành công. |
| 1 | Đã xảy ra lỗi chung. Các nguyên nhân có thể bao gồm: tên tệp không tồn tại hoặc lỗi HTTP/mạng. |
| 2 | Quá trình kiểm thử đã thoát vì các lệnh hoặc đối số không xác định đã được cung cấp. |
| 10 | Một hoặc nhiều trường hợp kiểm thử (lớp được kiểm thử hoặc phương thức lớp) trong một lần thực thi kiểm thử không thành công. |
| 15 | Firebase Test Lab không thể xác định liệu ma trận thử nghiệm có thành công hay không do lỗi không mong muốn. |
| 18 | Môi trường thử nghiệm cho phiên chạy thử nghiệm này không được hỗ trợ do các kích thước kiểm thử không tương thích. Lỗi này có thể xảy ra nếu loại thiết bị đã chọn không hỗ trợ cấp độ API Android đã chọn. |
| 19 | Người dùng đã huỷ ma trận thử nghiệm. |
| 20 | Đã xảy ra lỗi cơ sở hạ tầng kiểm thử. |