Bắt đầu thử nghiệm với gcloud CLI

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

  1. Tải xuống Google Cloud SDK
  2. Điều này bao gồm công cụ gcloud CLI.

  3. Đảm bảo cài đặt của bạn được cập nhật:
    gcloud components update
    
  4. Đăng nhập vào gcloud CLI bằng Tài khoản Google của bạn:
    gcloud auth login
    
  5. Đặ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
    

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ụ

    gcloud firebase test android models list output

  • models describe : Nhận thêm thông tin về một MODEL_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ấ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_IDVERSION ), để 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ột TAGS sẽ được sử dụng.

    Đầu ra ví dụ

    gcloud android versions list

  • 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ã EMMAJaCoCo . 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:

  1. 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.
  2. 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 đó.
  3. 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 đó.
  4. 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:

Command test results

Đầ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 theo 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 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.