Hướng dẫn này mô tả cách chạy thử nghiệm thiết bị, Robo hoặc Game Loop bằng gcloud CLI .
Để có danh sách đầy đủ các lệnh gcloud
mà bạn có thể sử dụng với ứng dụng Android của mình trong Test Lab, hãy truy cập tài liệu tham khảo về gcloud firebase test android
.
Trước khi bắt đầu
Nếu bạn chưa có, hãy thêm Firebase vào dự án Android của bạn .
Bước 1. Thiết lập gcloud CLI
- Tải xuống Google Cloud SDK
- Đảm bảo cài đặt của bạn được cập 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à ID của dự án Firebase của bạn:
gcloud config set project PROJECT_ID
Điều này bao gồm công cụ gcloud CLI.
Bước 2. Kiểm tra các thiết bị thử nghiệm hiện có
Sử dụng các lệnh gcloud sau để xem các thiết bị và ngôn ngữ thử nghiệm có sẵn cho thử nghiệm của bạn.
Là một tùy chọn, bạn cũng có thể tải xuống ứng dụng Notepad mẫu để bắt đầu chạy lệnh ngay lập tức. Sử dụng tệp nhị phân app-debug-unaligned.apk
và tệp kiểm tra thiết bị đo đạc app-debug-test-unaligned.apk
, nằm trong NotePad/app/build/outputs/apk/
.
models list
: Nhận danh sách hiện tại các thiết bị Android có sẵn để bạn thử nghiệm.gcloud firebase test android models list
Trong đầu ra lệnh:
- Cột
MODEL_ID
chứa mã nhận dạng mà sau này bạn có thể sử dụng để chạy thử nghiệm trên kiểu thiết bị. - Cột
OS_VERSION_ID
chứa các phiên bản hệ điều hành được thiết bị hỗ trợ.
Đầu ra ví dụ
- Cột
models describe
: Nhận thêm thông tin về mộtMODEL_ID
Android cụ thể.gcloud firebase test android models describe MODEL_ID
Đầu ra chứa nhãn hiệu, nhà sản xuất, phiên bản hệ điều hành của mẫu thiết bị, các 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à vật lý hay ảo.
versions list
: Nhận danh sách các phiên bản hệ điều hành hiện có để kiểm tra.gcloud firebase test android versions list
Bạn có thể sử dụng mã định danh từ một trong hai cột đầu ra lệnh đầu tiên (
OS_VERSION_ID
vàVERSION
), để chạy thử nghiệm sau này đối với phiên bản HĐH Android. Nếu bạn không chỉ định phiên bản hệ điều hành Android để kiểm tra thì phiên bản mặc định được ghi chú trong cộtTAGS
sẽ được sử dụng.Đầu ra ví dụ
locales list
: Lấy danh sách ngôn ngữ hiện có để kiểm tra.gcloud firebase test android versions list
Cột đầu tiên của đầu ra lệnh,
LOCALE
, chứa mã định danh mà bạn có thể sử dụng sau này để chạy thử nghiệm đối với một ngôn ngữ. Nếu bạn không chỉ định ngôn ngữ để kiểm tra, tiếng Anh sẽ được sử dụng làm ngôn ngữ mặc định.
Bước 3. Chạy thử nghiệm của bạn
Bây giờ bạn đã biết nhiều kiểu thiết bị, ngôn ngữ và phiên bản hệ điều hành có sẵn để thử nghiệm ứng dụng của mình, bạn có thể chỉ định các thiết bị bằng cách sử dụng lệnh gcloud firebase test android run
và cờ --device
để chạy thử nghiệm Robo hoặc thiết bị đo đạc.
Chạy thử nghiệm Robo
Ngay cả khi không thực hiện bất kỳ thử nghiệm đo lường nào, bạn vẫn có thể tìm kiếm lỗi trong ứng dụng của mình. Sử dụng thử nghiệm Robo để thực hiện đánh giá tự động giao diện người dùng ứng dụng của bạn. Kiểm thử Robo kiểm tra ứng dụng bằng cách thực hiện phân tích tĩnh về 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 qua ứng dụng để tìm sự cố và các sự cố tiềm ẩn khác.
Để chạy thử nghiệm 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 robo
được ẩn nếu không chỉ định giá trị--type
. - Để giúp bạn xác định và định vị các 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"
tùy chọn để gắn nhãn ma trận thử nghiệm của mình. - Bạn có thể xem bộ tùy chọn dòng lệnh hoàn chỉnh để chạy thử nghiệm bằng cách nhập:
gcloud help firebase test android run
.
Để thay thế cho việc chỉ định các đối số này trên dòng lệnh, bạn có thể tùy ý chỉ định các đối số của mình 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 tra từ thử nghiệm Robo, hãy xem Phân tích kết quả kiểm tra của bạn .
Chạy thử nghiệm thiết bị
Bây giờ, hãy sử dụng công cụ dòng lệnh gcloud
để chạy thử nghiệm Espresso của ứng dụng Notepad trên các cấu hình thiết bị Android đã chỉ định của bạn. Sử dụng loại thử nghiệm instrumentation
để chạy thử nghiệm 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ố công cụ
--type
được ẩn nếu APK thử nghiệm được chỉ định bằng--test
. - Để giúp bạn xác định và định vị các 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"
tùy chọn để gắn nhãn ma trận thử nghiệm của mình. - Bạn có thể xem bộ tùy chọn dòng lệnh hoàn chỉnh để chạy thử nghiệm bằng cách nhập
gcloud help firebase test android run
.
Để thay thế cho việc chỉ định các đối số này trên dòng lệnh, bạn có thể tùy ý chỉ định các đối số của mình 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ợ Trình soạn thảo thử nghiệm Android . Trình soạn thảo yêu cầu AndroidJUnitRunner v1.1 trở lên. Để kích hoạt nó, hãy sử dụng gcloud firebase test android run
với
--use-orchestrator
. Để vô hiệu hóa nó, 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 thử nghiệm thiết bị đo đạc của mình 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 tra một lớp hoặc một phương thức lớp được APK thử nghiệm của bạn sử dụng. Bạn cũng có thể tìm hiểu xem thử nghiệm thất bại của mình 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 thực hiện thử nghiệm lại nếu một hoặc nhiều trường hợp thử nghiệm của nó thất bại vì bất kỳ lý do gì. Để tìm hiểu thêm, hãy xem gcloud firebase test android run .
Báo cáo phạm vi mã cho các thử nghiệm thiết bị
Test Lab hỗ trợ các công cụ báo cáo phạm vi mã EMMA và JaCoCo . Nếu đã tích hợp một trong hai công cụ vào bản dựng cho ứng dụng của mình, bạn có thể nhận được báo cáo phạm vi mã cho các thử nghiệm của Test Lab 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 chưa được bật, hãy sử dụng cách 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 phạm vi mã đồng thời sử dụng Android Test 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 Test Lab chạy xong các bài kiểm tra, hãy tìm báo cáo phạm vi mã của bạn trong Google Cloud Storage:
- Mở liên kết bảng điều khiển Firebase mà công cụ
gcloud
đã in phía trên bảng kết quả kiểm tra trong thiết bị đầu cuối của bạn. - Nhấp vào một bản thực thi thử nghiệm từ danh sách tại liên kết đó để mở trang chi tiết của bản thực thi đó.
- Nhấp vào Kết quả kiểm tra để chuyển đến nhóm Cloud Storage có kết quả kiểm tra của quá trình thực thi đó.
- Mở
artifacts/coverage.ec
để xem báo cáo mức độ phù hợp mã của bạn.
Phân tích kết quả kiểm tra của bạn
Sau vài phút, bản tóm tắt cơ bản về kết quả kiểm tra của bạn sẽ được công cụ gcloud in:
Đầu ra của quá trình chạy thử nghiệm dòng lệnh của bạn cũng bao gồm một liên kết để xem kết quả thử nghiệm. Để 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 kiểm tra Firebase cho kết quả Android .
Đăng nhập tùy chỉnh và nhập văn bản với thử nghiệm Robo
Kiểm tra Robo tự động hoàn tất màn hình đăng nhập sử dụng tài khoản Google để xác thực, trừ khi bạn sử dụng thông số --no-auto-google-login
. Nó cũng có thể hoàn thành màn hình đăng nhập tùy chỉnh bằng thông tin đăng nhập tài khoản thử nghiệm mà bạn cung cấp. Bạn cũng có thể sử dụng tham số này để cung cấp văn bản nhập tùy chỉnh cho các trường văn bản khác được ứng dụng của bạn sử dụng.
Để hoàn thành các trường văn bản trong ứng dụng của bạn, 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 thành phầ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 thành phần giao diện người dùng cụ thể (ví dụ: nút "đăng xuất"). Các trường EditText
được hỗ trợ nhưng không hỗ trợ các trường văn bản trong các thành phần giao diện người dùng WebView
.
Ví dụ: bạn có thể sử dụng tham số sau để đăng nhập tùy chỉnh:
--robo-directives username_resource=username,password_resource=password
Các lệnh và cờ có sẵn
Test Lab gcloud CLI 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ờ Trình soạn thảo thử nghiệm Android : Cờ để bật Trình soạn thảo, một công cụ cho phép bạn chạy từng thử nghiệm của ứng dụng bằng lệnh gọi
Instrumentation
riêng của nó. Test Lab luôn chạy phiên bản mới nhất của Orchestrator.Cờ kiểm tra 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 "chế độ demo" để mô phỏng hành động của người chơi trong ứng dụng trò chơi. Tìm hiểu thêm về cách chạy thử nghiệm Game Loop với Test Lab .
Cờ phân đoạn thống nhất (ở phiên bản beta) : Cờ chỉ định số lượng phân đoạn mà bạn muốn phân phối đồng đều các trường hợp thử nghiệm. Các phân đoạn được chạy song song trên các thiết bị riêng biệt.
Cờ Shending thủ công (ở phiên bản beta) : Cờ chỉ định một nhóm gói, lớp và/hoặc trường hợp thử nghiệm để chạy trong phân đoạn (một nhóm trường hợp thử nghiệm). Các phân đoạn được chạy song song trên các thiết bị riêng biệt.
Cờ cấu hình lưu lượng truy cập mạng (ở phiên bản beta) : Cờ chỉ định cấu hình mạng nào mà thử nghiệm của bạn sử dụng với các thiết bị vật lý. Cấu hình mạng mô phỏng nhiều điều kiện mạng khác nhau, cho phép bạn kiểm tra 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.
Viết lệnh gcloud bằng Test Lab
Bạn có thể sử dụng tập lệnh shell hoặc tệp bó để tự động hóa các lệnh kiểm tra ứng dụng di động mà bạn thường chạy bằng dòng lệnh gcloud. Tập lệnh bash mẫu sau đây chạy thử nghiệm thiết bị đo với thời gian chờ là hai phút và báo cáo xem quá trình chạy thử nghiệm có hoàn tất thành công hay khô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 tra mà bạn chạy bằng cách sử dụng tập lệnh hoặc tệp bó.
Viết mã thoát cho Test Lab
Mã thoát | Ghi chú |
---|---|
0 | Tất cả các lần thực hiện thử nghiệm đã được thông qua. |
1 | Đã xảy ra sự cố 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 | Kiểm tra đã 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ử (các lớp được kiểm thử hoặc các phương thức lớp) trong quá trình thực hiện kiểm thử đã không đạt. |
15 | Phòng thí nghiệm kiểm tra Firebase không thể xác định xem ma trận thử nghiệm đạt hay không thành công do xảy ra lỗi không mong muốn. |
18 | Môi trường thử nghiệm để thực hiện thử nghiệm này không được hỗ trợ do kích thước thử nghiệm không tương thích. Lỗi này có thể xảy ra nếu cấp API Android đã chọn không được loại thiết bị đã chọn hỗ trợ. |
19 | Ma trận thử nghiệm đã bị người dùng hủy bỏ. |
20 | Đã xảy ra lỗi cơ sở hạ tầng thử nghiệm. |