Hướng dẫn này mô tả cách chạy một quy trình kiểm thử đo lường, Robo hoặc kiểm thử Vòng lặp trò chơi thông qua gcloud CLI.
Để xem danh sách đầy đủ các lệnh gcloud
bạn có thể dùng
với ứng dụng Android của bạn trong Phòng thử nghiệm, hãy truy cập
tài liệu tham khảo cho gcloud firebase test android
.
Trước khi bắt đầu
Thêm Firebase vào dự án Android của bạn nếu bạn chưa thực hiện.
Bước 1. Thiết lập giao diện dòng lệnh (CLI) của gcloud
- Tải Google Cloud SDK xuống
- Đảm bảo bản cài đặt của bạn đã được cập nhật:
gcloud components update
- Đăng nhập vào Giao diện dòng lệnh (CLI) của gcloud bằng Tài khoản Google của bạn:
gcloud auth login
- Thiết lập 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
Trong đó có cả công cụ CLI của gcloud.
Bước 2. Kiểm tra các thiết bị thử nghiệm hiện có
Dùng các lệnh gcloud sau để xem thiết bị thử nghiệm và ngôn ngữ có sẵn cho thử nghiệm của bạn.
Bạn cũng có thể tải mẫu xuống
Ứng dụng Notepad để 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
trong NotePad/app/build/outputs/apk/
.
models list
: Lấy danh sách thiết bị Android hiện có mà bạn có thể kiểm thử chống lại.gcloud firebase test android models list
Trong dữ liệu đầu ra lệnh:
- Cột
MODEL_ID
chứa giá trị nhận dạng mà sau này bạn có thể dùng để chạy chương trình kiểm thử trên mẫu thiết bị. - Cột
OS_VERSION_ID
chứa các phiên bản hệ điều hành được hỗ trợ theo thiết bị.
Kết quả mẫu
- Cột
models describe
: Xem thêm thông tin về mộtMODEL_ID
trên Android cụ thể.gcloud firebase test android models describe MODEL_ID
Dữ liệu đầu ra chứa thương hiệu, nhà sản xuất, phiên bản hệ điều hành, các cấp độ API được hỗ trợ, Giao diện nhị phân của ứ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 ảo.
versions list
: Lấy danh sách phiên bản hệ điều hành hiện có để kiểm thử chống lại.gcloud firebase test android versions list
Bạn có thể sử dụng giá trị nhận dạng từ một trong hai cột đầu tiên của lệnh (
OS_VERSION_ID
vàVERSION
) để sau đó chạy kiểm thử trên Android Phiên bản hệ điều hành. Nếu bạn không chỉ định các phiên bản hệ điều hành Android để kiểm thử, thì ghi chú mặc định trong cộtTAGS
sẽ được sử dụng.Kết quả mẫu
locales list
: Lấy danh sách ngôn ngữ hiện có sẵn để kiểm thử.gcloud firebase test android versions list
Cột đầu tiên của kết quả lệnh
LOCALE
chứa giá trị nhận dạng mà bạn có thể sử dụng sau này để chạy kiểm thử cho một ngôn ngữ. Nếu bạn không chỉ định ngôn ngữ để kiểm tra, tiếng Anh được sử dụng làm ngôn ngữ mặc định.
Bước 3. Chạy kiểm thử
Giờ đây, bạn đã biết phạm vi mẫu thiết bị, ngôn ngữ và phiên bản hệ điều hành hiện có
để kiểm thử ứng dụng, bạn có thể chỉ định thiết bị bằng cách sử dụng
Lệnh gcloud firebase test android run
và
Cờ --device
để chạy Robo hoặc các bài kiểm thử đo lường.
Chạy thử nghiệm Robo
Ngay cả khi không có bất kỳ kiểm thử đo lường nào, bạn vẫn có thể xem để tìm lỗi trong ứng dụng của bạn. Sử dụng thử nghiệm Robo để thực hiện đánh giá tự động trên giao diện người dùng của ứng dụng. Thử nghiệm Robo tập luyện ứng dụng bằng cách thực hiện một thao tác tĩnh bạn có thể phân tích 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 trong ứng dụng để tìm sự cố và các vấn đề tiềm ẩn khác.
Để chạy thử nghiệm Robo, hãy chạy lệnh mẫu 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 robo
được ngầm định nếu không có giá trị--type
nào được chỉ định. - Cách xác định và định vị ma trận thử nghiệm trong bảng điều khiển của Firebase:
bạn có thể sử dụng
--client-details matrixLabel="Example matrix label"
(không bắt buộc) gắn cờ để gắn nhãn ma trận thử nghiệm của bạn. - Bạn có thể xem tập hợp đầy đủ các tuỳ chọn dòng lệnh cho
chạy bài kiểm thử bằng cách nhập:
gcloud help firebase test android run
.
Thay vì chỉ định các đối số này trên dòng lệnh, bạn có thể
tuỳ ý chỉ định đố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 kiểm tra kết quả thử nghiệm từ thử nghiệm Robo, hãy xem 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
Espresso
các bài kiểm thử cấu hình thiết bị Android đã chỉ định. Sử dụng
Loại kiểm thử instrumentation
để chạy các chương trình 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
--type
được ngầm định nếu APK kiểm thử được chỉ định cùng với--test
. - Cách xác định và định vị ma trận thử nghiệm trong bảng điều khiển của Firebase:
bạn có thể sử dụng
--client-details matrixLabel="Example matrix label"
(không bắt buộc) gắn cờ để gắn nhãn ma trận thử nghiệm của bạn. - Bạn có thể xem tập hợp đầy đủ các tuỳ chọn dòng lệnh cho
chạy kiểm thử bằng cách nhập
gcloud help firebase test android run
.
Thay vì chỉ định các đối số này trên dòng lệnh, bạn có thể
tuỳ ý chỉ định đố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 chế độ này, hãy sử dụng
gcloud firebase test android run
bằng --use-orchestrator
cờ. Để tắt tính năng này, hãy sử dụng cờ --no-use-orchestrator
.
Bạn cũng có thể kiểm soát cách Phòng thử nghiệm chạy các chương trình kiểm thử đo lường
bằng cách sử dụng 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 mà chương trình kiểm thử của bạn sử dụng
APK. Bạn cũng có thể tìm hiểu xem liệu quy trình kiểm thử không thành công của bạn thực sự không ổn định hay
không phải bằng cách sử dụng cờ --num-flaky-test-attempts
. Cờ này chỉ định số lượng
số lần thực thi lại kiểm thử nếu một hoặc nhiều trường hợp kiểm thử
không thành công vì bất kỳ lý do gì. Để 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 kiểm thử đo lường
Phòng thử nghiệm hỗ trợ các công cụ báo cáo mức độ sử dụng mã
EMMA và
JaCoCo. Nếu bạn có một trong hai công cụ
được tích hợp vào bản dựng cho ứng dụng, bạn có thể nhận được báo cáo mức độ sử dụng mã cho
Chạy gcloud firebase test android run
với một số chương trình kiểm thử trong Phòng thử nghiệm
đối số bổ sung. Nếu Android Test Orchestrator chưa được bật, hãy sử dụng
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 đồng thời sử dụng Kiểm thử Android Orchestrator, hãy sửa đổi các biến môi trường của bạn 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 Phòng thử nghiệm chạy xong các bài kiểm thử, hãy tìm báo cáo mức độ sử dụng mã của bạn trong Google Cloud Storage:
- Mở đường liên kết đến bảng điều khiển của Firebase mà công cụ
gcloud
đã in phía trên bảng kết quả thử nghiệm trong thiết bị đầu cuối của bạn. - Nhấp vào một phiên chạy thử nghiệm trong danh sách ở đường liên kết đó để mở trang chi tiết.
- Nhấp vào Kết quả kiểm tra để chuyển đến bộ chứa Cloud Storage cùng với kết quả đó kết quả kiểm thử của phiên bả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, ứng dụng sẽ in bản tóm tắt cơ bản về kết quả kiểm tra của bạn công cụ gcloud:
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 bài kiểm thử kết quả. Để tìm hiểu thêm về cách diễn giải những kết quả này, hãy xem Phân tích Phòng thử nghiệm Firebase cho kết quả Android.
Thông tin đăng nhập và nhập văn bản tuỳ chỉnh thông qua bài kiểm tra Robo
Thử nghiệm Robo tự động hoàn tất các màn hình đăng nhập dùng Tài khoản Google
để xác thực, trừ khi bạn sử dụng
--no-auto-google-login
. Ứng dụng thử nghiệm cũng có thể hoàn tất các màn hình đăng nhập tuỳ chỉnh bằng tài khoản thử nghiệm
thông tin đăng nhập mà bạn cung cấp. Bạn cũng có thể sử dụng thông số này để cung cấp tuỳ chỉnh
văn bản nhập 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
--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ử giao diện người dùng mục tiêu, còn 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
Thành phần trên giao diện người dùng (ví dụ: "logout" ).
EditText
các trường được hỗ trợ nhưng không hỗ trợ trường văn bản trong phần tử WebView
trên giao diện người dùng.
Ví dụ: bạn có thể sử dụng thông số sau cho quy trình tuỳ chỉnh thông tin đăng nhập:
--robo-directives username_resource=username,password_resource=password
Lệnh và cờ có sẵn
gcloud CLI của Phòng thử nghiệm có sẵn một số lệnh và cờ cho phép bạn chạy thử nghiệm với các thông số kỹ thuật khác nhau:
Cờ Android Test Orchestrator: Một cờ để bật tính năng Orchestrator là một công cụ cho phép bạn chạy từng các bài kiểm thử của ứng dụng bằng lệnh gọi
Instrumentation
riêng. Phòng thử nghiệm 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ấu hình cho phép và kiểm soát "bản minh hoạ chế độ" để 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 Kiểm thử vòng lặp trò chơi bằng Test Lab.
Cờ phân đoạn đồng nhất (trong giai đoạn thử nghiệm beta): Cờ chỉ định số lượng phân đoạn mà bạn muốn chia đều vào phân phối các trường hợp kiểm thử. Phân đoạn chạy song song trên các thiết bị riêng biệt.
Gắn cờ phân đoạn thủ công (trong giai đoạn thử nghiệm): Cờ chỉ định một nhóm các gói, lớp và/hoặc trường hợp kiểm thử cần chạy trong một phân đoạn (một nhóm các trường hợp kiểm thử). Phân đoạn chạy song song trên thiết bị riêng biệt.
Gắn cờ hồ sơ lưu lượng truy cập mạng (trong bả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 hồ sơ vật lý thiết bị. Hồ sơ mạng mô phỏng nhiều điều kiện mạng, cho phép bạn để thử nghiệm hiệu suất của ứng dụng trên các mạng không đáng tin cậy hoặc khó đoán.
Viết tập lệnh gcloud bằng Phòng thử nghiệm
Bạn có thể sử dụng các 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. Nội dung sau đây tập lệnh bash mẫu chạy một bài kiểm thử đo lường với thời gian chờ là 2 phút và nếu lần chạy thử nghiệm 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 của tập lệnh
Phòng thử nghiệm 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 thử nghiệm mà bạn chạy bằng cách sử dụng tập lệnh hoặc tệp lô.
Viết mã thoát cho Phòng thử nghiệm
Mã thoát | Lưu ý |
---|---|
0 | Đã vượt qua tất cả các lần chạy thử nghiệm. |
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 | Đã thoát khỏi quá trình kiểm thử do bạn đã cung cấp các lệnh hoặc đối số không xác định. |
10 | Một hoặc nhiều trường hợp kiểm thử (lớp hoặc phương thức lớp đã kiểm thử) trong một kiểm thử không đạt. |
15 | Phòng thử nghiệm Firebase không thể xác định liệu ma trận thử nghiệm có vượt qua hoặc không thành công do lỗi không mong muốn. |
18 | Môi trường thử nghiệm cho lần chạy thử nghiệm này không được hỗ trợ do các phương diện thử nghiệm không tương thích. Lỗi này có thể xảy ra nếu API Android đã chọn không được loại thiết bị đã chọn hỗ trợ. |
19 | Người dùng đã huỷ ma trận kiểm thử. |
20 | Đã xảy ra lỗi kiểm thử cơ sở hạ tầng. |