Hướng dẫn này mô tả cách chạy thử nghiệm thiết bị đo đạc, Robo hoặc Vòng lặp trò chơi bằng cách sử dụng gcloud CLI .
Để biết 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 dành cho 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ị kiểm tra có sẵn
Sử dụng các lệnh gcloud sau để xem các thiết bị thử nghiệm và ngôn ngữ khả dụng cho thử nghiệm của bạn.
Như 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 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 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 các thiết bị Android hiện có để bạn thử nghiệm.gcloud firebase test android models list
Trong đầu ra lệnh:
- Cột
MODEL_ID
chứa số nhận dạng mà sau này bạn có thể sử dụng để chạy thử nghiệm 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 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 thương hiệu, nhà sản xuất, phiên bản hệ điều hành của kiể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à 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 tiên của đầu ra lệnh (
OS_VERSION_ID
vàVERSION
), để sau này chạy thử nghiệm đố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 lưu ý trong cộtTAGS
sẽ được sử dụng.đầu ra ví dụ
locales list
: Nhận danh sách ngôn ngữ hiện tại có sẵn để 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
Giờ đây, 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 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ị.
Chạy thử nghiệm Robo
Ngay cả khi bạn không có bất kỳ bài kiểm tra thiết bị nào, bạn vẫn có thể tì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 của ứng dụng. Thử nghiệm rô-bốt thực hiện ứng dụng bằng cách 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 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
là ẩn nếu không có giá trị--type
nào được chỉ định. - Để giúp bạn xác định và định vị ma trận thử nghiệm của mình 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 cho ma trận thử nghiệm của mình. - Bạn có thể xem tập hợp đầy đủ các tùy chọn dòng lệ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ừ kiểm tra 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 được 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ố
--type
instrumentation ẩn nếu APK thử nghiệm được chỉ định bằng--test
. - Để giúp bạn xác định và định vị ma trận thử nghiệm của mình 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 cho ma trận thử nghiệm của mình. - Bạn có thể xem tập hợp đầy đủ các tùy chọn dòng lệ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ợ Android Test Orchestrator . Dàn nhạc 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
. Để tắt 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ị 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 đơn lẻ hoặc một phương thức lớp mà 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
, chỉ định số lần thực hiện thử nghiệm sẽ được thử 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 bài kiểm tra 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 bạn đã 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, thì bạn có thể nhận được báo cáo về 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 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 phạm vi mã trong khi cũng 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 thử nghiệm xong, hãy tìm các báo cáo về 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 lần thực thi thử nghiệm từ danh sách tại liên kết đó để mở trang chi tiết của lần thực thi đó.
- Nhấp vào Kết quả kiểm tra để đi tới bộ chứa Lưu trữ đám mây với kết quả kiểm tra của lần thực thi đó.
- Mở
artifacts/coverage.ec
để xem báo cáo về phạm vi mã của bạn.
Phân tích kết quả kiểm tra của bạn
Sau một vài phút, công cụ gcloud sẽ in một bản tóm tắt cơ bản về kết quả kiểm tra của bạn:
Đầu ra của quá trình chạy thử dòng lệnh của bạn cũng bao gồm một liên kết để xem kết quả kiểm tra. Để 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 Robo test
Kiểm tra rô-bốt 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ừ khi bạn sử dụng tham 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 phần tử giao diện người dùng đích 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"). 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 phần tử 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
gcloud CLI của Test Lab 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 nhạc thử nghiệm Android : Cờ để bật Trình soạn nhạc, một công cụ cho phép bạn chạy từng thử nghiệm của ứng dụng trong lệnh gọi
Instrumentation
riêng của ứng dụng đó. 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 bộ 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 Vòng lặp trò chơi với Test Lab .
Cờ phân đoạn thống nhất (trong phiên bản beta) : Cờ chỉ định số lượng phân đoạn mà bạn muốn phân bổ đồ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ờ Sharding thủ công (trong phiên bản beta) : Cờ chỉ định một nhóm các gói, lớp và/hoặc trường hợp kiểm tra để chạy trong một phân đoạn (một nhóm trường hợp kiểm tra). 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à các 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 với 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 thử nghiệm ứng dụng dành cho thiết bị di động mà nếu không bạn sẽ chạy bằng dòng lệnh gcloud. Tập lệnh bash ví dụ sau chạy thử nghiệm thiết bị với thời gian chờ hai phút và báo cáo nếu quá trình 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 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 thử nghiệm mà bạn chạy bằ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 kiểm tra đã được thông qua. |
1 | Một thất bại chung xảy ra. 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 tra (các lớp hoặc phương thức lớp đã kiểm tra) trong một lần thực hiện kiểm tra đã không vượt qua. |
15 | Phòng thí nghiệm kiểm tra Firebase không thể xác định xem ma trận kiểm tra có đạt hay không do lỗi không mong muốn. |
18 | Môi trường thử nghiệm cho việc 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 kiểm tra đã bị hủy bởi người dùng. |
20 | Đã xảy ra lỗi cơ sở hạ tầng thử nghiệm. |