REST Resource: projects.testMatrices

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 (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
}
Trường
testMatrixId

string

Chỉ có đầu ra. Mã nhận dạng duy nhất do dịch vụ đặt.

projectId

string

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

clientInfo

object (ClientInfo)

Thông tin về ứng dụng đã gọi hoạt động kiểm thử.

testSpecification

object (TestSpecification)

Bắt buộc. Cách chạy kiểm thử.

environmentMatrix

object (EnvironmentMatrix)

Bắt buộc. Các thiết bị mà chương trình kiểm thử đang được thực thi.

testExecutions[]

object (TestExecution)

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

object (ResultStorage)

Bắt buộc. Nơi viết kết quả ma trận.

state

enum (TestState)

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

timestamp

string (Timestamp format)

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 ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

invalidMatrixDetails

enum (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Ệ.

flakyTestAttempts

integer

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

enum (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

boolean

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 đó.

Thông tin khách hàng

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 (ClientInfoDetail)
    }
  ]
}
Trường
name

string

Bắt buộc. 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ề ứ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

string

Bắt buộc. Khoá thông tin chi tiết về khách hàng.

value

string

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 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.
}
Trường
testTimeout

string (Duration format)

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 "s". Ví dụ: "3.5s".

disableVideoRecording

boolean

Tắt quay video. Có thể giảm độ trễ kiểm thử.

disablePerformanceMetrics

boolean

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

object (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

object (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

object (AndroidInstrumentationTest)

Một bài kiểm thử đo lường trên Android.

androidRoboTest

object (AndroidRoboTest)

Một bài kiểm thử robo cho Android.

androidTestLoop

object (AndroidTestLoop)

Ứng dụng Android có Vòng lặp kiểm thử.

iosXcTest

object (IosXcTest)

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

iosTestLoop

object (IosTestLoop)

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

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 (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Trường
filesToPush[]

object (DeviceFile)

Danh sách các tệp để đẩy vào thiết bị trước khi bắt đầu kiểm thử.

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 kiểm tra. Các thư mục này phải là đườ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ạ tới bộ nhớ ngoài, hệ thống sẽ thay thế bằng tiền tố đường dẫn bộ nhớ ngoài cho thiết bị đó.

additionalApks[]

object (Apk)

Tệp APK cần cài đặt ngoài những tệp APK được kiểm thử trực tiếp. Hiện có giới hạn là 100.

account

object (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

string

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[]

object (EnvironmentVariable)

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
(deprecated)

object (SystraceSetup)

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

boolean

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 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.
}
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

object (ObbFile)

Thông tin tham chiếu đến tệp blob nhị phân mờ.

regularFile

object (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 (FileReference)
  }
}
Trường
obbFileName

string

Bắt buộc. 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)

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 file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
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

string

Đườ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 (FileReference)
  },
  "devicePath": string
}
Trường
content

object (FileReference)

Bắt buộc. Tệp nguồn.

devicePath

string

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ạ tới bộ nhớ ngoài, hệ thống sẽ thay thế bằng tiền tố đường dẫn bộ nhớ ngoài cho 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 (FileReference)
  },
  "packageName": string
}
Trường
location

object (FileReference)

Đườ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

string

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 account_type can be only one of the following:
  "googleAuto": {
    object (GoogleAuto)
  }
  // End of list of possible types for union field account_type.
}
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

object (GoogleAuto)

Tài khoản tự động đăng nhập vào Google.

GoogleAuto

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

string

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

value

string

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
(deprecated)

