Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

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

Firebase Test Lab cung cấp cơ sở hạ tầng dựa trên đám mây để kiểm tra các ứng dụng Android, bao gồm tích hợp đầy đủ với giao diện dòng lệnh gcloud (CLI). Tài liệu này bao gồm cài đặt và cấu hình cần thiết để bắt đầu sử dụng Test Lab từ 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 cho gcloud firebase test android .

Tạo dự án Firebase

Nếu bạn chưa có dự án Firebase cho ứng dụng của mình, hãy chuyển đến bảng điều khiển Firebase và nhấp vào Tạo dự án mới để tạo ngay bây giờ. Bạn sẽ cần quyền sở hữu hoặc quyền chỉnh sửa trong dự án của mình.

Bạn có thể sử dụng Test Lab cho một số lần thực thi thử nghiệm hàng ngày hạn chế trên gói Spark. Để sử dụng Test Lab mà không có giới hạn hạn ngạch hàng ngày, bạn phải nâng cấp lên gói Firebase Blaze.

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
    

Định cấu hình thử nghiệm của bạn

Trong ví dụ này, bạn sẽ chạy một số thử nghiệm trên một ứng dụng Android ghi chú đơn giản có tên là Notepad.

  1. Tải xuống tệp APK nhị phân cho ứng dụng Notepad ( app-debug-unaligned.apk ) và các bài kiểm tra thiết bị tương ứng ( app-debug-test-unaligned.apk ) được cung cấp trong thư mục NotePad / app / build / outputs / apk / của notepad .zip .

  2. Nhận danh sách thiết bị Android hiện tại có sẵn để kiểm tra, như sau:

    
    $ gcloud firebase test android models list
    
    gcloud firebase test android models list output Cột đầu tiên của đầu ra lệnh, MODEL_ID , chứa mã định danh mà bạn có thể sử dụng sau này để chạy thử nghiệm trên một mô hình cụ thể. Cột OS_VERSION_ID liệt kê các phiên bản hệ điều hành được thiết bị đó hỗ trợ. Nếu bạn không chỉ định (các) MODEL_ID để kiểm tra, thì ghi chú mặc định trong cột TAGS sẽ được sử dụng.

  3. Tìm hiểu thêm về MODEL_ID Android cụ thể bằng lệnh firebase test android models describe , như sau:

    
    $ gcloud firebase test android models describe Nexus5
    
    Lệnh ví dụ được hiển thị ở trên cung cấp thông tin chi tiết về kiểu Nexus5 , bao gồm thương hiệu, nhà sản xuất và các cấp API được hỗ trợ cũng như mô hình có phải là thực hoặc ảo.

  4. Lấy danh sách các phiên bản hệ điều hành Android hiện có để kiểm tra:

    
    $ gcloud firebase test android versions list
    
    gcloud 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 với 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.

  5. Lấy danh sách ngôn ngữ hiện tại có sẵn để kiểm tra:

    
    $ gcloud firebase test android locales 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 với ngôn ngữ. Nếu bạn không chỉ định các ngôn ngữ để kiểm tra, tiếng Anh sẽ được sử dụng làm ngôn ngữ mặc định. Đầu ra lệnh không được hiển thị ở đây vì hàng trăm ngôn ngữ có sẵn.

Chạy thử nghiệm

Giờ bạn đã biết phạm vi kiểu thiết bị, phiên bản hệ điều hành và ngôn ngữ có sẵn để sử dụng khi thử nghiệm ứng dụng của mình, bạn có thể sử dụng thông tin đó để chỉ định thiết bị thử nghiệm bằng lệnh gcloud firebase test android run và cờ --device . Lệnh và cờ này được sử dụng cho dù bạn đang sử dụng kiểm tra Robo để tự động kiểm tra ứng dụng của mình hay bạn đang chạy kiểm tra thiết bị được viết riêng để kiểm tra ứng dụng của mình.

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. Thử nghiệm 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ờ 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ử instrumentation loại kiểm tra instrumentation để chạy các bài 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.0 trở lên. Để kích hoạt nó, hãy sử dụng gcloud firebase test android run với
--use-orchestrator cờ --use-orchestrator . Để tắt nó, hãy sử dụng cờ --no-use-orchestrator .

Lưu ý: 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 thử nghiệm của bạn sử dụng. Bạn cũng có thể tìm hiểu xem liệu thử nghiệm thất bại của mình có thực sự bị bong tróc hay không bằng cách sử dụng cờ '--num-flaky-test-tests', 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 các trường hợp kiểm tra không thành công 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 của Phòng thí nghiệm bằng cách gcloud firebase test android run lệnh gcloud firebase test android run với các đối số 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/coverage.ec" \
  --directories-to-pull /sdcard

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 các báo cáo về mức độ 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 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 tới nhóm Google Cloud Storage với kết quả kiểm tra của quá trình thực thi đó.
  4. Mở artifacts/coverage.ec để xem báo cáo 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, 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 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"). EditText 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 : Cờ để bật Orchestrator, một công cụ cho phép bạn chạy từng bài kiểm tra ứ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 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 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 kiểm tra 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 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 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 cho 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 Test Lab

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ợ do 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 hỗ trợ bởi loại thiết bị đã chọn.
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.