- Tài nguyên: TestMatrix
- Thông tin khách hàng
- Chi tiết thông tin khách hàng
- TestSpecification
- Thiết lập kiểm thử
- DeviceFile (Tệp thiết bị)
- Tệp Obb
- FileReference (Tham chiếu tệp)
- CommonFile (Tệp thông thường)
- Tệp APK
- Tài khoản
- GoogleAuto
- Môi trường biến
- SystraceSetup
- Thiết lập kiểm thử Ios
- Tệp IosDevice
- AndroidInstrumentationTest
- Gói ứng dụng
- Lựa chọn dành cho người phối hợp
- Tuỳ chọn phân đoạn
- Phân đoạn đồng nhất
- Phân đoạn thủ công
- TestTargetsForShard (Thử nghiệm mục tiêu cho phân đoạn)
- Phân đoạn thông minh
- AndroidROBTest
- RoboDirective
- RboActionType
- Chế độ RoboMode
- BoBoStartIntent
- LaunchActivityIntent
- StartActivityIntent
- NoActivityIntent
- AndroidTestLoop
- Thử nghiệm IosXc
- IosTestLoop
- Thử nghiệm IosRbo
- Ma trận môi trường
- AndroidMatrix
- AndroidDeviceList
- IosDeviceList
- Thiết bị iOS
- Thực thi kiểm thử
- Phân đoạn
- Môi trường
- Trạng thái kiểm thử
- ToolProductsStep (Bước công cụ)
- Chi tiết kiểm thử
- ResultStorage
- GoogleCloudStorage
- Công cụ kết quả lịch sử
- ToolResultsExecution
- InvalidMatrixDetails (Chi tiết ma trận không hợp lệ)
- MatrixErrorDetail
- Tóm tắt kết quả
- Phương thức
Tài nguyên: TestMatrix
TestMatrix ghi lại mọi thông tin chi tiết về một bài kiểm thử. Tệp này chứa cấu hình môi trường, quy cách kiểm thử, phiên chạy kiểm thử cũng như trạng thái và kết quả tổng thể.
Biểu diễn dưới dạng JSON |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
Trường | |
---|---|
testMatrixId |
Chỉ có đầu ra. Mã nhận dạng duy nhất do dịch vụ đặt. |
projectId |
Dự án đám mây sở hữu ma trận kiểm thử. |
clientInfo |
Thông tin về ứng dụng đã gọi hoạt động kiểm thử. |
testSpecification |
Bắt buộc. Cách chạy kiểm thử. |
environmentMatrix |
Bắt buộc. Các thiết bị mà chương trình kiểm thử đang được thực thi. |
testExecutions[] |
Chỉ có đầu ra. Danh sách các lần thực thi kiểm thử mà dịch vụ tạo ra cho ma trận này. |
resultStorage |
Bắt buộc. Nơi viết kết quả ma trận. |
state |
Chỉ có đầu ra. Cho biết tiến trình hiện tại của ma trận kiểm thử. |
timestamp |
Chỉ có đầu ra. Thời gian tạo ma trận kiểm thử này lần đầu. Dấu thời gian theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 9 chữ số phân số. Ví dụ: |
invalidMatrixDetails |
Chỉ có đầu ra. Mô tả lý do ma trận bị coi là không hợp lệ. Chỉ hữu ích cho ma trận ở trạng thái KHÔNG HỢP LỆ. |
extendedInvalidMatrixDetails[] |
Chỉ có đầu ra. Thông tin chi tiết về lý do ma trận bị coi là không hợp lệ. Nếu có thể thực hiện nhiều lượt kiểm tra một cách an toàn, thì các lượt kiểm tra đó sẽ được báo cáo nhưng không nên đưa ra giả định về độ dài của danh sách này. |
flakyTestAttempts |
Số lần thử nghiệm thực thi lại nếu một hoặc nhiều trường hợp kiểm thử không thành công vì bất kỳ lý do gì. Số lần chạy lại tối đa được phép là 10. Giá trị mặc định là 0, nghĩa là không có hoạt động chạy lại. |
outcomeSummary |
Chỉ có đầu ra. Kết quả tổng thể của thử nghiệm. Chỉ được đặt khi trạng thái ma trận thử nghiệm là HOÀN TẤT. |
failFast |
Nếu giá trị là true thì tối đa chỉ một lần thử để chạy mỗi quá trình thực thi/phân đoạn trong ma trận. Các lần kiểm thử không ổn định sẽ không bị ảnh hưởng. Thông thường, hệ thống sẽ thử từ 2 lần trở lên nếu phát hiện thấy vấn đề tiềm ẩn về cơ sở hạ tầng. Tính năng này dành cho các khối lượng công việc nhạy cảm về độ trễ. Tỷ lệ lỗi thực thi có thể lớn hơn đáng kể đối với các ma trận nhanh không thành công và khả năng hỗ trợ cũng bị hạn chế hơn do kỳ vọng đó. |
ClientInfo
Thông tin về ứng dụng đã gọi hoạt động kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
Trường | |
---|---|
name |
Bắt buộc. Tên khách hàng, chẳng hạn như gcloud. |
clientInfoDetails[] |
Danh sách thông tin chi tiết về ứng dụng. |
Chi tiết thông tin khách hàng
Cặp khoá-giá trị chứa thông tin chi tiết về ứng dụng đã gọi hoạt động kiểm thử. Ví dụ: {'Version', '1.0'}, {'Release Track', 'BETA'}.
Biểu diễn dưới dạng JSON |
---|
{ "key": string, "value": string } |
Trường | |
---|---|
key |
Bắt buộc. Khoá thông tin chi tiết về khách hàng. |
value |
Bắt buộc. Giá trị của thông tin chi tiết về khách hàng. |
Thông số kỹ thuật kiểm thử
Nội dung mô tả cách chạy kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
Trường | |
---|---|
testTimeout |
Thời gian tối đa mà một phiên chạy thử nghiệm được phép chạy trước khi nó tự động bị huỷ. Giá trị mặc định là 5 phút. Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng " |
disableVideoRecording |
Tắt quay video. Có thể giảm độ trễ kiểm thử. |
disablePerformanceMetrics |
Tắt tính năng ghi lại chỉ số hiệu suất. Có thể giảm độ trễ kiểm thử. |
Trường kết hợp setup . Yêu cầu thiết lập thử nghiệm. setup chỉ có thể là một trong những trạng thái sau đây: |
|
testSetup |
Kiểm thử các yêu cầu thiết lập cho Android, ví dụ: tệp cần cài đặt, tập lệnh tự khởi động. |
iosTestSetup |
Yêu cầu thiết lập thử nghiệm cho iOS. |
Trường kết hợp test . Bắt buộc. Loại bài kiểm thử cần chạy. test chỉ có thể là một trong những trạng thái sau đây: |
|
androidInstrumentationTest |
Một bài kiểm thử đo lường trên Android. |
androidRoboTest |
Một bài kiểm thử robo cho Android. |
androidTestLoop |
Ứng dụng Android có Vòng lặp kiểm thử. |
iosXcTest |
XCTest trên iOS, thông qua tệp .xctestrun. |
iosTestLoop |
Một ứng dụng iOS có vòng lặp kiểm thử. |
iosRoboTest |
Thử nghiệm Robo trên iOS. |
Thiết lập thử nghiệm
Nội dung mô tả cách thiết lập thiết bị Android trước khi chạy chương trình kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "filesToPush": [ { object ( |
Trường | |
---|---|
filesToPush[] |
Danh sách các tệp để đẩy vào thiết bị trước khi bắt đầu kiểm thử. |
directoriesToPull[] |
Danh sách các thư mục trên thiết bị để tải lên GCS vào cuối quá trình kiểm thử; chúng phải là các đường dẫn tuyệt đối trong /sdcard, /storage hoặc /data/local/tmp. Tên đường dẫn chỉ được chứa các ký tự a-z A-Z 0-9 _ - . + và / Lưu ý: Các đường dẫn /sdcard và /data sẽ được cung cấp và được coi là các đường dẫn thay thế ngầm ẩn. Ví dụ: nếu /sdcard trên một thiết bị cụ thể không ánh xạ với bộ nhớ ngoài, hệ thống sẽ thay thế bằng tiền tố đường dẫn bộ nhớ ngoài dành cho thiết bị đó. |
initialSetupApks[] |
Không bắt buộc. Các APK thiết lập ban đầu để cài đặt trước khi cài đặt ứng dụng đang kiểm thử. Hiện có giới hạn là 100. |
additionalApks[] |
Tệp APK cần cài đặt ngoài những tệp APK được kiểm thử trực tiếp. Các ứng dụng này sẽ được cài đặt sau khi ứng dụng đang trong quá trình kiểm thử. Hiện có giới hạn là 100. |
account |
Thiết bị sẽ được đăng nhập vào tài khoản này trong suốt thời gian thử nghiệm. |
networkProfile |
Cấu hình lưu lượng truy cập mạng dùng để chạy chương trình kiểm thử. Bạn có thể truy vấn các hồ sơ mạng có sẵn bằng cách sử dụng loại môi trường NETWORK_CONFIGURATION khi gọi TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. |
environmentVariables[] |
Biến môi trường cần thiết lập cho kiểm thử (chỉ áp dụng cho kiểm thử đo lường). |
systrace |
Cấu hình Systrace cho lần chạy này. Không dùng nữa: Systrace sử dụng Python 2, phiên bản này đã ngừng hoạt động vào ngày 01/01/2020. Systrace không còn được hỗ trợ trong Cloud Testing API và sẽ không có tệp Systrace nào được cung cấp trong kết quả. |
dontAutograntPermissions |
Liệu có ngăn việc cấp tất cả quyền khi bắt đầu chạy khi cài đặt ứng dụng hay không |
Tệp thiết bị
Nội dung mô tả về một tệp trên thiết bị.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp device_file . Bắt buộc. device_file chỉ có thể là một trong những trạng thái sau đây: |
|
obbFile |
Thông tin tham chiếu đến tệp blob nhị phân mờ. |
regularFile |
Tham chiếu đến một tệp thông thường. |
Tệp obb
Tệp blob nhị phân mờ để cài đặt trên thiết bị trước khi bắt đầu kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{
"obbFileName": string,
"obb": {
object ( |
Trường | |
---|---|
obbFileName |
Bắt buộc. OBB phải tuân theo định dạng do Android chỉ định, ví dụ: [main|patch].0300110.com.example.android.obb sẽ được cài đặt vào <shared-storage>/Android/obb/<package-name>/ trên thiết bị. |
obb |
Bắt buộc. (Các) tệp Opaque Binary Blob(OBB) để cài đặt trên thiết bị. |
Tham chiếu tệp
Giá trị tham chiếu đến một tệp, dùng cho hoạt động đầu vào của người dùng.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp file . Bắt buộc. Tham chiếu tệp. file chỉ có thể là một trong những trạng thái sau đây: |
|
gcsPath |
Đường dẫn đến một tệp trong Google Cloud Storage. Ví dụ: gs://build-app-1414623860166/app%40debug-unaligned.apk Những đường dẫn này phải được mã hoá bằng URL (mã hoá phần trăm) |
Tệp thông thường
Một tệp hoặc thư mục để cài đặt trên thiết bị trước khi bắt đầu kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{
"content": {
object ( |
Trường | |
---|---|
content |
Bắt buộc. Tệp nguồn. |
devicePath |
Bắt buộc. Nơi lưu nội dung trên thiết bị. Phải là một đường dẫn tuyệt đối, có trong danh sách cho phép. Nếu tệp tồn tại, tệp đó sẽ được thay thế. Các thư mục phía thiết bị sau đây và bất kỳ thư mục con nào của những thư mục này được cho phép: ${EXTERNAL_STORAGE}, /sdcard, hoặc /storage ${ANDROID_DATA}/local/tmp hoặc /data/local/tmp Việc chỉ định đường dẫn bên ngoài các cây thư mục này là không hợp lệ. Các đường dẫn /sdcard và /data sẽ được cung cấp và được coi là các đường dẫn thay thế ngầm ẩn. Ví dụ: nếu /sdcard trên một thiết bị cụ thể không ánh xạ với bộ nhớ ngoài, hệ thống sẽ thay thế bằng tiền tố đường dẫn bộ nhớ ngoài của thiết bị đó và sao chép tệp vào đó. Bạn nên dùng API môi trường trong ứng dụng và dùng mã kiểm thử để truy cập vào các tệp trên thiết bị theo cách di động. |
Apk
Tệp gói Android để cài đặt.
Biểu diễn dưới dạng JSON |
---|
{
"location": {
object ( |
Trường | |
---|---|
location |
Đường dẫn đến một tệp APK sẽ được cài đặt trên thiết bị trước khi bắt đầu kiểm thử. |
packageName |
Gói java cho APK cần cài đặt. Giá trị được xác định bằng cách kiểm tra tệp kê khai của ứng dụng. |
Tài khoản
Xác định một tài khoản và cách đăng nhập vào tài khoản đó.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp account_type . Bắt buộc. Loại tài khoản, mục đích sử dụng (ví dụ: Google) và cơ chế đăng nhập của tài khoản đó (ví dụ: tên người dùng và mật khẩu). account_type chỉ có thể là một trong những trạng thái sau đây: |
|
googleAuto |
Tài khoản tự động đăng nhập vào Google. |
GoogleAuto
Loại này không có trường nào.
Bật tự động đăng nhập tài khoản Google. Nếu bạn đặt chính sách này, dịch vụ sẽ tự động tạo một tài khoản kiểm thử của Google rồi thêm tài khoản đó vào thiết bị trước khi thực thi kiểm thử. Xin lưu ý rằng bạn có thể sử dụng lại các tài khoản thử nghiệm. Nhiều ứng dụng hiển thị bộ chức năng đầy đủ khi có tài khoản trên thiết bị. Bạn có thể đăng nhập vào thiết bị bằng các tài khoản đã tạo này để thử nghiệm thêm nhiều chức năng.
Biến môi trường
Một cặp khoá-giá trị được truyền dưới dạng biến môi trường vào chương trình kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "key": string, "value": string } |
Trường | |
---|---|
key |
Khoá cho biến môi trường. |
value |
Giá trị của biến môi trường. |
Thiết lập Systrace
Biểu diễn dưới dạng JSON |
---|
{ "durationSeconds": integer } |
Trường | |
---|---|
durationSeconds |
Thời lượng Systrace tính bằng giây. Nên dài từ 1 đến 30 giây. 0 sẽ tắt systrace. |
Thiết lập thử nghiệm Ios
Nội dung mô tả cách thiết lập thiết bị iOS trước khi chạy kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "networkProfile": string, "additionalIpas": [ { object ( |
Trường | |
---|---|
networkProfile |
Cấu hình lưu lượng truy cập mạng dùng để chạy chương trình kiểm thử. Bạn có thể truy vấn các hồ sơ mạng có sẵn bằng cách sử dụng loại môi trường NETWORK_CONFIGURATION khi gọi TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. |
additionalIpas[] |
Các ứng dụng iOS để cài đặt bên cạnh những ứng dụng được kiểm thử trực tiếp. |
pushFiles[] |
Danh sách các tệp để đẩy vào thiết bị trước khi bắt đầu kiểm thử. |
pullDirectories[] |
Danh sách các thư mục trên thiết bị sẽ tải lên Cloud Storage khi kết thúc chương trình kiểm thử. Thư mục phải nằm trong thư mục dùng chung (chẳng hạn như /private/var/mobile/Media) hoặc trong một thư mục có thể truy cập bên trong hệ thống tệp của ứng dụng (chẳng hạn như /Documents) bằng cách chỉ định mã nhận dạng gói. |
Tệp IosDevice
Một tệp hoặc thư mục để cài đặt trên thiết bị trước khi bắt đầu kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{
"content": {
object ( |
Trường | |
---|---|
content |
Tệp nguồn |
bundleId |
Mã gói của ứng dụng chứa tệp này. Các ứng dụng iOS có hộp cát hệ thống tệp riêng, do đó, các tệp ứng dụng phải chỉ định ứng dụng nào được cài đặt trên thiết bị. |
devicePath |
Vị trí của tệp trên thiết bị, bên trong hệ thống tệp dạng hộp cát của ứng dụng |
AndroidInstrumentationTest
Bài kiểm thử một ứng dụng Android có thể điều khiển một thành phần của Android một cách độc lập với vòng đời thông thường của thành phần đó. Các chương trình kiểm thử đo lường Android sẽ chạy một tệp APK ứng dụng và kiểm thử tệp APK trong cùng một quy trình trên một AndroidDevice ảo hoặc thực. Lớp này cũng chỉ định một lớp trình chạy kiểm thử, chẳng hạn như com.google.GoogleTestRunner. Lớp này có thể thay đổi theo khung đo lường cụ thể đã chọn.
Hãy xem https://developer.android.com/training/testing/testing để biết thêm thông tin về các loại kiểm thử trên Android.
Biểu diễn dưới dạng JSON |
---|
{ "testApk": { object ( |
Trường | |
---|---|
testApk |
Bắt buộc. Tệp APK chứa mã kiểm thử cần thực thi. |
appPackageId |
Gói java cho ứng dụng đang được kiểm thử. Giá trị mặc định được xác định bằng cách kiểm tra tệp kê khai của ứng dụng. |
testPackageId |
Gói java để thực thi kiểm thử. Giá trị mặc định được xác định bằng cách kiểm tra tệp kê khai của ứng dụng. |
testRunnerClass |
Lớp InstrumentationTestRunner. Giá trị mặc định được xác định bằng cách kiểm tra tệp kê khai của ứng dụng. |
testTargets[] |
Mỗi mục tiêu phải đủ điều kiện bằng tên gói hoặc tên lớp, ở một trong các định dạng sau:
Nếu trống, tất cả mục tiêu trong mô-đun sẽ được chạy. |
orchestratorOption |
Lựa chọn xem có chạy mỗi bài kiểm thử trong lệnh gọi đo lường riêng bằng Android Test Orchestrator hay không. ** Orchestrator chỉ tương thích với AndroidJUnitRunner phiên bản 1.1 trở lên! ** Orchestrator mang đến những lợi ích sau:
Hãy tham khảo https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator để biết thêm thông tin về Android Test Orchestrator. Nếu bạn không đặt chính sách này, chương trình kiểm thử sẽ chạy mà không cần trình điều phối. |
shardingOption |
Tuỳ chọn chạy kiểm thử song song trong nhiều phân đoạn. |
Trường kết hợp app_under_test . Bắt buộc. app_under_test chỉ có thể là một trong những trạng thái sau đây: |
|
appApk |
Tệp APK cho ứng dụng đang được kiểm thử. |
appBundle |
Gói ứng dụng nhiều tệp APK cho ứng dụng đang được kiểm thử. |
Gói ứng dụng
Một định dạng tệp Android App Bundle, chứa tệp BundleConfig.pb, thư mục mô-đun cơ sở, không có hoặc có nhiều thư mục mô-đun tính năng linh hoạt khác.
Hãy tham khảo https://developer.android.com/guide/app-bundle/build để xem hướng dẫn về cách tạo Gói ứng dụng.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp bundle . Bắt buộc. Thông tin vị trí gói. bundle chỉ có thể là một trong những trạng thái sau đây: |
|
bundleLocation |
Tệp .aab đại diện cho gói ứng dụng đang được kiểm thử. |
Lựa chọn phối lại
Chỉ định cách thực thi kiểm thử.
Enum | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED |
Giá trị mặc định: máy chủ sẽ chọn chế độ. Hiện tại, ngụ ý rằng thử nghiệm sẽ chạy mà không cần trình điều phối. Trong tương lai, tất cả các bài kiểm thử đo lường sẽ được chạy với trình điều phối. Chúng tôi rất khuyến khích việc sử dụng nhạc sĩ điều phối vì tất cả những lợi ích mà công cụ này mang lại. |
USE_ORCHESTRATOR |
Chạy kiểm thử bằng trình điều phối. ** Chỉ tương thích với AndroidJUnitRunner phiên bản 1.1 trở lên! ** Được đề xuất. |
DO_NOT_USE_ORCHESTRATOR |
Chạy thử nghiệm mà không sử dụng trình điều phối. |
Lựa chọn phân đoạn
Các tuỳ chọn bật tính năng phân đoạn.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp
|
|
uniformSharding |
Phân đoạn đồng nhất các trường hợp kiểm thử dựa vào tổng số phân đoạn. |
manualSharding |
Phân đoạn các trường hợp kiểm thử thành các nhóm gói, lớp và/hoặc phương thức được chỉ định. |
smartSharding |
Phân đoạn được kiểm thử dựa trên các bản ghi thời gian của trường hợp kiểm thử trước đó. |
Phân đoạn đồng nhất
Phân đoạn đồng nhất các trường hợp kiểm thử dựa vào tổng số phân đoạn.
Đối với các chương trình kiểm thử đo lường, thành phần này sẽ được dịch sang "-e numShard" và "-e shardIndex" Đối số AndroidJUnitRunner. Khi bật tính năng phân đoạn đồng nhất, việc chỉ định một trong các đối số phân đoạn này qua environmentVariables
là không hợp lệ.
Dựa trên cơ chế phân đoạn mà AndroidJUnitRunner sử dụng, chúng tôi không thể đảm bảo rằng các trường hợp kiểm thử sẽ được phân phối đồng nhất trên tất cả phân đoạn.
Biểu diễn dưới dạng JSON |
---|
{ "numShards": integer } |
Trường | |
---|---|
numShards |
Bắt buộc. Tổng số phân đoạn cần tạo. Đây phải luôn là số dương và không lớn hơn tổng số trường hợp kiểm thử. Khi bạn chọn một hoặc nhiều thiết bị thực tế, số lượng phân đoạn phải <= 50. Khi bạn chọn một hoặc nhiều thiết bị ảo ARM, giá trị này phải có giá trị <= 200. Khi bạn chỉ chọn các thiết bị ảo x86, giá trị này phải <= 500. |
Phân đoạn thủ công
Phân đoạn các trường hợp kiểm thử thành các nhóm gói, lớp và/hoặc phương thức được chỉ định.
Khi bật tính năng phân đoạn thủ công, việc chỉ định mục tiêu kiểm thử thông quaEnvironmentVariables hoặc trong InstrumentationTest là không hợp lệ.
Biểu diễn dưới dạng JSON |
---|
{
"testTargetsForShard": [
{
object ( |
Trường | |
---|---|
testTargetsForShard[] |
Bắt buộc. Nhóm gói, lớp và/hoặc phương thức kiểm thử sẽ được chạy cho mỗi phân đoạn được tạo theo cách thủ công. Bạn phải chỉ định ít nhất một phân đoạn nếu có trường này. Khi bạn chọn một hoặc nhiều thiết bị thực tế, số lần testTargetsForShard lặp lại phải <= 50. Khi bạn chọn một hoặc nhiều thiết bị ảo ARM, giá trị này phải có giá trị <= 200. Khi bạn chỉ chọn các thiết bị ảo x86, giá trị này phải <= 500. |
Mục tiêu kiểm thử cho phân đoạn
Kiểm thử mục tiêu cho một phân đoạn.
Biểu diễn dưới dạng JSON |
---|
{ "testTargets": [ string ] } |
Trường | |
---|---|
testTargets[] |
Nhóm các gói, lớp và/hoặc phương thức kiểm thử sẽ chạy cho mỗi phân đoạn. Bạn cần chỉ định các mục tiêu ở định dạng đối số AndroidJUnitRunner. Ví dụ: "package com.my.packages" "class com.my.package.MyClass". Số lượng testTargets phải lớn hơn 0. |
Phân đoạn thông minh
Phân đoạn được kiểm thử dựa trên các bản ghi thời gian của trường hợp kiểm thử trước đó.
Biểu diễn dưới dạng JSON |
---|
{ "targetedShardDuration": string } |
Trường | |
---|---|
targetedShardDuration |
Lượng thời gian kiểm thử trong một phân đoạn. Mặc định: 300 giây (5 phút). Thời gian tối thiểu cho phép: 120 giây (2 phút). Số lượng phân đoạn được đặt tự động dựa trên thời gian, lên tới giới hạn phân đoạn tối đa (được mô tả bên dưới). Để đảm bảo có ít nhất một trường hợp kiểm thử cho mỗi phân đoạn, số lượng phân đoạn sẽ không vượt quá số trường hợp kiểm thử. Thời lượng phân đoạn sẽ vượt quá nếu:
Thời lượng phân đoạn không được đảm bảo vì tính năng phân đoạn thông minh sử dụng nhật ký trường hợp kiểm thử và thời lượng mặc định có thể không chính xác. Quy tắc tìm bản ghi thời gian của trường hợp kiểm thử:
Do thời lượng phân đoạn thực tế có thể vượt quá thời lượng phân đoạn được nhắm mục tiêu, bạn nên đặt giá trị được nhắm mục tiêu ít hơn 5 phút so với thời gian chờ kiểm thử tối đa được phép (45 phút đối với thiết bị thực và 60 phút đối với ảo) hoặc bạn nên sử dụng giá trị thời gian chờ kiểm thử tuỳ chỉnh đã đặt. Phương pháp này giúp tránh huỷ phân đoạn trước khi tất cả chương trình kiểm thử có thể hoàn tất. Lưu ý rằng có giới hạn về số lượng phân đoạn tối đa. Khi bạn chọn một hoặc nhiều thiết bị thực tế, số lượng phân đoạn phải <= 50. Khi bạn chọn một hoặc nhiều thiết bị ảo ARM, giá trị này phải có giá trị <= 200. Khi bạn chỉ chọn các thiết bị ảo x86, giá trị này phải <= 500. Để đảm bảo có ít nhất một trường hợp kiểm thử cho mỗi phân đoạn, số lượng phân đoạn sẽ không vượt quá số trường hợp kiểm thử. Mỗi phân đoạn được tạo sẽ được tính vào hạn mức kiểm thử hằng ngày. Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng " |
Thử nghiệm AndroidRbo
Bài kiểm thử một ứng dụng Android nhằm khám phá ứng dụng đó trên một Thiết bị Android ảo hoặc thực, tìm ra thủ phạm và gặp sự cố trong quá trình thiết lập.
Biểu diễn dưới dạng JSON |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
Trường | |
---|---|
appPackageId |
Gói java cho ứng dụng đang được kiểm thử. Giá trị mặc định được xác định bằng cách kiểm tra tệp kê khai của ứng dụng. |
appInitialActivity |
Hoạt động ban đầu nên được dùng để khởi động ứng dụng. |
maxDepth |
Chiều sâu tối đa của ngăn xếp truyền tải mà Robo có thể khám phá. Cần có ít nhất 2 ký tự để Robo khám phá ứng dụng ngoài hoạt động đầu tiên. Giá trị mặc định là 50. |
maxSteps |
Số bước tối đa mà Robo có thể thực hiện. Mặc định là không giới hạn. |
roboDirectives[] |
Một tập hợp các lệnh Robo sẽ áp dụng trong quá trình thu thập thông tin. Điều này cho phép người dùng tuỳ chỉnh quá trình thu thập thông tin. Ví dụ: bạn có thể cung cấp tên người dùng và mật khẩu cho tài khoản thử nghiệm. |
roboMode |
Chế độ mà Robo sẽ chạy. Hầu hết ứng dụng khách nên cho phép máy chủ tự động điền trường này. |
roboScript |
Tệp JSON có một trình tự các thao tác mà Robo sẽ thực hiện làm phần mở đầu cho quá trình thu thập dữ liệu. |
startingIntents[] |
Các ý định dùng để chạy ứng dụng nhằm thu thập thông tin. Nếu không có mã nào được cung cấp, thì hoạt động của trình chạy chính sẽ được khởi chạy. Nếu một số được cung cấp, thì chỉ những hoạt động được cung cấp mới được khởi chạy (hoạt động của trình chạy chính phải được cung cấp rõ ràng). |
Trường kết hợp app_under_test . Bắt buộc. app_under_test chỉ có thể là một trong những trạng thái sau đây: |
|
appApk |
Tệp APK cho ứng dụng đang được kiểm thử. |
appBundle |
Gói ứng dụng nhiều tệp APK cho ứng dụng đang được kiểm thử. |
RoboDirective
Hướng dẫn Robo tương tác với một phần tử trên giao diện người dùng cụ thể nếu gặp phải trong quá trình thu thập thông tin. Hiện tại, Robo có thể thực hiện thao tác nhập văn bản hoặc nhấp vào phần tử.
Biểu diễn dưới dạng JSON |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
Trường | |
---|---|
resourceName |
Bắt buộc. Tên tài nguyên Android của phần tử giao diện người dùng mục tiêu. Ví dụ: trong Java: R.string.foo trong xml: @string/foo Chỉ mã "foo" phần nào là cần thiết. Tài liệu tham khảo: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText |
Văn bản mà Robo được chuyển hướng để đặt. Nếu để trống, lệnh này sẽ được xem là một "CLICK" (Nhấp vào) trên phần tử khớp với resourceName. |
actionType |
Bắt buộc. Loại hành động mà Robo sẽ thực hiện trên phần tử được chỉ định. |
Loại hành động Robo
Những hành động mà Robo có thể thực hiện trên các phần tử trên giao diện người dùng.
Enum | |
---|---|
ACTION_TYPE_UNSPECIFIED |
KHÔNG SỬ DỤNG. Chỉ dành cho việc tạo phiên bản proto. |
SINGLE_CLICK |
Hướng dẫn Robo nhấp vào phần tử được chỉ định. Không hoạt động nếu phần tử được chỉ định không thể nhấp vào. |
ENTER_TEXT |
Chỉ dẫn Robo để nhập văn bản trên phần tử được chỉ định. Không hoạt động nếu phần tử được chỉ định không được bật hoặc không cho phép nhập văn bản. |
IGNORE |
Hướng dẫn Robo bỏ qua các lượt tương tác với một phần tử cụ thể. |
Chế độ Robo
Chế độ mà Robo sẽ chạy.
Enum | |
---|---|
ROBO_MODE_UNSPECIFIED |
Điều này có nghĩa là máy chủ nên chọn chế độ. Được đề xuất. |
ROBO_VERSION_1 |
Chạy Robo ở chế độ chỉ dành cho UIAutomator mà không cần ký lại ứng dụng |
ROBO_VERSION_2 |
Chạy Robo trong Espresso tiêu chuẩn bằng tính năng dự phòng UIAutomator |
ý định khởi đầu Robo
Thông báo chỉ định hoạt động bắt đầu cần thu thập thông tin.
Biểu diễn dưới dạng JSON |
---|
{ "timeout": string, // Union field |
Trường | |
---|---|
timeout |
Thời gian chờ (tính bằng giây) cho mỗi ý định. Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng " |
Trường kết hợp starting_intent . Bắt buộc. Thông tin chi tiết về ý định để bắt đầu một hoạt động. starting_intent chỉ có thể là một trong những trạng thái sau đây: |
|
launcherActivity |
Một ý định bắt đầu hoạt động của trình chạy chính. |
startActivity |
Một ý định bắt đầu hoạt động bằng thông tin chi tiết cụ thể. |
noActivity |
Bỏ qua hoạt động khởi động |
Ý định hoạt động trình chạy
Loại này không có trường nào.
Chỉ định một ý định bắt đầu hoạt động của trình chạy chính.
Ý định bắt đầu hoạt động
Ý định bắt đầu được xác định theo một hành động, URI và danh mục.
Biểu diễn dưới dạng JSON |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
Trường | |
---|---|
action |
Tên hành động. Bắt buộc đối với START_ACTIVITY. |
uri |
URI cho hành động. |
categories[] |
Các danh mục ý định cần đặt cho ý định. |
Không có ý định hoạt động
Loại này không có trường nào.
Bỏ qua hoạt động khởi động
AndroidTestLoop
Kiểm thử một ứng dụng Android bằng Vòng lặp kiểm thử. Ý định <intent-name> sẽ được thêm vào một cách ngầm ẩn, vì tại thời điểm này, Games là người dùng duy nhất của API này.
Biểu diễn dưới dạng JSON |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
Trường | |
---|---|
appPackageId |
Gói java cho ứng dụng đang được kiểm thử. Giá trị mặc định được xác định bằng cách kiểm tra tệp kê khai của ứng dụng. |
scenarios[] |
Danh sách các tình huống sẽ chạy trong quá trình kiểm thử. Giá trị mặc định là tất cả các vòng lặp kiểm thử bắt nguồn từ tệp kê khai của ứng dụng. |
scenarioLabels[] |
Danh sách nhãn tình huống cần chạy trong quá trình kiểm thử. Nhãn tình huống phải liên kết với các nhãn được xác định trong tệp kê khai của ứng dụng. Ví dụ: play_experience và com.google.test.loops.player_experience sẽ thêm tất cả các vòng lặp được gắn nhãn trong tệp kê khai với tên com.google.test.loops.player_experience vào quá trình thực thi. Bạn cũng có thể chỉ định tình huống trong trường tình huống. |
Trường kết hợp app_under_test . Bắt buộc. Gói Android cần kiểm thử. app_under_test chỉ có thể là một trong những trạng thái sau đây: |
|
appApk |
Tệp APK cho ứng dụng đang được kiểm thử. |
appBundle |
Gói ứng dụng nhiều tệp APK cho ứng dụng đang được kiểm thử. |
Thử nghiệm IosXc
Kiểm thử một ứng dụng iOS sử dụng khung XCTest. Xcode hỗ trợ tuỳ chọn "xây dựng để kiểm thử", tạo tệp .xctestrun chứa thông số kỹ thuật kiểm thử (đối số, phương pháp kiểm thử, v.v.). Loại kiểm thử này chấp nhận một tệp zip chứa tệp .xctestrun và nội dung tương ứng của thư mục Bản dựng/Sản phẩm chứa tất cả tệp nhị phân cần thiết để chạy kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "testsZip": { object ( |
Trường | |
---|---|
testsZip |
Bắt buộc. Tệp .zip chứa tệp .xctestrun và nội dung của thư mục DerivedData/Build/Products. Tệp .xctestrun trong tệp zip này sẽ bị bỏ qua nếu trường xctestrun được chỉ định. |
xctestrun |
Tệp .xctestrun sẽ ghi đè tệp .xctestrun trong tệp zip kiểm thử. Vì tệp .xctestrun chứa các biến môi trường cùng với phương thức kiểm thử để chạy và/hoặc bỏ qua, nên điều này có thể hữu ích cho hoạt động kiểm thử phân đoạn. Mặc định được lấy từ tệp zip kiểm thử. |
xcodeVersion |
Phiên bản Xcode mà bạn nên dùng cho thử nghiệm này. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. Giá trị mặc định là phiên bản Xcode mới nhất mà Phòng thử nghiệm Firebase hỗ trợ. |
appBundleId |
Chỉ có đầu ra. Mã gói của ứng dụng đang được kiểm thử. |
testSpecialEntitlements |
Cho phép kiểm thử các quyền đặc biệt của ứng dụng. Việc đặt giá trị này sẽ ký lại ứng dụng có các quyền đặc biệt kèm theo giá trị nhận dạng ứng dụng rõ ràng. Hiện hỗ trợ kiểm thử quyền trong môi trường aps-. |
Vòng lặp kiểm thử Ios
Thử nghiệm một ứng dụng iOS triển khai một hoặc nhiều tình huống vòng lặp trò chơi. Loại kiểm thử này chấp nhận một ứng dụng lưu trữ (tệp .ipa) và danh sách các tình huống số nguyên sẽ được thực thi tuần tự trên ứng dụng.
Biểu diễn dưới dạng JSON |
---|
{
"appIpa": {
object ( |
Trường | |
---|---|
appIpa |
Bắt buộc. Tệp .ipa của ứng dụng cần kiểm thử. |
scenarios[] |
Danh sách các tình huống sẽ chạy trong quá trình kiểm thử. Giá trị mặc định là trường hợp đơn 0 nếu bạn không chỉ định. |
appBundleId |
Chỉ có đầu ra. Mã gói của ứng dụng đang được kiểm thử. |
Thử nghiệm IosRbo
Bài kiểm thử khám phá một ứng dụng iOS trên thiết bị iOS.
Biểu diễn dưới dạng JSON |
---|
{ "appIpa": { object ( |
Trường | |
---|---|
appIpa |
Bắt buộc. Bạn nên dùng IPa được lưu trữ tại tệp này để chạy chương trình kiểm thử. |
appBundleId |
Mã nhận dạng gói của hoạt động kiểm thử ứng dụng. Điều này được xác định bằng cách kiểm tra "Info.plist" của ứng dụng . |
roboScript |
Roboscript không bắt buộc để tuỳ chỉnh quá trình thu thập thông tin. Hãy truy cập vào https://firebase.google.com/docs/test-lab/android/robo-scripts-reference để biết thêm thông tin về Roboscripts. |
Ma trận môi trường
Ma trận của những môi trường mà kiểm thử sẽ được thực thi.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp environment_matrix . Bắt buộc. Ma trận môi trường. environment_matrix chỉ có thể là một trong những trạng thái sau đây: |
|
androidMatrix |
Ma trận thiết bị Android. |
androidDeviceList |
Danh sách thiết bị Android; bài kiểm thử sẽ chỉ chạy trên các thiết bị được chỉ định. |
iosDeviceList |
Danh sách thiết bị iOS. |
AndroidMatrix
Một tập hợp hoán vị cấu hình thiết bị Android được xác định bằng sản phẩm chéo của các trục đã cho. Trong nội bộ, AndroidMatrix đã cho sẽ được mở rộng thành một tập hợp các AndroidDevices.
Chỉ các phép hoán vị được hỗ trợ mới được tạo thực thể. Các phép hoán vị không hợp lệ (ví dụ: mô hình/phiên bản không tương thích) sẽ bị bỏ qua.
Biểu diễn dưới dạng JSON |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
Trường | |
---|---|
androidModelIds[] |
Bắt buộc. Mã nhận dạng của tập hợp thiết bị Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
androidVersionIds[] |
Bắt buộc. Mã nhận dạng của nhóm phiên bản hệ điều hành Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
locales[] |
Bắt buộc. Nhóm ngôn ngữ mà thiết bị kiểm thử sẽ bật để kiểm thử. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
orientations[] |
Bắt buộc. Tập hợp các hướng để thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
Danh sách thiết bị Android
Danh sách cấu hình thiết bị Android mà bài kiểm thử sẽ được thực thi.
Biểu diễn dưới dạng JSON |
---|
{
"androidDevices": [
{
object ( |
Trường | |
---|---|
androidDevices[] |
Bắt buộc. Danh sách thiết bị Android. |
Danh sách thiết bị trên iOS
Danh sách cấu hình thiết bị iOS mà bài kiểm thử sẽ được thực thi.
Biểu diễn dưới dạng JSON |
---|
{
"iosDevices": [
{
object ( |
Trường | |
---|---|
iosDevices[] |
Bắt buộc. Danh sách thiết bị iOS. |
Thiết bị iOS
Một thiết bị iOS duy nhất.
Biểu diễn dưới dạng JSON |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
Trường | |
---|---|
iosModelId |
Bắt buộc. Mã của thiết bị iOS sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
iosVersionId |
Bắt buộc. Mã của phiên bản phần mềm chính iOS sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
locale |
Bắt buộc. Ngôn ngữ mà thiết bị kiểm thử dùng để kiểm thử. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
orientation |
Bắt buộc. Cách thiết bị được điều hướng trong quá trình kiểm thử. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ. |
Thực thi kiểm thử
Một chương trình kiểm thử được thực thi trong một môi trường duy nhất.
Biểu diễn dưới dạng JSON |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
Trường | |
---|---|
id |
Chỉ có đầu ra. Mã nhận dạng duy nhất do dịch vụ đặt. |
matrixId |
Chỉ có đầu ra. Mã của TestMatrix chứa. |
projectId |
Chỉ có đầu ra. Dự án trên đám mây sở hữu lượt thực thi kiểm thử. |
testSpecification |
Chỉ có đầu ra. Cách chạy kiểm thử. |
shard |
Chỉ có đầu ra. Thông tin chi tiết về phân đoạn. |
environment |
Chỉ có đầu ra. Cách định cấu hình(các) máy chủ. |
state |
Chỉ có đầu ra. Cho biết tiến trình hiện tại của phiên chạy kiểm thử (ví dụ: ĐÃ KẾT THÚC). |
toolResultsStep |
Chỉ có đầu ra. Vị trí ghi kết quả của lần thực thi này. |
timestamp |
Chỉ có đầu ra. Thời gian tạo phiên chạy thử nghiệm này lần đầu. Dấu thời gian theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 9 chữ số phân số. Ví dụ: |
testDetails |
Chỉ có đầu ra. Thông tin chi tiết bổ sung về kiểm thử đang chạy. |
Phân mảnh
Chỉ có đầu ra. Thông tin chi tiết về phân đoạn.
Biểu diễn dưới dạng JSON |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
Trường | |
---|---|
shardIndex |
Chỉ có đầu ra. Chỉ mục của phân đoạn trong số tất cả các phân đoạn. |
numShards |
Chỉ có đầu ra. Tổng số phân đoạn. |
testTargetsForShard |
Chỉ có đầu ra. Kiểm thử mục tiêu cho từng phân đoạn. Chỉ được thiết lập để phân đoạn thủ công. |
estimatedShardDuration |
Chỉ có đầu ra. Thời lượng phân đoạn ước tính dựa trên bản ghi thời gian của trường hợp kiểm thử trước đó (nếu có). Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng " |
Môi trường
Môi trường chạy kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp environment . Bắt buộc. Môi trường. environment chỉ có thể là một trong những trạng thái sau đây: |
|
androidDevice |
Một thiết bị Android phải được sử dụng với bài kiểm thử Android. |
iosDevice |
Thiết bị iOS phải được sử dụng với bài kiểm thử iOS. |
Trạng thái thử nghiệm
Trạng thái (tức là tiến trình) của ma trận hoặc lượt thực thi kiểm thử.
Enum | |
---|---|
TEST_STATE_UNSPECIFIED |
Không được dùng. Chỉ dành cho việc tạo phiên bản proto. |
VALIDATING |
Quá trình thực thi hoặc ma trận đang được xác thực. |
PENDING |
Quá trình thực thi hoặc ma trận đang chờ tài nguyên có sẵn. |
RUNNING |
Quá trình thực thi hiện đang được xử lý. Chỉ có thể được thiết lập khi thực thi. |
FINISHED |
Quá trình thực thi hoặc ma trận đã kết thúc như bình thường. Trên ma trận, điều này có nghĩa là quá trình xử lý cấp ma trận đã hoàn tất bình thường, nhưng từng lượt thực thi có thể ở trạng thái LỖI. |
ERROR |
Quá trình thực thi hoặc ma trận đã dừng do gặp lỗi cơ sở hạ tầng. |
UNSUPPORTED_ENVIRONMENT |
Quá trình thực thi không chạy được vì tương ứng với một môi trường không được hỗ trợ. Chỉ có thể được thiết lập khi thực thi. |
INCOMPATIBLE_ENVIRONMENT |
Quá trình thực thi không chạy vì các dữ liệu đầu vào đã cung cấp không tương thích với môi trường được yêu cầu. Ví dụ: AndroidVersion được yêu cầu thấp hơn minSdkVersion của APK Chỉ có thể được thiết lập khi thực thi. |
INCOMPATIBLE_ARCHITECTURE |
Quá trình thực thi không chạy vì các dữ liệu đầu vào đã cung cấp không tương thích với cấu trúc được yêu cầu. Ví dụ: thiết bị được yêu cầu không hỗ trợ chạy mã gốc trong APK đã cung cấp Chỉ có thể được thiết lập khi thực thi. |
CANCELLED |
Người dùng đã huỷ thực thi. Chỉ có thể được thiết lập khi thực thi. |
INVALID |
Quá trình thực thi hoặc ma trận không chạy vì dữ liệu đầu vào được cung cấp không hợp lệ. Ví dụ: Tệp nhập không thuộc loại mong muốn, không đúng định dạng/bị hỏng hoặc bị gắn cờ là phần mềm độc hại |
Bước kết quả công cụ
Biểu thị tài nguyên bước kết quả của công cụ.
Thao tác này có kết quả của một lượt Thực thi kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string, "stepId": string } |
Trường | |
---|---|
projectId |
Chỉ có đầu ra. Dự án trên đám mây sở hữu bước kết quả công cụ. |
historyId |
Chỉ có đầu ra. Mã nhật ký của kết quả công cụ. |
executionId |
Chỉ có đầu ra. Mã thực thi kết quả của công cụ. |
stepId |
Chỉ có đầu ra. Mã bước kết quả công cụ. |
Chi tiết kiểm thử
Thông tin chi tiết bổ sung về tiến trình của chương trình kiểm thử đang chạy.
Biểu diễn dưới dạng JSON |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
Trường | |
---|---|
progressMessages[] |
Chỉ có đầu ra. Nội dung mô tả chi tiết, dễ đọc về tiến trình kiểm thử. Ví dụ: "Cấp phép thiết bị", "Đang bắt đầu thử nghiệm". Trong quá trình thực thi, hệ thống có thể thêm dữ liệu mới vào phần cuối của ProgressMessages. |
errorMessage |
Chỉ có đầu ra. Nếu TestState là LỖI, thì chuỗi này sẽ chứa thông tin chi tiết mà con người có thể đọc được về lỗi. |
Bộ nhớ kết quả
Vị trí lưu trữ kết quả chạy kiểm thử.
Biểu diễn dưới dạng JSON |
---|
{ "googleCloudStorage": { object ( |
Trường | |
---|---|
googleCloudStorage |
Bắt buộc. |
toolResultsHistory |
Nhật ký kết quả của công cụ có chứa quá trình thực thi kết quả của công cụ được ghi vào. Nếu bạn không cung cấp lựa chọn này, dịch vụ sẽ chọn một giá trị phù hợp. |
toolResultsExecution |
Chỉ có đầu ra. Quá trình thực thi kết quả của công cụ mà kết quả được ghi vào. |
resultsUrl |
Chỉ có đầu ra. URL đến kết quả trong Bảng điều khiển web Firebase. |
Bộ nhớ Google Cloud
Một vị trí lưu trữ trong bộ nhớ trên đám mây của Google (GCS).
Biểu diễn dưới dạng JSON |
---|
{ "gcsPath": string } |
Trường | |
---|---|
gcsPath |
Bắt buộc. Đường dẫn đến một thư mục trong GCS mà cuối cùng sẽ chứa kết quả cho quy trình kiểm thử này. Người dùng yêu cầu phải có quyền ghi trên bộ chứa trong đường dẫn được cung cấp. |
Lịch sử kết quả công cụ
Biểu thị tài nguyên nhật ký kết quả của công cụ.
Biểu diễn dưới dạng JSON |
---|
{ "projectId": string, "historyId": string } |
Trường | |
---|---|
projectId |
Bắt buộc. Dự án trên đám mây sở hữu nhật ký kết quả của công cụ này. |
historyId |
Bắt buộc. Mã nhật ký của kết quả công cụ. |
Thực thi kết quả công cụ
Biểu thị một tài nguyên thực thi kết quả của công cụ.
Tham số này có kết quả của một TestMatrix.
Biểu diễn dưới dạng JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
Trường | |
---|---|
projectId |
Chỉ có đầu ra. Dự án trên đám mây sở hữu quá trình thực thi kết quả của công cụ. |
historyId |
Chỉ có đầu ra. Mã nhật ký của kết quả công cụ. |
executionId |
Chỉ có đầu ra. Mã thực thi kết quả của công cụ. |
Chi tiết ma trận không hợp lệ
Lý do chi tiết khiến một Ma trận bị coi là KHÔNG HỢP LỆ.
Enum | |
---|---|
INVALID_MATRIX_DETAILS_UNSPECIFIED |
Không được dùng. Chỉ dành cho việc tạo phiên bản proto. |
DETAILS_UNAVAILABLE |
Ma trận KHÔNG HỢP LỆ nhưng không có thêm chi tiết nào. |
MALFORMED_APK |
Không thể phân tích cú pháp APK ứng dụng nhập vào. |
MALFORMED_TEST_APK |
Không thể phân tích cú pháp APK kiểm tra đầu vào. |
NO_MANIFEST |
Không tìm thấy tệp AndroidManifest.xml. |
NO_PACKAGE_NAME |
Tệp kê khai APK không khai báo tên gói. |
INVALID_PACKAGE_NAME |
Mã ứng dụng APK (còn gọi là tên gói) không hợp lệ. Hãy xem thêm https://developer.android.com/studio/build/application-id |
TEST_SAME_AS_APP |
Gói kiểm thử và gói ứng dụng giống nhau. |
NO_INSTRUMENTATION |
Gói ứng dụng kiểm thử không khai báo thông tin đo lường. |
NO_SIGNATURE |
Tệp APK ứng dụng đầu vào không có chữ ký. |
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE |
Lớp trình chạy kiểm thử do người dùng chỉ định hoặc trong tệp kê khai của APK kiểm thử không tương thích với Android Test Orchestrator. Orchestrator chỉ tương thích với AndroidJUnitRunner phiên bản 1.1 trở lên. Bạn có thể tắt trình điều phối bằng cách sử dụng DO_NOT_USE_ORCHESTRATOR OrchestratorOption. |
NO_TEST_RUNNER_CLASS |
Tệp APK kiểm thử không chứa lớp trình chạy kiểm thử do người dùng chỉ định hoặc trong tệp kê khai. Điều này có thể do một trong những nguyên nhân sau gây ra:
|
NO_LAUNCHER_ACTIVITY |
Không tìm thấy hoạt động của trình chạy chính. |
FORBIDDEN_PERMISSIONS |
Ứng dụng khai báo một hoặc nhiều quyền không được cho phép. |
INVALID_ROBO_DIRECTIVES |
Có xung đột trong roboDirectives được cung cấp. |
INVALID_RESOURCE_NAME |
Có ít nhất một tên tài nguyên không hợp lệ trong các lệnh robo đã cung cấp |
INVALID_DIRECTIVE_ACTION |
Định nghĩa không hợp lệ về hành động trong các lệnh robo (ví dụ: hành động nhấp hoặc bỏ qua bao gồm trường văn bản nhập) |
TEST_LOOP_INTENT_FILTER_NOT_FOUND |
Không có bộ lọc ý định vòng lặp thử nghiệm hoặc bộ lọc được cung cấp có định dạng không chính xác. |
SCENARIO_LABEL_NOT_DECLARED |
Yêu cầu có chứa nhãn tình huống không được khai báo trong tệp kê khai. |
SCENARIO_LABEL_MALFORMED |
Đã xảy ra lỗi khi phân tích cú pháp giá trị của nhãn. |
SCENARIO_NOT_DECLARED |
Yêu cầu có chứa số tình huống không được khai báo trong tệp kê khai. |
DEVICE_ADMIN_RECEIVER |
Không cho phép các ứng dụng dành cho quản trị viên thiết bị. |
MALFORMED_XC_TEST_ZIP |
XCTest được nén không đúng định dạng. Tệp zip không chứa một tệp .xctestrun duy nhất và nội dung của thư mục DerivedData/Build/Products. |
BUILT_FOR_IOS_SIMULATOR |
XCTest được nén được xây dựng cho trình mô phỏng iOS thay vì cho thiết bị thực. |
NO_TESTS_IN_XC_TEST_ZIP |
Tệp .xctestrun không chỉ định bất kỳ mục tiêu kiểm thử nào. |
USE_DESTINATION_ARTIFACTS |
Một hoặc nhiều mục tiêu kiểm thử được xác định trong tệp .xctestrun chỉ định "UseDestinationArtifacts" nhưng mục tiêu này không được phép. |
TEST_NOT_APP_HOSTED |
Các chương trình kiểm thử XC chạy trên thiết bị thực phải có "IsAppHostedTestBundle" == "đúng" trong tệp xctestrun. |
PLIST_CANNOT_BE_PARSED |
Không thể phân tích cú pháp tệp Info.plist trong tệp zip XCTest. |
TEST_ONLY_APK |
APK được đánh dấu là "testOnly". Không được dùng nữa và hiện không được sử dụng. |
MALFORMED_IPA |
Không thể phân tích cú pháp IPA đầu vào. |
MISSING_URL_SCHEME |
Ứng dụng không đăng ký giao thức URL vòng lặp trò chơi. |
MALFORMED_APP_BUNDLE |
Không thể xử lý gói ứng dụng iOS (.app). |
NO_CODE_APK |
APK không chứa mã. Xem thêm https://developer.android.com/guide/topics/manifest/application-element.html#code |
INVALID_INPUT_APK |
Đường dẫn APK đầu vào được cung cấp không đúng định dạng, tệp APK không tồn tại hoặc người dùng không có quyền truy cập vào tệp APK. |
INVALID_APK_PREVIEW_SDK |
Tệp APK được tạo cho SDK xem trước không được hỗ trợ |
MATRIX_TOO_LARGE |
Ma trận đã mở rộng để chứa quá nhiều lượt thực thi. |
TEST_QUOTA_EXCEEDED |
Không đủ hạn mức kiểm thử để chạy các lượt thực thi trong ma trận này. |
SERVICE_NOT_ACTIVATED |
API dịch vụ đám mây bắt buộc chưa được kích hoạt. Hãy xem bài viết: https://firebase.google.com/docs/test-lab/android/continuous#requirements |
UNKNOWN_PERMISSION_ERROR |
Đã xảy ra vấn đề không xác định về quyền khi chạy bài kiểm thử này. |
Chi tiết lỗi ma trận
Mô tả một lỗi hoặc vấn đề duy nhất của một ma trận.
Biểu diễn dưới dạng JSON |
---|
{ "reason": string, "message": string } |
Trường | |
---|---|
reason |
Chỉ có đầu ra. Nguyên nhân lỗi. Đây là một giá trị không đổi trong thứ thứ thứ 2 trở đi. |
message |
Chỉ có đầu ra. Thông báo mà con người có thể đọc được về lỗi trong TestMatrix. Mở rộng trường |
Tóm tắt kết quả
Tóm tắt kết quả cho ma trận thử nghiệm đã hoàn tất.
Enum | |
---|---|
OUTCOME_SUMMARY_UNSPECIFIED |
Không được dùng. Chỉ dành cho việc tạo phiên bản proto. |
SUCCESS |
Quá trình chạy ma trận kiểm thử đã thành công, ví dụ:
|
FAILURE |
Chạy không thành công, ví dụ:
|
INCONCLUSIVE |
Đã xảy ra lỗi không mong muốn. Quá trình chạy này vẫn sẽ được coi là không thành công nhưng có thể là một sự cố tạm thời. Do đó, việc chạy lại bài kiểm thử có thể thành công. |
SKIPPED |
Tất cả các lượt kiểm thử đều bị bỏ qua, ví dụ:
|
Phương thức |
|
---|---|
|
Huỷ các lượt chạy kiểm thử chưa hoàn tất trong ma trận kiểm thử. |
|
Tạo và chạy ma trận kiểm thử theo các thông số kỹ thuật đã cho. |
|
Kiểm tra trạng thái của ma trận kiểm thử và các lượt thực thi sau khi được tạo. |