integer

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 (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Trường
networkProfile

string

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[]

object (FileReference)

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[]

object (IosDeviceFile)

Danh sách các tệp để đẩy vào thiết bị trước khi bắt đầu kiểm thử.

pullDirectories[]

object (IosDeviceFile)

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 (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Trường
content

object (FileReference)

Tệp nguồn

bundleId

string

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

string

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 (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.
}
Trường
testApk

object (FileReference)

Bắt buộc. Tệp APK chứa mã kiểm thử cần thực thi.

appPackageId

string

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

string

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

string

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[]

string

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:

  • "packageName" (tên 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)

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:

  • Không có trạng thái được chia sẻ
  • Đã tách riêng các sự cố
  • Nhật ký nằm trong phạm vi của từng thử nghiệm

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

object (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

object (FileReference)

Tệp APK cho ứng dụng đang được kiểm thử.

appBundle

object (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 bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
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

object (FileReference)

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 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.
}
Trường

Trường kết hợp option.

option chỉ có thể là một trong những trạng thái sau đây:

uniformSharding

object (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

object (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

object (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 kiểm thử đo lường, thuộc tính này sẽ được dịch thành các đối số "-e numShard" và "-e shardIndex" của 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

integer

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 (TestTargetsForShard)
    }
  ]
}
Trường
testTargetsForShard[]

object (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[]

string

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

string (Duration format)

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:

  • Đã đạt đến giới hạn phân đoạn tối đa và thời gian kiểm thử còn lại đã được tính toán để phân bổ vào các phân đoạn.
  • Mọi kiểm thử riêng lẻ đượ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 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ử:

  • 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 gần nhất sẽ được sử dụng.
  • Đối với các trường hợp kiểm thử mới, thời lượng trung bình của các trường hợp kiểm thử đã biết khác sẽ được sử dụng.
  • Nếu không có bản ghi thời gian trường hợp kiểm thử trước đó, thì thời lượng trường hợp kiểm thử mặc định là 15 giây.

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 thời gian chờ kiểm thử tối đa được phép ít nhất là 5 phút (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 "s". Ví dụ: "3.5s".

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 (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.
}
Trường
appPackageId

string

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

string

Hoạt động ban đầu nên được dùng để khởi động ứng dụng.

maxDepth
(deprecated)

integer

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
(deprecated)

integer

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[]

object (RoboDirective)

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

enum (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

object (FileReference)

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[]

object (RoboStartingIntent)

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

object (FileReference)

Tệp APK cho ứng dụng đang được kiểm thử.

appBundle

object (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 (RoboActionType)
}
Trường
resourceName

string

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ỉ 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 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

enum (RoboActionType)

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 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.
}
Trường
timeout

string (Duration format)

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 "s". Ví dụ: "3.5s".

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

object (LauncherActivityIntent)

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

startActivity

object (StartActivityIntent)

Một ý định bắt đầu hoạt động bằng thông tin chi tiết cụ thể.

Ý định hoạt động trình chạy

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

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 cần đặt cho ý định.

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ì Hiện tại, 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 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.
}
Trường
appPackageId

string

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[]

integer

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[]

string

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

object (FileReference)

Tệp APK cho ứng dụng đang được kiểm thử.

appBundle

object (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 "tạo để 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 có 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 (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Trường
testsZip

object (FileReference)

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

object (FileReference)

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

string

Phiên bản Xcode được sử 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

string

Chỉ có đầu ra. Mã gói của ứng dụng đang được kiểm thử.

testSpecialEntitlements

boolean

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 (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Trường
appIpa

object (FileReference)

Bắt buộc. Tệp .ipa của ứng dụng cần kiểm thử.

scenarios[]

integer

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

string

Chỉ có đầu ra. Mã gói của ứng dụng đang được kiểm thử.

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 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.
}
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

object (AndroidMatrix)

Ma trận thiết bị Android.

androidDeviceList

object (AndroidDeviceList)

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

iosDeviceList

object (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[]

string

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[]

string

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[]

string

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[]

string

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 (AndroidDevice)
    }
  ]
}
Trường
androidDevices[]

object (AndroidDevice)

Bắt buộc. Danh sách thiết bị Android.

Thiết bị Android

Một thiết bị Android.

Biểu diễn dưới dạng JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Trường
androidModelId

string

Bắt buộc. Mã của thiết bị Android sẽ được sử dụng. Sử dụng TestEnvironmentDiscoveryService để nhận các tuỳ chọn được hỗ trợ.

androidVersionId

string

Bắt buộc. Mã 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 tuỳ chọn được hỗ trợ.

locale

string

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

string

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ợ.

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 (IosDevice)
    }
  ]
}
Trường
iosDevices[]

object (IosDevice)

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

string

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

string

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

string

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

string

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 (TestSpecification)
  },
  "shard": {
    object (Shard)
  },
  "environment": {
    object (Environment)
  },
  "state": enum (TestState),
  "toolResultsStep": {
    object (ToolResultsStep)
  },
  "timestamp": string,
  "testDetails": {
    object (TestDetails)
  }
}
Trường
id

string

Chỉ có đầu ra. Mã nhận dạng duy nhất do dịch vụ đặt.

matrixId

string

Chỉ có đầu ra. Mã của TestMatrix chứa.

projectId

string

Chỉ có đầu ra. Dự án trên đám mây sở hữu lượt thực thi kiểm thử.

testSpecification

object (TestSpecification)

Chỉ có đầu ra. Cách chạy kiểm thử.

shard

object (Shard)

Chỉ có đầu ra. Thông tin chi tiết về phân đoạn.

environment

object (Environment)

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

state

enum (TestState)

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

object (ToolResultsStep)

Chỉ có đầu ra. Vị trí ghi kết quả của lần thực thi này.

timestamp

string (Timestamp format)

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 ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

testDetails

object (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 (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Trường
shardIndex

integer

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

integer

Chỉ có đầu ra. Tổng số phân đoạn.

testTargetsForShard

object (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

string (Duration format)

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 "s". Ví dụ: "3.5s".

Môi trường

Môi trường chạy kiểm thử.

Biểu diễn dưới dạng 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.
}
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

object (AndroidDevice)

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

iosDevice

object (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 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

string

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

historyId

string

Chỉ có đầu ra. Mã nhật ký của kết quả công cụ.

executionId

string

Chỉ có đầu ra. Mã thực thi kết quả của công cụ.

stepId

string

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[]

string

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

string

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 (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Trường
googleCloudStorage

object (GoogleCloudStorage)

Bắt buộc.

toolResultsHistory

object (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

object (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

string

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

string

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

string

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

string

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

string

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

string

Chỉ có đầu ra. Mã nhật ký của kết quả công cụ.

executionId

string

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/build/configure-app-module#set-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:

  • người dùng cung cấp tên lớp runner không chính xác hoặc
  • trình chạy kiểm thử không được tích hợp vào APK kiểm thử (có thể nằm trong APK ứng dụng).
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" == "true" 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.

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ụ:

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

Chạy không thành công, ví dụ:

  • Một hoặc nhiều trường hợp kiểm thử không thành công.
  • Hết giờ kiểm tra.
  • Ứng dụng đang được kiểm thử đã gặp sự cố.
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ụ:

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

Phương thức

cancel

Huỷ các lượt chạy kiểm thử chưa hoàn tất 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 kiểm thử và các lượt thực thi sau khi được tạo.