Hướng dẫn này mô tả cách chạy kiểm thử XCTest hoặc kiểm thử Vòng lặp trò chơi bằng gcloud CLI.
Bước 1: Định cấu hình môi trường SDK Google Cloud cục bộ
- Tải SDK Google Cloud xuống
- Đảm bảo bản cài đặt của bạn là bản mới nhất và bao gồm
lệnh
gcloud firebase: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à
mã của dự án Firebase:
gcloud config set project PROJECT_ID
SDK này bao gồm công cụ gcloud CLI.
Bước 2: Chạy kiểm thử
Chạy kiểm thử XCTest
Tải tệp .zip của bài kiểm thử lên bằng cách chạy lệnh sau (nếu bạn chưa đóng gói ứng dụng, hãy xem phần Đóng gói XCTest):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Chọn các phương diện kiểm thử.
Test Lab cho phép bạn chạy kiểm thử trên nhiều phiên bản iOS, thiết bị, hướng màn hình và ngôn ngữ. Các cấu hình này được gọi là phương diện kiểm thử của bài kiểm thử. Để xem các tuỳ chọn cho từng phương diện (ví dụ: các phiên bản Xcode được hỗ trợ cho phiên bản iOS của thiết bị), hãy thay thế
models,versionshoặclocaleschodimensiontrong lệnh sau:gcloud firebase test ios dimension list
Hướng màn hình đơn giản hơn một chút vì chỉ có các tuỳ chọn
portraitvàlandscape.Xem qua danh sách các phương diện kiểm thử và chọn một vài tổ hợp mà bạn muốn chạy kiểm thử. Truy cập vào Gói giá để xem số lượng tổ hợp tối đa mà bạn có thể chạy mỗi ngày.
Sau khi chọn một tập hợp các phương diện kiểm thử, bạn có thể yêu cầu Test Lab chạy kiểm thử bằng
firebase test ios runlệnh. Đối với mỗi tổ hợp phương diện kiểm thử mà bạn muốn kiểm thử, hãy thêm một cờ--deviceriêng:gcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \ etc...
Có thể bài kiểm thử của bạn sẽ không thành công do không tương thích giữa phiên bản Xcode mà bài kiểm thử được xây dựng và phiên bản Xcode mặc định mà Test Lab sử dụng. Để chỉ định phiên bản Xcode được hỗ trợ cho bài kiểm thử, hãy sử dụng cờ
--xcode-version:gcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --xcode-version=15
Để giúp bạn xác định và tìm ma trận thử nghiệm trong bảng điều khiển Firebase, bạn có thể tuỳ ý gắn nhãn cho ma trận thử nghiệm bằng cờ
--client-details matrixLabel="<label>"trong ví dụ sau:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
Kiểm thử các quyền đặc biệt
Để kiểm thử các quyền yêu cầu Mã ứng dụng rõ ràng, bạn có thể thực hiện bằng cách
đặt cờ --test-special-entitlements. Test Lab
ký lại ứng dụng bằng một mã nhận dạng gói mới để hỗ trợ các quyền đặc biệt
. Vì vậy, hãy đảm bảo không có tài nguyên nào trong tệp zip chứa các tham chiếu trực tiếp đến mã nhận dạng gói của ứng dụng.
- Thông báo đẩy
apns-environment - VPN cá nhân
com.apple.developer.networking.vpn.api
Để uỷ quyền cho các yêu cầu thông báo đẩy, người dùng có thể tạo mã thông báo web JSON bằng khoá ký riêng cùng với Mã khoá – C7FD9DJAA8 và Mã nhóm – 9CKCGNNUQN. Các mã thông báo được tạo sẽ có hiệu lực trong một giờ và cần được làm mới sau mỗi 60 phút. Đọc thêm về Thiết lập kết nối dựa trên mã thông báo với APNs.
Nhóm ứng dụngMã nhóm ứng dụng là duy nhất trên toàn cầu. Điều này có nghĩa là khi chúng tôi ký lại các ứng dụng của người dùng, chúng tôi chỉ có thể sử dụng mã nhóm ứng dụng được liên kết với tài khoản nhà phát triển Test Lab. Nếu bài kiểm thử của bạn dựa vào các nhóm ứng dụng, thì bài kiểm thử sẽ không thành công.
Chạy kiểm thử Vòng lặp trò chơi
Chạy lệnh gcloud beta firebase test ios run và sử dụng các cờ sau để định cấu hình lần chạy:
| Cờ cho kiểm thử Vòng lặp trò chơi | |
|---|---|
--type
|
Bắt buộc: Chỉ định loại kiểm thử iOS mà bạn muốn chạy. Bạn có thể nhập
các loại kiểm thử |
--app
|
Bắt buộc: Đường dẫn tuyệt đối (GCS hoặc hệ thống tệp) đến tệp IPA của ứng dụng. Cờ này chỉ hợp lệ khi chạy kiểm thử Vòng lặp trò chơi. |
--scenario-numbers
|
Các vòng lặp (còn gọi là tình huống) mà bạn muốn chạy trong ứng dụng. Bạn có thể nhập một vòng lặp, danh sách vòng lặp hoặc phạm vi vòng lặp. Vòng lặp mặc định là 1.
Ví dụ: |
--device-model
|
Thiết bị thực mà bạn muốn chạy kiểm thử (tìm hiểu thiết bị hiện có mà bạn có thể sử dụng). |
--timeout
|
Thời lượng tối đa mà bạn muốn chạy kiểm thử. Bạn có thể nhập một số nguyên để biểu thị thời lượng tính bằng giây hoặc một số nguyên và phép liệt kê để biểu thị thời lượng dưới dạng đơn vị thời gian dài hơn. Ví dụ:
|
Ví dụ: lệnh sau đây chạy kiểm thử Vòng lặp trò chơi thực thi các vòng lặp 1, 4, 6, 7 và 8 trên iPhone 8 Plus:
gcloud beta firebase test ios run --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8 --device-model=iphone8plus
Để biết thêm thông tin về gcloud CLI, hãy xem tài liệu tham khảo.
Bước 3 (Không bắt buộc): Tự động hoá các bài kiểm thử mà bạn xây dựng trong tương lai
Tạo tập lệnh cho các lệnh gcloud bằng Test Lab
Bạn có thể sử dụng tập lệnh shell hoặc tệp hàng loạt để tự động hoá các lệnh kiểm thử ứng dụng di động mà bạn sẽ chạy bằng dòng lệnh gcloud. Tập lệnh bash mẫu này chạy XCTest với thời gian chờ là 2 phút và báo cáo nếu lần chạy kiểm thử hoàn tất thành công:
if gcloud firebase test ios run --test MyTest.zip --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 thử mà bạn chạy bằng tập lệnh hoặc tệp hàng loạt.
| Mã thoát | Ghi chú |
|---|---|
| 0 | Tất cả các lần thực thi kiểm thử đều thành công. |
| 1 | Đã xảy ra lỗi 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 | Quá trình kiểm thử đã kết thúc 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 hoặc phương thức lớp được kiểm thử) trong một lần thực thi kiểm thử không thành công. |
| 15 | Firebase Test Lab không thể xác định xem ma trận thử nghiệm có thành công hay không do xảy ra lỗi không mong muốn. |
| 19 | Người dùng đã huỷ ma trận thử nghiệm. |
| 20 | Đã xảy ra lỗi cơ sở hạ tầng kiểm thử. |
Bước 4: Điều tra kết quả kiểm thử
Khi quá trình kiểm thử bắt đầu, bạn sẽ nhận được một đường liên kết đến trang Kết quả kiểm thử. Quá trình kiểm thử có thể mất vài phút để chạy, tuỳ thuộc vào số lượng cấu hình khác nhau mà bạn đã chọn và thời lượng chờ kiểm thử được đặt cho các bài kiểm thử. Sau khi chạy kiểm thử, bạn có thể xem lại kết quả kiểm thử. Hãy xem Phân tích kết quảFirebase Test Lab để tìm hiểu thêm về cách diễn giải kết quả kiểm thử.
Bước tiếp theo
Đọc tài liệu về SDK Google Cloud để khám phá các lựa chọn kiểm thử thường có sẵn hoặc ở giai đoạn thử nghiệm.