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

Hướng dẫn này mô tả cách chạy kiểm tra thiết bị đo đạc, Robo hoặc Game Loop bằng cách sử dụng gcloud CLI .

Để có danh sách đầy đủ các lệnh gcloud 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 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 CLI gcloud

  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 CLI gcloud 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 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ữ có sẵn 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ị app-debug-test-unaligned.apk , được đặt trong NotePad/app/build/outputs/apk/ .

  • models list : Nhận danh sách thiết bị Android hiện tại có sẵn để bạn kiểm tra.

    gcloud firebase test android models list
    

    Trong đầu ra lệnh:

    • Cột MODEL_ID chứa số nhận dạng mà bạn có thể sử dụng sau này để 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ợ.

    Ví dụ đầu ra

    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 thương hiệu, nhà sản xuất, phiên bản hệ điều hành, cấp độ API đượ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 số nhận dạng từ một trong hai cột đầu tiên của đầu ra lệnh ( OS_VERSION_IDVERSION ), để chạy thử nghiệm phiên bản hệ điều hành Android sau này. Nếu bạn không chỉ định phiên bản hệ điều hành Android để kiểm tra, ghi chú mặc định trong cột TAGS sẽ được sử dụng.

    Ví dụ đầu ra

    gcloud android versions list

  • locales list : Lấy 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.

Chạy thử nghiệm

Bây giờ bạn đã biết phạm vi 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ị đo 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 kiểm tra Robo để thực hiện xem xét tự động giao diện người dùng của ứng dụng của bạn. Kiểm tra Robo 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 các sự cố và các vấn đề tiềm ẩn khác.

Hãy bắt đầu bằng cách chạy một lệnh ví dụ:

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

Tham số --type robo là ẩn nếu không có giá trị --type nào được chỉ đị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 gõ: gcloud help firebase test android run . Để thay thế cho việc chỉ định tất cả 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.

Xem phần Phân tích kết quả thử nghiệm của bạn để tìm hiểu cách điều tra kết quả thử nghiệm từ thử nghiệm Robo.

Chạy các bài kiểm tra thiết bị của bạn

Bây giờ, hãy sử dụng công cụ dòng lệnh gcloud để chạy các bài kiểm tra 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 kiểm tra instrumentation để chạy kiểm tra 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

Tham số --type instrumentation là ẩn nếu một APK thử nghiệm đã được chỉ định với --test . Để thay thế cho việc chỉ định tất cả 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 . Orchestrator 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
- cờ --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 các bài kiểm tra thiết bị của bạn 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 kiểm tra của bạn sử dụng. Bạn cũng có thể tìm hiểu xem thử nghiệm không thành công của mình có thực sự bị bong tróc hay không bằng cách sử dụng --num-flaky-test-attempts , chỉ định số lần thực hiện thử nghiệm nên đượ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 chạy android .

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ã EMMAJaCoCo . 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, bạn có thể nhận được báo cáo về mức độ mã cho các bài kiểm tra 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ác bước 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 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 Phòng thí nghiệm kiểm tra kết thúc quá trình chạy thử nghiệm của bạn, hãy tìm báo cáo mức độ phù hợp 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 thực thi thử nghiệm từ danh sách tại liên kết đó để mở trang chi tiết của thực thi đó.
  3. Nhấp vào Kết quả kiểm tra để chuyển đến nhóm Lưu trữ đám mây với kết quả kiểm tra của quá trình thực thi đó.
  4. Mở phần 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 một vài phút, một bản tóm tắt cơ bản về kết quả kiểm tra của bạn được công cụ gcloud in ra:

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 kiểm tra Robo

Kiểm tra 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ừ 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 thông 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 phần tử giao diện người dùng WebView .

Ví dụ: bạn có thể sử dụng thông 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 các bài kiểm tra với các thông số kỹ thuật khác nhau:

  • Cờ của Android Test Orchestrator : Một cờ để bật Orchestrator, một công cụ cho phép bạn chạy từng bài kiểm tra của ứng dụng của mình trong lệnh gọi Instrumentation của riêng nó. Test Lab luôn chạy phiên bản Orchestrator mới nhất.

  • Cờ kiểm tra Vòng lặp trò chơi : Một tập hợp các cờ cấu hình cho phép và điều khiển "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 bổ đồ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 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ờ 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 các trường hợp thử nghiệm để chạy trong một phân đoạn (một nhóm 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ờ cấu hình lưu lượng mạng (ở phiên bản beta) : Cờ chỉ định cấu hình mạng 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 ứng dụng của mình trên các mạng không đáng tin cậy hoặc không thể đoán trước.

Viết kịch bản lệnh gcloud với Test Lab

Bạn có thể sử dụng các tập lệnh shell hoặc các tệp hàng loạt để tự động hóa các lệnh kiểm tra ứ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ị đo 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 bài kiểm tra mà bạn chạy bằng tập lệnh hoặc tệp hàng loạt.

Mã thoát kịch bản cho Phòng thí nghiệm kiểm tra

Mã thoát Ghi chú
0 Tất cả các lần thực thi thử nghiệm đã được thông qua.
1 Một thất bại chung đã xảy ra. 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 thử nghiệm 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 thử nghiệm (các lớp được thử nghiệm hoặc các phương thức lớp) trong một lần thực thi thử nghiệm đã không vượt qua.
15 Phòng thí nghiệm kiểm tra Firebase không thể xác định ma trận kiểm tra đạt hay không đạt do lỗi không mong muốn.
18 Môi trường thử nghiệm cho việc thực thi thử nghiệm này không được hỗ trợ vì các thứ nguyên 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ị người dùng hủy bỏ.
20 Đã xảy ra lỗi cơ sở hạ tầng thử nghiệm.