REST Resource: projects.testMatrices

Tài nguyên: TestMatrix

TestMatrix nắm bắt tất cả thông tin chi tiết về một bài kiểm tra. Nó chứa cấu hình môi trường, đặc tả kiểm thử, thực hiện kiểm thử cũng như trạng thái và kết quả tổng thể.

Biểu diễn JSON
{
  "testMatrixId": string,
  "projectId": string,
  "clientInfo": {
    object (ClientInfo)
  },
  "testSpecification": {
    object (TestSpecification)
  },
  "environmentMatrix": {
    object (EnvironmentMatrix)
  },
  "testExecutions": [
    {
      object (TestExecution)
    }
  ],
  "resultStorage": {
    object (ResultStorage)
  },
  "state": enum (TestState),
  "timestamp": string,
  "invalidMatrixDetails": enum (InvalidMatrixDetails),
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
Lĩnh vực
testMatrixId

string

Chỉ đầu ra. Id duy nhất được đặt bởi dịch vụ.

projectId

string

Dự án đám mây sở hữu ma trận thử nghiệm.

clientInfo

object ( ClientInfo )

Thông tin về khách hàng đã gọi thử nghiệm.

testSpecification

object ( TestSpecification )

Yêu cầu. Cách chạy thử nghiệm.

environmentMatrix

object ( EnvironmentMatrix )

Yêu cầu. Các thiết bị mà bài kiểm tra đang được thực hiện.

testExecutions[]

object ( TestExecution )

Chỉ đầu ra. Danh sách thực hiện kiểm tra mà dịch vụ tạo cho ma trận này.

resultStorage

object ( ResultStorage )

Yêu cầu. Nơi kết quả của ma trận được viết.

state

enum ( TestState )

Chỉ đầu ra. Cho biết tiến trình hiện tại của ma trận thử nghiệm.

timestamp

string ( Timestamp format)

Chỉ đầu ra. Thời gian ma trận thử nghiệm này được tạo lần đầu.

Dấu thời gian ở định dạng RFC3339 UTC "Zulu", với độ phân giải nano giây và tối đa chín chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Chỉ đầu ra. Mô tả lý do tại sao ma trận được coi là không hợp lệ. Chỉ hữu ích cho ma trận ở trạng thái KHÔNG HỢP LỆ.

flakyTestAttempts

integer

Số lần TestExecution phải được thử lại nếu một hoặc nhiều trường hợp thử nghiệm của nó không thành công vì bất kỳ lý do gì. Số lần phát lại tối đa được phép là 10.

Mặc định là 0, nghĩa là không được chạy lại.

outcomeSummary

enum ( OutcomeSummary )

Chỉ đầu ra. Kết quả chung cuộc của bài kiểm tra. Chỉ được đặt khi trạng thái ma trận kiểm tra là HOÀN THÀNH.

failFast

boolean

Nếu đúng, chỉ một lần thử tối đa sẽ được thực hiện để chạy mỗi lần thực thi/phân đoạn trong ma trận. Những lần thử nghiệm không ổn định sẽ không bị ảnh hưởng.

Thông thường, 2 lần thử trở lên sẽ được thực hiện nếu phát hiện thấy sự cố tiềm ẩn về cơ sở hạ tầng.

Tính năng này dành cho khối lượng công việc nhạy cảm với độ trễ. Tỷ lệ lỗi thực thi có thể lớn hơn đáng kể đối với các ma trận không nhanh và khả năng hỗ trợ bị hạn chế hơn do kỳ vọng đó.

Thông tin khách hàng

Thông tin về khách hàng đã gọi thử nghiệm.

Biểu diễn JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Lĩnh vực
name

string

Yêu cầu. Tên khách hàng, chẳng hạn như gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

Danh sách thông tin chi tiết về khách hàng.

Thông tin khách hàngChi tiết

Cặp khóa-giá trị của thông tin chi tiết về máy khách đã gọi thử nghiệm. Ví dụ: {'Phiên bản', '1.0'}, {'Bản phát hành', 'BETA'}.

Biểu diễn JSON
{
  "key": string,
  "value": string
}
Lĩnh vực
key

string

Yêu cầu. Chìa khóa thông tin chi tiết của khách hàng.

value

string

Yêu cầu. Giá trị của thông tin khách hàng chi tiết.

Đặc điểm kỹ thuật kiểm tra

Mô tả về cách chạy thử nghiệm.

Biểu diễn JSON
{
  "testTimeout": string,
  "disableVideoRecording": boolean,
  "disablePerformanceMetrics": boolean,

  // Union field setup can be only one of the following:
  "testSetup": {
    object (TestSetup)
  },
  "iosTestSetup": {
    object (IosTestSetup)
  }
  // End of list of possible types for union field setup.

  // Union field test can be only one of the following:
  "androidInstrumentationTest": {
    object (AndroidInstrumentationTest)
  },
  "androidRoboTest": {
    object (AndroidRoboTest)
  },
  "androidTestLoop": {
    object (AndroidTestLoop)
  },
  "iosXcTest": {
    object (IosXcTest)
  },
  "iosTestLoop": {
    object (IosTestLoop)
  }
  // End of list of possible types for union field test.
}
Lĩnh vực
testTimeout

string ( Duration format)

Thời gian tối đa cho phép thực hiện kiểm thử trước khi nó tự động bị hủy. Giá trị mặc định là 5 phút.

Khoảng thời gian tính bằng giây với tối đa chín chữ số phân số, kết thúc bằng ' s '. Ví dụ: "3.5s" .

disableVideoRecording

boolean

Vô hiệu hóa quay video. Có thể giảm độ trễ kiểm tra.

disablePerformanceMetrics

boolean

Tắt tính năng ghi số liệu hiệu suất. Có thể giảm độ trễ kiểm tra.

setup trường liên minh. Yêu cầu thiết lập thử nghiệm. setup chỉ có thể là một trong những điều sau đây:
testSetup

object ( TestSetup )

Kiểm tra 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 khởi động.

iosTestSetup

object ( IosTestSetup )

Kiểm tra yêu cầu thiết lập cho iOS.

Liên minh lĩnh vực test . Yêu cầu. Loại thử nghiệm để chạy. test chỉ có thể là một trong những điều sau đây:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Một thử nghiệm thiết bị Android.

androidRoboTest

object ( AndroidRoboTest )

Một thử nghiệm robot Android.

androidTestLoop

object ( AndroidTestLoop )

Một ứng dụng Android có vòng lặp thử nghiệm.

iosXcTest

object ( IosXcTest )

XCTest iOS, thông qua tệp .xctestrun.

iosTestLoop

object ( IosTestLoop )

Một ứng dụng iOS có vòng lặp thử nghiệm.

Cài đặt thử nghiệm

Mô tả về cách thiết lập thiết bị Android trước khi chạy thử nghiệm.

Biểu diễn JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Lĩnh vực
filesToPush[]

object ( DeviceFile )

Danh sách các file cần đẩy vào thiết bị trước khi bắt đầu kiểm tra.

directoriesToPull[]

string

Danh sách các thư mục trên thiết bị để tải lên GCS khi kết thúc bài thi; chúng phải là đường dẫn tuyệt đối trong/sdcard,/storage hoặc/data/local/tmp. Tên đường dẫn bị giới hạn ở các ký tự az AZ 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 định. Ví dụ: nếu /sdcard trên một thiết bị cụ thể không ánh xạ tới bộ nhớ ngoài, hệ thống sẽ thay thế nó bằng tiền tố đường dẫn bộ nhớ ngoài cho thiết bị đó.

additionalApks[]

object ( Apk )

Các APK để cài đặt ngoài những APK đang được thử nghiệm trực tiếp. Hiện tại giới hạn ở mức 100.

account

object ( Account )

Thiết bị sẽ đăng nhập vào tài khoản này trong suốt thời gian thử nghiệm.

networkProfile

string

Cấu hình lưu lượng truy cập mạng được sử dụng để chạy thử nghiệm. Có thể truy vấn các cấu hình mạng khả dụng bằng cách sử dụng loại môi trường NETWORK_CONFIGUration khi gọi TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Các biến môi trường cần đặt cho thử nghiệm (chỉ áp dụng cho thử nghiệm thiết bị đo đạc).

systrace
(deprecated)

object ( SystraceSetup )

Cấu hình Systrace để chạy. Không được dùng nữa: Systrace đã sử dụng Python 2 đã ngừng hoạt động vào ngày 01/01/2020. Systrace không còn được hỗ trợ trong API kiểm tra đám mây nữa và sẽ không có tệp Systrace nào được cung cấp trong kết quả.

dontAutograntPermissions

boolean

Có ngăn chặn việc cấp tất cả các quyền trong thời gian chạy khi cài đặt ứng dụng hay không

Tệp thiết bị

Một mô tả tập tin thiết bị duy nhất.

Biểu diễn JSON
{

  // Union field device_file can be only one of the following:
  "obbFile": {
    object (ObbFile)
  },
  "regularFile": {
    object (RegularFile)
  }
  // End of list of possible types for union field device_file.
}
Lĩnh vực
Trường liên kết device_file . Yêu cầu. device_file chỉ có thể là một trong những thứ sau:
obbFile

object ( ObbFile )

Tham chiếu đến tệp blob nhị phân mờ đục.

regularFile

object ( RegularFile )

Một tham chiếu đến một tập tin thông thường.

ObbFile

Tệp blob nhị phân mờ để cài đặt trên thiết bị trước khi bắt đầu thử nghiệm.

Biểu diễn JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Lĩnh vực
obbFileName

string

Yêu cầu. Tên tệp 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

object ( FileReference )

Yêu cầu. (Các) tệp Blob nhị phân mờ (OBB) để cài đặt trên thiết bị.

Tham chiếu tập tin

Một tham chiếu đến một tập tin, được sử dụng cho đầu vào của người dùng.

Biểu diễn JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Lĩnh vực
file trường Union . Yêu cầu. Tham chiếu tập tin. file chỉ có thể là một trong những điều sau đây:
gcsPath

string

Đường dẫn đến tệp trong Google Cloud Storage. Ví dụ: gs://build-app-1414623860166/app%40debug-unaligned.apk Những đường dẫn này dự kiến ​​sẽ được mã hóa url (mã hóa phần trăm)

Tệp thông thường

Một tập tin hoặc thư mục để cài đặt trên thiết bị trước khi bắt đầu thử nghiệm.

Biểu diễn JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Lĩnh vực
content

object ( FileReference )

Yêu cầu. Tệp nguồn.

devicePath

string

Yêu cầu. Nơi để đưa nội dung trên thiết bị. Phải là đường dẫn tuyệt đối, có trong danh sách cho phép. Nếu tập tin tồn tại, nó 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 chúng đều được đưa vào danh sách 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 định. Ví dụ: nếu /sdcard trên một thiết bị cụ thể không ánh xạ tới bộ nhớ ngoài, hệ thống sẽ thay thế nó bằng tiền tố đường dẫn bộ nhớ ngoài cho thiết bị đó và sao chép tệp vào đó.

Chúng tôi khuyên bạn nên sử dụng API môi trường trong ứng dụng và mã kiểm tra để truy cập các tệp trên thiết bị theo cách di động.

Apk

Một tệp gói Android để cài đặt.

Biểu diễn JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Lĩnh vực
location

object ( FileReference )

Đường dẫn đến APK sẽ được cài đặt trên thiết bị trước khi bắt đầu thử nghiệm.

packageName

string

Gói java để cài đặt APK. Giá trị được xác định bằng cách kiểm tra bảng 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 nó.

Biểu diễn JSON
{

  // Union field account_type can be only one of the following:
  "googleAuto": {
    object (GoogleAuto)
  }
  // End of list of possible types for union field account_type.
}
Lĩnh vực
Trường liên minh account_type . Yêu cầu. Loại tài khoản, dựa trê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 loại sau:
googleAuto

object ( GoogleAuto )

Một tài khoản đăng nhập google tự động.

GoogleAuto

Cho phép đăng nhập tài khoản Google tự động. Nếu được đặt, dịch vụ sẽ tự động tạo tài khoản thử nghiệm của Google và thêm tài khoản đó vào thiết bị trước khi thực hiện thử nghiệm. Lưu ý rằng tài khoản thử nghiệm có thể được sử dụng lại. Nhiều ứng dụng hiển thị đầy đủ các chức năng khi có tài khoản trên thiết bị. Đăng nhập vào thiết bị bằng các tài khoản được tạo này cho phép thử nghiệm nhiều chức năng hơn.

Môi trườngBiến

Một cặp khóa-giá trị được chuyển dưới dạng biến môi trường cho thử nghiệm.

Biểu diễn JSON
{
  "key": string,
  "value": string
}
Lĩnh vực
key

string

Khóa cho biến môi trường.

value

string

Giá trị cho biến môi trường.

SystraceThiết lập

Biểu diễn JSON
{
  "durationSeconds": integer
}
Lĩnh vực
durationSeconds
(deprecated)

integer

Thời lượng Systrace tính bằng giây. Nên từ 1 đến 30 giây. 0 vô hiệu hóa systrace.

Thiết lập thử nghiệm Ios

Mô tả về cách thiết lập thiết bị iOS trước khi chạy thử nghiệm.

Biểu diễn JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Lĩnh vực
networkProfile

string

Cấu hình lưu lượng truy cập mạng được sử dụng để chạy thử nghiệm. Có thể truy vấn các cấu hình mạng khả dụng bằng cách sử dụng loại môi trường NETWORK_CONFIGUration khi gọi TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

Các ứng dụng iOS cần cài đặt ngoài những ứng dụng đang được thử nghiệm trực tiếp.

pushFiles[]

object ( IosDeviceFile )

Danh sách các file cần đẩy vào thiết bị trước khi bắt đầu kiểm tra.

pullDirectories[]

object ( IosDeviceFile )

Danh sách các thư mục trên thiết bị để tải lên Cloud Storage khi kết thúc bài kiểm tra.

Các 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 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 ID gói.

Tệp thiết bị Ios

Một tập tin hoặc thư mục để cài đặt trên thiết bị trước khi bắt đầu thử nghiệm.

Biểu diễn JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Lĩnh vực
content

object ( FileReference )

Tệp nguồn

bundleId

string

Id gói của ứng dụng chứa tệp này.

Ứng dụng iOS sandbox hệ thống tệp riêng của chúng, vì vậy 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

string

Vị trí của tệp trên thiết bị, bên trong hệ thống tệp được đóng hộp cát của ứng dụng

AndroidThiết bị kiểm tra

Thử nghiệm một ứng dụng Android có thể điều khiển một thành phần Android độc lập với vòng đời thông thường của nó. Kiểm thử thiết bị Android chạy APK ứng dụng và APK kiểm thử trong cùng một quy trình trên Thiết bị Android ảo hoặc vật lý. Họ cũng chỉ định một lớp chạy thử nghiệm, chẳng hạn như com.google.GoogleTestRunner, lớp này có thể khác nhau tùy theo khung công cụ cụ thể được chọn.

Xem https://developer.android.com/training/testing/fundamentals để biết thêm thông tin về các loại thử nghiệm Android.

Biểu diễn JSON
{
  "testApk": {
    object (FileReference)
  },
  "appPackageId": string,
  "testPackageId": string,
  "testRunnerClass": string,
  "testTargets": [
    string
  ],
  "orchestratorOption": enum (OrchestratorOption),
  "shardingOption": {
    object (ShardingOption)
  },

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Lĩnh vực
testApk

object ( FileReference )

Yêu cầu. APK chứa mã kiểm tra sẽ được thực thi.

appPackageId

string

Gói java cho ứng dụng đang được thử nghiệm. Giá trị mặc định được xác định bằng cách kiểm tra bảng kê khai của ứng dụng.

testPackageId

string

Gói java để thực thi bài kiểm tra. Giá trị mặc định được xác định bằng cách kiểm tra bảng kê khai của ứng dụng.

testRunnerClass

string

Lớp InstrumentationTestRunner. Giá trị mặc định được xác định bằng cách kiểm tra bảng kê khai của ứng dụng.

testTargets[]

string

Mỗi mục tiêu phải đủ điều kiện với tên gói hoặc tên lớp, theo một trong các định dạng sau:

  • "tên gói gói"
  • "class packageName.class_name"
  • "class packageName.class_name#method_name"

Nếu trống, tất cả mục tiêu trong mô-đun sẽ được chạy.

orchestratorOption

enum ( OrchestratorOption )

Tùy chọn có chạy từng thử nghiệm trong lệnh gọi công cụ riêng của nó với Android Test Orchestrator hay không. ** Orchestrator chỉ tương thích với AndroidJUnitRunner phiên bản 1.1 trở lên! ** Người soạn nhạc cung cấp các lợi ích sau:

  • Không có trạng thái chia sẻ
  • Sự cố bị cô lập
  • Nhật ký được xác định phạm vi cho mỗi lần kiểm tra

Xem 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 không được đặt, bài kiểm tra sẽ được chạy mà không có người điều phối.

shardingOption

object ( ShardingOption )

Tùy chọn chạy thử nghiệm song song trên nhiều phân đoạn.

Trường liên minh app_under_test . Yêu cầu. app_under_test chỉ có thể là một trong những điều sau đây:
appApk

object ( FileReference )

APK cho ứng dụng đang được thử nghiệm.

appBundle

object ( AppBundle )

Gói ứng dụng nhiều apk cho ứng dụng đang được thử nghiệm.

AppBundle

Đị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 nhiều thư mục mô-đun tính năng động.

Xem https://developer.android.com/guide/app-bundle/build để được hướng dẫn cách xây dựng Gói ứng dụng.

Biểu diễn JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Lĩnh vực
bundle lĩnh vực liên minh. Yêu cầu. Gói thông tin vị trí. bundle chỉ có thể là một trong những điều sau đây:
bundleLocation

object ( FileReference )

Tệp .aab đại diện cho gói ứng dụng đang được thử nghiệm.

Tùy chọn soạn nhạc

Chỉ định cách thực hiện thử nghiệm.

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ó người điều phối. Trong tương lai, tất cả các bài kiểm tra thiết bị đo đạc sẽ được chạy bằng bộ điều phối. Việc sử dụng bộ điều phối rất được khuyến khích vì tất cả những lợi ích mà nó mang lại.
USE_ORCHESTRATOR Chạy thử nghiệm bằng cách sử dụng bộ điều phối. ** Chỉ tương thích với AndroidJUnitRunner phiên bản 1.1 trở lên! ** Khuyến khích.
DO_NOT_USE_ORCHESTRATOR Chạy thử nghiệm mà không sử dụng bộ điều phối.

Tùy chọn phân mảnh

Các tùy chọn để kích hoạt sharding.

Biểu diễn JSON
{

  // Union field option can be only one of the following:
  "uniformSharding": {
    object (UniformSharding)
  },
  "manualSharding": {
    object (ManualSharding)
  },
  "smartSharding": {
    object (SmartSharding)
  }
  // End of list of possible types for union field option.
}
Lĩnh vực

option trường liên minh.

option chỉ có thể là một trong những tùy chọn sau:

uniformSharding

object ( UniformSharding )

Các trường hợp thử nghiệm phân đoạn thống nhất cho tổng số phân đoạn.

manualSharding

object ( ManualSharding )

Phân chia 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

object ( SmartSharding )

Kiểm tra phân đoạn dựa trên bản ghi thời gian của trường hợp kiểm thử trước đó.

Đồng phụcSharding

Các trường hợp thử nghiệm phân đoạn thống nhất cho tổng số phân đoạn.

Đối với các thử nghiệm đo lường, nó sẽ được dịch sang các đối số AndroidJUnitRunner "-e numShard" và "-e shardIndex". Khi bật tính năng phân chia đồng nhất, việc chỉ định một trong hai đối số phân chia này thông qua environmentVariables là không hợp lệ.

Dựa trên cơ chế phân đoạn mà AndroidJUnitRunner sử dụng, không có gì đảm bảo rằng các trường hợp thử nghiệm sẽ được phân phối đồng đều trên tất cả các phân đoạn.

Biểu diễn JSON
{
  "numShards": integer
}
Lĩnh vực
numShards

integer

Yêu cầu. 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 thử nghiệm. Khi bạn chọn một hoặc nhiều thiết bị vật lý thì số lượng phân đoạn phải là <= 50. Khi bạn chọn một hoặc nhiều thiết bị ảo ARM thì phải là <= 200. Khi bạn chỉ chọn thiết bị ảo x86 thì phải là <= 500 .

Bảo vệ thủ công

Phân chia 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 thử nghiệm thông qua biến môi trường hoặc trong InstrumentationTest là không hợp lệ.

Biểu diễn JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Lĩnh vực
testTargetsForShard[]

object ( TestTargetsForShard )

Yêu cầu. Nhóm các gói, lớp và/hoặc phương thức thử nghiệm sẽ được chạy cho từng phân đoạn được tạo 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ị vật lý, số lượng testTargetsForShard lặp lại phải là <= 50. Khi bạn chọn một hoặc nhiều thiết bị ảo ARM, số lượng đó phải là <= 200. Khi bạn chỉ chọn thiết bị ảo x86 thì phải là <= 500.

TestTargetForShard

Kiểm tra mục tiêu cho một mảnh vỡ.

Biểu diễn JSON
{
  "testTargets": [
    string
  ]
}
Lĩnh vực
testTargets[]

string

Nhóm các gói, lớp và/hoặc phương thức thử nghiệm sẽ được chạy cho từng phân đoạn. Các mục tiêu cần phải được chỉ định ở định dạng đối số AndroidJUnitRunner. Ví dụ: "gói com.my.packages" "lớp com.my.package.MyClass".

Số lượng TestTarget phải lớn hơn 0.

SmartSharding

Kiểm tra phân đoạn dựa trên bản ghi thời gian của trường hợp kiểm thử trước đó.

Biểu diễn JSON
{
  "targetedShardDuration": string
}
Lĩnh vực
targetedShardDuration

string ( Duration format)

Lượng thời gian kiểm tra trong một phân đoạn sẽ mất.

Mặc định: 300 giây (5 phút). Tối thiểu cho phép: 120 giây (2 phút).

Số lượng phân đoạn được đặt động dựa trên thời gian, lên đến 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 thử nghiệm cho mỗi phân đoạn, số lượng phân đoạn sẽ không vượt quá số lượng trường hợp thử nghiệm. Thời lượng phân đoạn sẽ bị vượt quá nếu:

  • Đã đạt đến giới hạn phân đoạn tối đa và còn lại nhiều thời gian thử nghiệm được tính toán hơn để phân bổ vào các phân đoạn.
  • Bất kỳ thử nghiệm riêng lẻ nào cũng được ước tính sẽ dài hơn thời lượng phân đoạn được nhắm mục tiêu.

Thời lượng của phân đoạn không được đảm bảo vì phân đoạn thông minh sử dụng lịch sử trường hợp thử nghiệm và thời lượng mặc định có thể không chính xác. Các quy tắc để tìm bản ghi thời gian của trường hợp kiểm thử là:

  • Nếu dịch vụ đã xử lý một trường hợp kiểm thử trong 30 ngày qua thì bản ghi trường hợp kiểm thử thành công mới nhất sẽ được sử dụng.
  • Đối với các trường hợp thử nghiệm mới, thời lượng trung bình của các trường hợp thử nghiệm đã biết khác sẽ được sử dụng.
  • Nếu không có sẵn bản ghi thời gian của trường hợp kiểm thử trước đó, thời lượng trường hợp kiểm thử mặc định là 15 giây.

Vì 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 nên chúng tôi khuyên bạn nên đặt giá trị mục tiêu ít hơn ít nhất 5 phút so với thời gian chờ thử nghiệm tối đa được phép (45 phút cho thiết bị vật lý và 60 phút cho thiết bị ảo) hoặc bạn sử dụng tùy chỉnh kiểm tra giá trị thời gian chờ mà bạn đặt. Cách tiếp cận này tránh việc hủy phân đoạn trước khi tất cả các thử nghiệm có thể kết thúc.

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ị vật lý thì số lượng phân đoạn phải là <= 50. Khi bạn chọn một hoặc nhiều thiết bị ảo ARM thì phải là <= 200. Khi bạn chỉ chọn thiết bị ảo x86 thì phải là <= 500 Để đảm bảo có ít nhất một test case cho mỗi shard, số lượng shard sẽ không vượt quá số lượng test case. Mỗi phân đoạn được tạo sẽ được tính vào hạn ngạch thử nghiệm hàng ngày.

Khoảng thời gian tính bằng giây với tối đa chín chữ số phân số, kết thúc bằng ' s '. Ví dụ: "3.5s" .

AndroidRoboThử nghiệm

Thử nghiệm ứng dụng Android khám phá ứng dụng trên Thiết bị Android ảo hoặc vật lý, tìm ra thủ phạm và gặp sự cố khi ứng dụng hoạt động.

Biểu diễn JSON
{
  "appPackageId": string,
  "appInitialActivity": string,
  "maxDepth": integer,
  "maxSteps": integer,
  "roboDirectives": [
    {
      object (RoboDirective)
    }
  ],
  "roboMode": enum (RoboMode),
  "roboScript": {
    object (FileReference)
  },
  "startingIntents": [
    {
      object (RoboStartingIntent)
    }
  ],

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Lĩnh vực
appPackageId

string

Gói java cho ứng dụng đang được thử nghiệm. Giá trị mặc định được xác định bằng cách kiểm tra bảng kê khai của ứng dụng.

appInitialActivity

string

Hoạt động ban đầu sẽ được sử dụng để khởi động ứng dụng.

maxDepth
(deprecated)

integer

Độ 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 người để Robo khám phá ứng dụng ngoài hoạt động đầu tiên. Mặc định là 50.

maxSteps
(deprecated)

integer

Số bước tối đa Robo có thể thực hiện. Mặc định là không có giới hạn.

roboDirectives[]

object ( RoboDirective )

Một bộ chỉ thị mà Robo phải áp dụng trong quá trình thu thập thông tin. Điều này cho phép người dùng tùy chỉnh thu thập thông tin. Ví dụ: tên người dùng và mật khẩu cho tài khoản thử nghiệm có thể được cung cấp.

roboMode

enum ( RoboMode )

Chế độ mà Robo sẽ chạy. Hầu hết khách hàng nên cho phép máy chủ tự động điền trường này.

roboScript

object ( FileReference )

Tệp JSON có chuỗi hành động mà Robo sẽ thực hiện như phần mở đầu cho quá trình thu thập thông tin.

startingIntents[]

object ( RoboStartingIntent )

Ý định dùng để khởi chạy ứng dụng để thu thập thông tin. Nếu không được cung cấp thì hoạt động của trình khởi chạy chính sẽ được khởi chạy. Nếu một số được cung cấp thì chỉ những thứ được cung cấp mới được khởi chạy (hoạt động của trình khởi chạy chính phải được cung cấp rõ ràng).

Trường liên minh app_under_test . Yêu cầu. app_under_test chỉ có thể là một trong những điều sau đây:
appApk

object ( FileReference )

APK cho ứng dụng đang được thử nghiệm.

appBundle

object ( AppBundle )

Gói ứng dụng nhiều apk cho ứng dụng đang được thử nghiệm.

Chỉ thị Robo

Hướng dẫn Robo tương tác với một thành phần giao diện người dùng cụ thể nếu nó 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 nhập văn bản hoặc nhấp chuột vào phần tử.

Biểu diễn JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Lĩnh vực
resourceName

string

Yêu cầu. 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í dụ: trong Java: R.string.foo trong xml: @string/foo Chỉ cần phần "foo". Tài liệu tham khảo: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Văn bản mà Robo được hướng tới thiết lập. Nếu để trống, lệnh này sẽ được coi là một CLICK trên phần tử khớp với Tên tài nguyên.

actionType

enum ( RoboActionType )

Yêu cầu. Loại hành động mà Robo sẽ thực hiện trên phần tử được chỉ định.

RoboHành động Loại

Các hành động mà Robo có thể thực hiện trên các thành phần giao diện người dùng.

Enum
ACTION_TYPE_UNSPECIFIED KHÔNG ĐƯỢC DÙNG. Chỉ dành cho phiên bản proto.
SINGLE_CLICK Trực tiếp 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 được.
ENTER_TEXT Trực tiếp 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 Chỉ đạo Robo bỏ qua các tương tác với một phần tử cụ thể.

chế độ robot

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ế độ. Khuyến khích.
ROBO_VERSION_1 Chạy Robo ở chế độ chỉ UIAutomator mà không cần thoát ứng dụng
ROBO_VERSION_2 Chạy Robo trong Espresso tiêu chuẩn với dự phòng UIAutomator

RoboBắt đầuÝ định

Thông báo chỉ định các hoạt động bắt đầu thu thập thông tin.

Biểu diễn JSON
{
  "timeout": string,

  // Union field starting_intent can be only one of the following:
  "launcherActivity": {
    object (LauncherActivityIntent)
  },
  "startActivity": {
    object (StartActivityIntent)
  }
  // End of list of possible types for union field starting_intent.
}
Lĩnh vực
timeout

string ( Duration format)

Thời gian chờ tính bằng giây cho mỗi ý định.

Khoảng thời gian tính bằng giây với tối đa chín chữ số phân số, kết thúc bằng ' s '. Ví dụ: "3.5s" .

Trường liên minh starting_intent . Yêu cầu. Chi tiết ý định để bắt đầu một hoạt động. starting_intent chỉ có thể là một trong những điều sau đây:
launcherActivity

object ( LauncherActivityIntent )

Một ý định bắt đầu hoạt động của trình khởi chạy chính.

startActivity

object ( StartActivityIntent )

Ý định bắt đầu một hoạt động với các chi tiết cụ thể.

Trình khởi chạyHoạt độngÝ định

Chỉ định ý định bắt đầu hoạt động của trình khởi chạy chính.

Bắt đầuHoạt độngÝ định

Mục đích bắt đầu được chỉ định bởi một hành động, uri và danh mục.

Biểu diễn JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Lĩnh vực
action

string

Tên hành động. Bắt buộc đối với START_ACTIVITY.

uri

string

URI cho hành động.

categories[]

string

Các danh mục ý định để đặt theo ý định.

AndroidTestLoop

Thử nghiệm Ứng dụng Android bằng Vòng lặp thử nghiệm. Ý định <intent-name> sẽ được ngầm thêm vào vì Games là người dùng duy nhất của api này vào thời điểm hiện tại.

Biểu diễn JSON
{
  "appPackageId": string,
  "scenarios": [
    integer
  ],
  "scenarioLabels": [
    string
  ],

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Lĩnh vực
appPackageId

string

Gói java cho ứng dụng đang được thử nghiệm. Giá trị mặc định được xác định bằng cách kiểm tra bảng kê khai của ứng dụng.

scenarios[]

integer

Danh sách các kịch bản sẽ được chạy trong quá trình thử nghiệm. Giá trị mặc định là tất cả các vòng lặp kiểm tra, bắt nguồn từ bảng kê khai của ứng dụng.

scenarioLabels[]

string

Danh sách các nhãn kịch bản sẽ được chạy trong quá trình thử nghiệm. Các nhãn kịch bản sẽ ánh xạ tới các nhãn được xác định trong tệp kê khai của ứng dụng. Ví dụ: player_experience và com.google.test.loops.player_experience thêm tất cả các vòng lặp được gắn nhãn trong tệp kê khai có tên com.google.test.loops.player_experience vào quá trình thực thi. Các kịch bản cũng có thể được chỉ định trong trường kịch bản.

Trường liên minh app_under_test . Yêu cầu. Gói Android để thử nghiệm. app_under_test chỉ có thể là một trong những điều sau đây:
appApk

object ( FileReference )

APK cho ứng dụng đang được thử nghiệm.

appBundle

object ( AppBundle )

Gói ứng dụng nhiều apk cho ứng dụng đang được thử nghiệm.

Kiểm tra iOSXc

Thử nghiệm ứng dụng iOS sử dụng khung XCTest. Xcode hỗ trợ tùy chọn "xây dựng để thử nghiệm", tạo ra tệp .xctestrun chứa thông số kiểm tra (đối số, phương pháp kiểm tra, v.v.). Loại thử nghiệm này chấp nhận tệp zip chứa tệp .xctestrun và nội dung tương ứng của thư mục Build/Products chứa tất cả các tệp nhị phân cần thiết để chạy thử nghiệm.

Biểu diễn JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Lĩnh vực
testsZip

object ( FileReference )

Yêu cầu. Tệp .zip chứa tệp .xctestrun và nội dung của thư mục DerivedData/Build/Products. Tệp .xctestrun trong zip này bị bỏ qua nếu trường xctestrun được chỉ định.

xctestrun

object ( FileReference )

Tệp .xctestrun sẽ ghi đè tệp .xctestrun trong zip thử nghiệm. Vì tệp .xctestrun chứa các biến môi trường cùng với các phương thức kiểm tra để chạy và/hoặc bỏ qua, nên điều này có thể hữu ích cho các kiểm tra phân mảnh. Mặc định được lấy từ zip kiểm tra.

xcodeVersion

string

Phiên bản Xcode nên được sử dụng để thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ. Mặc định là phiên bản Xcode mới nhất mà Firebase Test Lab hỗ trợ.

appBundleId

string

Chỉ đầu ra. Id gói cho ứng dụng đang được thử nghiệm.

testSpecialEntitlements

boolean

Tùy chọn để kiểm tra các quyền ứng dụng đặc biệt. Cài đặt này sẽ ký lại ứng dụng có các quyền đặc biệt với mã nhận dạng ứng dụng rõ ràng. Hiện hỗ trợ thử nghiệm quyền trong môi trường aps.

IosTestLoop

Bản thử nghiệm ứng dụng iOS triển khai một hoặc nhiều kịch bản vòng lặp trò chơi. Loại thử nghiệm này chấp nhận một ứng dụng được lưu trữ (tệp .ipa) và danh sách các kịch bản số nguyên sẽ được thực thi tuần tự trên ứng dụng.

Biểu diễn JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Lĩnh vực
appIpa

object ( FileReference )

Yêu cầu. .ipa của ứng dụng cần kiểm tra.

scenarios[]

integer

Danh sách các kịch bản sẽ được chạy trong quá trình thử nghiệm. Mặc định cho kịch bản duy nhất 0 nếu không được chỉ định.

appBundleId

string

Chỉ đầu ra. Id gói cho ứng dụng đang được thử nghiệm.

Môi TrườngMa Trận

Ma trận các môi trường mà thử nghiệm sẽ được thực hiện.

Biểu diễn JSON
{

  // Union field environment_matrix can be only one of the following:
  "androidMatrix": {
    object (AndroidMatrix)
  },
  "androidDeviceList": {
    object (AndroidDeviceList)
  },
  "iosDeviceList": {
    object (IosDeviceList)
  }
  // End of list of possible types for union field environment_matrix.
}
Lĩnh vực
Trường liên minh environment_matrix . Yêu cầu. Ma trận môi trường. environment_matrix chỉ có thể là một trong những điều sau đây:
androidMatrix

object ( AndroidMatrix )

Một ma trận các thiết bị Android.

androidDeviceList

object ( AndroidDeviceList )

Danh sách các thiết bị Android; bài kiểm tra sẽ chỉ được chạy trên các thiết bị được chỉ định.

iosDeviceList

object ( IosDeviceList )

Danh sách các thiết bị iOS.

Ma Trận Android

Một tập hợp các hoán vị cấu hình thiết bị Android được xác định bằng tích 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 Thiết bị Android.

Chỉ những hoán vị được hỗ trợ mới được khởi tạo. Các hoán vị không hợp lệ (ví dụ: kiểu máy/phiên bản không tương thích) sẽ bị bỏ qua.

Biểu diễn JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Lĩnh vực
androidModelIds[]

string

Yêu cầu. Id của nhóm thiết bị Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

androidVersionIds[]

string

Yêu cầu. Id của tập hợp phiên bản hệ điều hành Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

locales[]

string

Yêu cầu. Tập hợp các ngôn ngữ mà thiết bị thử nghiệm sẽ kích hoạt để thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

orientations[]

string

Yêu cầu. Tập hợp các hướng để kiểm tra. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

Danh sách thiết bị Android

Danh sách các cấu hình thiết bị Android mà thử nghiệm sẽ được thực hiện trong đó.

Biểu diễn JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Lĩnh vực
androidDevices[]

object ( AndroidDevice )

Yêu cầu. Danh sách các thiết bị Android.

Thiết bị Android

Một thiết bị Android duy nhất.

Biểu diễn JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Lĩnh vực
androidModelId

string

Yêu cầu. Id của thiết bị Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

androidVersionId

string

Yêu cầu. Id của phiên bản hệ điều hành Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

locale

string

Yêu cầu. Ngôn ngữ của thiết bị thử nghiệm được sử dụng để thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

orientation

string

Yêu cầu. Cách thiết bị được định hướng trong quá trình thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

Danh sách thiết bị Ios

Danh sách các cấu hình thiết bị iOS mà thử nghiệm sẽ được thực hiện.

Biểu diễn JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Lĩnh vực
iosDevices[]

object ( IosDevice )

Yêu cầu. Danh sách các thiết bị iOS.

Thiết Bị Ios

Một thiết bị iOS duy nhất.

Biểu diễn JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Lĩnh vực
iosModelId

string

Yêu cầu. Id của thiết bị iOS sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

iosVersionId

string

Yêu cầu. Id của phiên bản phần mềm chính của iOS sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

locale

string

Yêu cầu. Ngôn ngữ của thiết bị thử nghiệm được sử dụng để thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

orientation

string

Yêu cầu. Cách thiết bị được định hướng trong quá trình thử nghiệm. Sử dụng TestEnvironmentDiscoveryService để nhận các tùy chọn được hỗ trợ.

Thực hiện kiểm tra

Một thử nghiệm duy nhất được thực hiện trong một môi trường duy nhất.

Biểu diễn JSON
{
  "id": string,
  "matrixId": string,
  "projectId": string,
  "testSpecification": {
    object (TestSpecification)
  },
  "shard": {
    object (Shard)
  },
  "environment": {
    object (Environment)
  },
  "state": enum (TestState),
  "toolResultsStep": {
    object (ToolResultsStep)
  },
  "timestamp": string,
  "testDetails": {
    object (TestDetails)
  }
}
Lĩnh vực
id

string

Chỉ đầu ra. Id duy nhất được đặt bởi dịch vụ.

matrixId

string

Chỉ đầu ra. Id của TestMatrix chứa.

projectId

string

Chỉ đầu ra. Dự án đám mây sở hữu quá trình thực hiện thử nghiệm.

testSpecification

object ( TestSpecification )

Chỉ đầu ra. Cách chạy thử nghiệm.

shard

object ( Shard )

Chỉ đầu ra. Thông tin chi tiết về mảnh vỡ.

environment

object ( Environment )

Chỉ đầu ra. Cách cấu hình (các) máy chủ.

state

enum ( TestState )

Chỉ đầu ra. Cho biết tiến trình thực hiện kiểm tra hiện tại (ví dụ: HOÀN THÀNH).

toolResultsStep

object ( ToolResultsStep )

Chỉ đầu ra. Nơi kết quả cho việc thực hiện này được viết.

timestamp

string ( Timestamp format)

Chỉ đầu ra. Thời gian thực hiện thử nghiệm này ban đầu được tạo.

Dấu thời gian ở định dạng RFC3339 UTC "Zulu", với độ phân giải nano giây và tối đa chín chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Chỉ đầu ra. Thông tin chi tiết bổ sung về thử nghiệm đang chạy.

Mảnh vỡ

Chỉ đầu ra. Thông tin chi tiết về mảnh vỡ.

Biểu diễn JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Lĩnh vực
shardIndex

integer

Chỉ đầu ra. Chỉ mục của phân đoạn trong số tất cả các phân đoạn.

numShards

integer

Chỉ đầu ra. Tổng số mảnh vỡ.

testTargetsForShard

object ( TestTargetsForShard )

Chỉ đầu ra. Kiểm tra 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

string ( Duration format)

Chỉ đầ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 thử nghiệm trước đó, nếu có.

Khoảng thời gian tính bằng giây với tối đa chín chữ số phân số, kết thúc bằng ' s '. Ví dụ: "3.5s" .

Môi trường

Môi trường mà thử nghiệm được chạy.

Biểu diễn JSON
{

  // Union field environment can be only one of the following:
  "androidDevice": {
    object (AndroidDevice)
  },
  "iosDevice": {
    object (IosDevice)
  }
  // End of list of possible types for union field environment.
}
Lĩnh vực
environment trường trường đoàn thể. Yêu cầu. Môi trường. environment chỉ có thể là một trong những điều sau đây:
androidDevice

object ( AndroidDevice )

Một thiết bị Android phải được sử dụng với thử nghiệm Android.

iosDevice

object ( IosDevice )

Một thiết bị iOS phải được sử dụng với thử nghiệm iOS.

Trạng thái kiểm tra

Trạng thái (tức là tiến trình) của việc thực hiện kiểm thử hoặc ma trận.

Enum
TEST_STATE_UNSPECIFIED Không được dùng. Chỉ dành cho phiên bản proto.
VALIDATING Việc thực thi hoặc ma trận đang được xác thực.
PENDING Việc thực thi hoặc ma trận đang chờ tài nguyên có sẵn.
RUNNING

Việc thực hiện hiện đang được xử lý.

Chỉ có thể được thiết lập khi thực thi.

FINISHED

Việc thực thi hoặc ma trận đã kết thúc 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 được hoàn thành bình thường nhưng các lần thực thi riêng lẻ 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 phải lỗi cơ sở hạ tầng.
UNSUPPORTED_ENVIRONMENT

Việc thực thi không được chạy vì nó tương ứng với môi trường không được hỗ trợ.

Chỉ có thể được thiết lập khi thực thi.

INCOMPATIBLE_ENVIRONMENT

Việc thực thi không được chạy vì đầu vào được 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

Việc thực thi không được chạy vì đầu vào được cung cấp không tương thích với kiến ​​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 được cung cấp

Chỉ có thể được thiết lập khi thực thi.

CANCELLED

Người dùng đã hủy việc thực thi.

Chỉ có thể được thiết lập khi thực thi.

INVALID

Việc thực thi hoặc ma trận không được chạy vì thông tin đầu vào được cung cấp không hợp lệ.

Ví dụ: tệp đầu vào không thuộc loại mong đợi, không đúng định dạng/hỏng hoặc bị gắn cờ là phần mềm độc hại

Công cụKết quảBước

Đại diện cho một tài nguyên bước kết quả công cụ.

Điều này có kết quả của TestExecution.

Biểu diễn JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Lĩnh vực
projectId

string

Chỉ đầu ra. Dự án đám mây sở hữu bước kết quả công cụ.

historyId

string

Chỉ đầu ra. ID lịch sử kết quả của công cụ.

executionId

string

Chỉ đầu ra. ID thực thi kết quả công cụ.

stepId

string

Chỉ đầu ra. ID bước kết quả của công cụ.

Chi tiết kiểm tra

Thông tin chi tiết bổ sung về tiến độ của quá trình chạy thử nghiệm.

Biểu diễn JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Lĩnh vực
progressMessages[]

string

Chỉ đầu ra. Mô tả chi tiết, dễ đọc của con người về tiến trình kiểm tra. Ví dụ: "Cung cấp thiết bị", "Bắt đầu thử nghiệm".

Trong quá trình thực hiện, dữ liệu mới có thể được thêm vào cuối ProgressMessages.

errorMessage

string

Chỉ đầu ra. Nếu TestState là ERROR thì chuỗi này sẽ chứa các chi tiết mà con người có thể đọc được về lỗi.

Lưu trữ kết quả

Vị trí lưu trữ kết quả chạy thử nghiệm.

Biểu diễn JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Lĩnh vực
googleCloudStorage

object ( GoogleCloudStorage )

Yêu cầu.

toolResultsHistory

object ( ToolResultsHistory )

Lịch sử kết quả công cụ chứa việc thực thi kết quả công cụ mà kết quả được ghi vào.

Nếu không được cung cấp, dịch vụ sẽ chọn một giá trị phù hợp.

toolResultsExecution

object ( ToolResultsExecution )

Chỉ đầu ra. Công cụ thực hiện kết quả mà kết quả được ghi vào.

resultsUrl

string

Chỉ đầu ra. URL tới kết quả trong Bảng điều khiển web Firebase.

Lưu trữ đám mây của Google

Vị trí lưu trữ trong bộ lưu trữ đám mây của Google (GCS).

Biểu diễn JSON
{
  "gcsPath": string
}
Lĩnh vực
gcsPath

string

Yêu cầu. Đường dẫn đến thư mục trong GCS cuối cùng sẽ chứa kết quả của bài kiểm tra này. Người dùng yêu cầu phải có quyền ghi vào nhóm trong đường dẫn được cung cấp.

Công cụKết quảLịch sử

Đại diện cho một tài nguyên lịch sử kết quả công cụ.

Biểu diễn JSON
{
  "projectId": string,
  "historyId": string
}
Lĩnh vực
projectId

string

Yêu cầu. Dự án đám mây sở hữu lịch sử kết quả của công cụ.

historyId

string

Yêu cầu. ID lịch sử kết quả của công cụ.

Công cụKết quảThực thi

Đại diện cho một tài nguyên thực thi kết quả công cụ.

Điều này có kết quả của TestMatrix.

Biểu diễn JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Lĩnh vực
projectId

string

Chỉ đầu ra. Dự án đám mây sở hữu công cụ thực thi kết quả.

historyId

string

Chỉ đầu ra. ID lịch sử kết quả của công cụ.

executionId

string

Chỉ đầu ra. ID thực thi kết quả công cụ.

Chi tiết ma trận không hợp lệ

Lý do chi tiết khiến Ma trận được coi là KHÔNG HỢP LỆ.

Enum
INVALID_MATRIX_DETAILS_UNSPECIFIED Không được dùng. Chỉ dành cho phiên bản proto.
DETAILS_UNAVAILABLE Ma trận KHÔNG HỢP LỆ nhưng không có thêm thông tin chi tiết nào.
MALFORMED_APK Không thể phân tích cú pháp APK ứng dụng đầu vào.
MALFORMED_TEST_APK Không thể phân tích cú pháp APK thử nghiệm đầu vào.
NO_MANIFEST Không thể tìm thấy AndroidManifest.xml.
NO_PACKAGE_NAME Tệp kê khai APK không khai báo tên gói.
INVALID_PACKAGE_NAME ID ứng dụng APK (còn gọi là tên gói) không hợp lệ. Xem thêm https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Gói thử nghiệm và gói ứng dụng giống nhau.
NO_INSTRUMENTATION Apk thử nghiệm không khai báo thiết bị đo đạc.
NO_SIGNATURE Apk ứng dụng đầu vào không có chữ ký.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE Lớp trình chạy thử nghiệm do người dùng chỉ định hoặc trong tệp kê khai của APK thử nghiệm 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. Có thể tắt trình soạn thảo bằng cách sử dụng DO_NOT_USE_ORCHESTRATOR Tùy chọn trình soạn thảo.
NO_TEST_RUNNER_CLASS

APK thử nghiệm không chứa lớp chạy thử nghiệm do người dùng chỉ định hoặc trong tệp kê khai. Điều này có thể được gây ra bởi một trong những lý do sau:

  • người dùng đã cung cấp tên lớp người chạy không chính xác hoặc
  • trình chạy thử nghiệm không được tích hợp vào APK thử nghiệm (thay vào đó có thể có trong APK ứng dụng).
NO_LAUNCHER_ACTIVITY Không thể tìm thấy hoạt động của trình khởi chạy chính.
FORBIDDEN_PERMISSIONS Ứng dụng khai báo một hoặc nhiều quyền không được phép.
INVALID_ROBO_DIRECTIVES Có xung đột trong các Chỉ thị robo đượ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 chỉ thị robo được cung cấp
INVALID_DIRECTIVE_ACTION Định nghĩa hành động không hợp lệ trong chỉ thị robo (ví dụ: hành động nhấp hoặc bỏ qua bao gồm trường văn bản đầu vào)
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 không được định dạng chính xác.
SCENARIO_LABEL_NOT_DECLARED Yêu cầu chứa nhãn kịch bản chưa được khai báo trong tệp kê khai.
SCENARIO_LABEL_MALFORMED Đã xảy ra lỗi khi phân tích giá trị của nhãn.
SCENARIO_NOT_DECLARED Yêu cầu chứa số kịch bản không được khai báo trong tệp kê khai.
DEVICE_ADMIN_RECEIVER Ứng dụng quản trị viên thiết bị không được phép.
MALFORMED_XC_TEST_ZIP XCTest đã 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 đã nén được xây dựng cho trình mô phỏng iOS thay vì cho thiết bị vật lý.
NO_TESTS_IN_XC_TEST_ZIP Tệp .xctestrun không chỉ định bất kỳ mục tiêu thử nghiệm nào.
USE_DESTINATION_ARTIFACTS Một hoặc nhiều mục tiêu thử nghiệm được xác định trong tệp .xctestrun chỉ định "UseDestinationArtifacts", mục tiêu này không được phép.
TEST_NOT_APP_HOSTED Kiểm thử XC chạy trên thiết bị vật lý phải có "IsAppHostedTestBundle" == "true" trong tệp xctestrun.
PLIST_CANNOT_BE_PARSED Không thể phân tích cú pháp tệp Info.plist trong 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ý sơ đồ 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 APK được xây dựng cho SDK xem trước không được hỗ trợ
MATRIX_TOO_LARGE Ma trận được mở rộng để chứa quá nhiều lần thực thi.
TEST_QUOTA_EXCEEDED Không đủ hạn mức kiểm thử để chạy các lệnh 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. Xem: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Đã xảy ra sự cố về quyền không xác định khi chạy thử nghiệm này.

Kết quảTóm tắt

Tóm tắt kết quả cho một ma trận thử nghiệm đã hoàn thành.

Enum
OUTCOME_SUMMARY_UNSPECIFIED Không được dùng. Chỉ dành cho phiên bản proto.
SUCCESS

Ví dụ, việc chạy ma trận thử nghiệm đã thành công:

  • Tất cả các trường hợp thử nghiệm đã được thông qua.
  • Robo không phát hiện thấy sự cố của ứng dụng đang được thử nghiệm.
FAILURE

Ví dụ, một lần chạy không thành công:

  • Một hoặc nhiều trường hợp thử nghiệm không thành công.
  • Đã hết thời gian kiểm tra.
  • Ứng dụng đang được thử nghiệm bị lỗi.
INCONCLUSIVE Một điều gì đó bất ngờ đã xảy ra. Quá trình chạy vẫn được coi là không thành công nhưng đây có thể chỉ là sự cố nhất thời và việc chạy lại thử nghiệm có thể thành công.
SKIPPED

Tất cả các bài kiểm tra đã bị bỏ qua, ví dụ:

  • Tất cả các cấu hình thiết bị đều không tương thích.

phương pháp

cancel

Hủy bỏ các lần thực hiện kiểm thử chưa hoàn thành trong ma trận kiểm thử.

create

Tạo và chạy ma trận kiểm thử theo các thông số kỹ thuật đã cho.

get

Kiểm tra trạng thái của ma trận thử nghiệm và các lần thực thi sau khi chúng được tạo.