REST Resource: projects.histories.executions.steps

Tài nguyên: Bước

Bước thể hiện một thao tác đơn lẻ được thực hiện như một phần của Thực thi. Một bước có thể được sử dụng để thể hiện việc thực thi một công cụ (ví dụ: thực thi trình chạy thử hoặc thực thi trình biên dịch).

Các bước có thể trùng nhau (ví dụ: hai bước có thể có cùng thời gian bắt đầu nếu một số thao tác được thực hiện song song).

Dưới đây là một ví dụ, hãy xem xét rằng chúng ta có một bản dựng liên tục đang thực thi một trình chạy thử nghiệm cho mỗi lần lặp. Quy trình công việc sẽ như sau: - người dùng tạo Thực thi với id 1 - người dùng tạo TestExecutionStep với id 100 cho Thực thi 1 - người dùng cập nhật TestExecutionStep với id 100 để thêm nhật ký xml thô + dịch vụ phân tích nhật ký xml và trả về TestExecutionStep với (các) TestResult đã cập nhật. - người dùng cập nhật trạng thái TestExecutionStep với id 100 thành HOÀN THÀNH

Một Bước có thể được cập nhật cho đến khi trạng thái của nó được đặt thành HOÀN THÀNH tại thời điểm đó nó trở thành bất biến.

Biểu diễn JSON
{
  "stepId": string,
  "creationTime": {
    object (Timestamp)
  },
  "completionTime": {
    object (Timestamp)
  },
  "name": string,
  "description": string,
  "state": enum (State),
  "outcome": {
    object (Outcome)
  },
  "hasImages": boolean,
  "labels": {
    string: string,
    ...
  },
  "dimensionValue": {
    string: string,
    ...
  },
  "runDuration": {
    object (Duration)
  },
  "deviceUsageDuration": {
    object (Duration)
  },
  "multiStep": {
    object (MultiStep)
  },

  // Union field step can be only one of the following:
  "testExecutionStep": {
    object (TestExecutionStep)
  },
  "toolExecutionStep": {
    object (ToolExecutionStep)
  }
  // End of list of possible types for union field step.
}
Lĩnh vực
stepId

string

Mã định danh duy nhất trong Thực thi cho Bước này.

Trả về INVALID_ARGUMENT nếu trường này được người gọi đặt hoặc ghi đè.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: không bao giờ đặt
creationTime

object ( Timestamp )

Thời điểm bước này được tạo.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: không bao giờ đặt
completionTime

object ( Timestamp )

Thời điểm trạng thái bước được đặt thành hoàn thành.

Giá trị này sẽ được đặt tự động khi trạng thái chuyển sang HOÀN THÀNH.

  • Phản hồi: được đặt nếu trạng thái thực thi là HOÀN THÀNH.
  • Trong yêu cầu tạo/cập nhật: không bao giờ đặt
name

string

Một tên ngắn gọn mà con người có thể đọc được để hiển thị trong giao diện người dùng. Tối đa 100 ký tự. Ví dụ: Xây dựng sạch sẽ

PRECONDITION_FAILED sẽ được trả về khi tạo một bước mới nếu nó chia sẻ tên và giá trị thứ nguyên với bước hiện có. Nếu hai bước thể hiện một hành động tương tự nhưng có các giá trị thứ nguyên khác nhau thì chúng phải có cùng tên. Ví dụ: nếu cùng một bộ thử nghiệm được chạy trên hai nền tảng khác nhau thì hai bước này phải có cùng tên.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo: luôn được đặt
  • Trong yêu cầu cập nhật: chưa bao giờ đặt
description

string

Mô tả về công cụ này Ví dụ: mvn clean package -D SkipTests=true

  • Phản hồi: hiện diện nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo/cập nhật: tùy chọn
state

enum ( State )

Trạng thái ban đầu là IN_PROGRESS. Chuyển đổi trạng thái hợp pháp duy nhất là * IN_PROGRESS -> HOÀN THÀNH

PRECONDITION_FAILED sẽ được trả về nếu yêu cầu chuyển đổi không hợp lệ.

Việc tạo Bước với trạng thái được đặt thành HOÀN THÀNH là hợp lệ. Trạng thái chỉ có thể được đặt thành HOÀN THÀNH một lần. PRECONDITION_FAILED sẽ được trả về nếu trạng thái được đặt thành HOÀN THÀNH nhiều lần.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: tùy chọn
outcome

object ( Outcome )

Phân loại kết quả, ví dụ thành THÀNH CÔNG hoặc THẤT BẠI

  • Phản hồi: hiện diện nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo/cập nhật: tùy chọn
hasImages

boolean

Liệu bất kỳ kết quả đầu ra nào của bước này có phải là hình ảnh có thể được tìm nạp bằng hình thu nhỏ hay không.list.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: không bao giờ đặt
labels

map (key: string, value: string)

Các cặp khóa/giá trị tùy ý do người dùng cung cấp được liên kết với bước này.

Người dùng chịu trách nhiệm quản lý không gian tên khóa sao cho các khóa không vô tình xung đột.

INVALID_ARGUMENT sẽ được trả về nếu số lượng nhãn vượt quá 100 hoặc nếu độ dài của bất kỳ khóa hoặc giá trị nào vượt quá 100 ký tự.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: tùy chọn; mọi cặp khóa/giá trị mới sẽ được thêm vào bản đồ và mọi giá trị mới cho khóa hiện có sẽ cập nhật giá trị của khóa đó

Một đối tượng chứa danh sách các cặp "key": value . Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

dimensionValue

map (key: string, value: string)

Nếu quá trình thực thi chứa bước này có bất kỳ bộ định nghĩa kích thước nào thì trường này cho phép trẻ chỉ định các giá trị của các kích thước.

Các khóa phải khớp chính xác với định nghĩa thứ nguyên của quá trình thực thi.

Ví dụ: nếu quá trình thực thi có dimension_definition = ['attempt', 'device'] thì một bước phải xác định giá trị cho các thứ nguyên đó, ví dụ: dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

Nếu một bước không tham gia vào một chiều của ma trận thì giá trị cho chiều đó phải là chuỗi trống. Ví dụ: nếu một trong các thử nghiệm được thực hiện bởi một người chạy không hỗ trợ thử lại, thì bước này có thể có dimensionValue = ['attempt': '', 'device': 'Nexus 6']

Nếu bước này không tham gia vào bất kỳ thứ nguyên nào của ma trận thì nó có thể không đặt thứ nguyên.

PRECONDITION_FAILED sẽ được trả về nếu bất kỳ khóa nào không tồn tại trong định nghĩa thứ nguyên của quá trình thực thi.

PRECONDITION_FAILED sẽ được trả về nếu một bước khác trong quá trình thực thi này đã có cùng tên và DimensionValue nhưng khác nhau trên các trường dữ liệu khác, ví dụ: trường bước khác.

PRECONDITION_FAILED sẽ được trả về nếu DimensionValue được đặt và có Dimension_def định trong quá trình thực thi không được chỉ định làm một trong các khóa.

  • Đáp lại: hiện tại nếu được đặt bởi tạo
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: chưa bao giờ đặt

Một đối tượng chứa danh sách các cặp "key": value . Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

runDuration

object ( Duration )

Phải mất bao lâu để bước này chạy.

Nếu không được đặt, giá trị này sẽ được đặt thành chênh lệch giữa Thời gian sáng tạo và Thời gian hoàn thành khi bước này được đặt thành trạng thái HOÀN THÀNH. Trong một số trường hợp, việc đặt riêng giá trị này là phù hợp: Ví dụ: nếu một bước được tạo nhưng thao tác mà nó đại diện được xếp hàng đợi trong vài phút trước khi thực thi, sẽ là phù hợp nếu không bao gồm thời gian xếp hàng trong bước đó. runDuration.

PRECONDITION_FAILED sẽ được trả về nếu một người cố gắng đặt runDuration trên một bước đã được đặt trường này.

  • Đáp lại: hiện tại nếu được đặt trước đó; luôn hiện diện ở bước HOÀN THÀNH
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: tùy chọn
deviceUsageDuration

object ( Duration )

Bao nhiêu tài nguyên thiết bị được sử dụng để thực hiện kiểm tra.

Đây là mức sử dụng thiết bị được sử dụng cho mục đích thanh toán, khác với runDuration, ví dụ: lỗi cơ sở hạ tầng sẽ không bị tính phí cho việc sử dụng thiết bị.

PRECONDITION_FAILED sẽ được trả về nếu một người cố gắng đặt device_usage trên một bước đã được đặt trường này.

  • Đáp lại: hiện tại nếu được đặt trước đó.
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: tùy chọn
multiStep

object ( MultiStep )

Thông tin chi tiết khi nhiều bước được chạy với cùng cấu hình với một nhóm. Những chi tiết này có thể được sử dụng để xác định bước này thuộc về nhóm nào. Nó cũng xác định 'bước chính' của nhóm để lập chỉ mục cho tất cả các thành viên trong nhóm.

  • Đáp lại: hiện tại nếu được đặt trước đó.
  • Trong yêu cầu tạo: tùy chọn, hãy đặt nếu bước này được thực hiện nhiều lần.
  • Trong yêu cầu cập nhật: tùy chọn

Liên quân step sân .

step chỉ có thể là một trong những bước sau:

testExecutionStep

object ( TestExecutionStep )

Một cuộc thực hiện của một người chạy thử nghiệm.

toolExecutionStep

object ( ToolExecutionStep )

Việc thực thi một công cụ (được sử dụng cho các bước mà chúng tôi không hỗ trợ rõ ràng).

Kiểm traThực hiệnBước

Một bước đại diện cho việc chạy thử nghiệm.

Nó chấp nhận các tệp xml ant-junit sẽ được dịch vụ phân tích cú pháp thành kết quả kiểm tra có cấu trúc. Đường dẫn tệp Xml được cập nhật để nối thêm nhiều tệp hơn, tuy nhiên chúng không thể xóa được.

Người dùng cũng có thể thêm kết quả kiểm tra theo cách thủ công bằng cách sử dụng trường test_result.

Biểu diễn JSON
{
  "testSuiteOverviews": [
    {
      object (TestSuiteOverview)
    }
  ],
  "toolExecution": {
    object (ToolExecution)
  },
  "testIssues": [
    {
      object (TestIssue)
    }
  ],
  "testTiming": {
    object (TestTiming)
  }
}
Lĩnh vực
testSuiteOverviews[]

object ( TestSuiteOverview )

Danh sách nội dung tổng quan của bộ thử nghiệm. Điều này có thể được phân tích cú pháp từ nhật ký XML xUnit của máy chủ hoặc được người dùng tải lên trực tiếp. Tài liệu tham khảo này chỉ nên được gọi khi bộ thử nghiệm được phân tích cú pháp hoặc tải lên đầy đủ.

Số lượng tổng quan về bộ thử nghiệm tối đa được phép cho mỗi bước là 1000.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: không bao giờ (thay vào đó hãy sử dụng phương thức tùy chỉnh PublishXunitXmlFiles)
toolExecution

object ( ToolExecution )

Thể hiện việc thực thi của người chạy thử.

Mã thoát của công cụ này sẽ được sử dụng để xác định xem bài kiểm tra có vượt qua hay không.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: tùy chọn
testIssues[]

object ( TestIssue )

Các vấn đề được quan sát trong quá trình thực hiện thử nghiệm.

Ví dụ: nếu ứng dụng di động đang được thử nghiệm gặp sự cố trong quá trình thử nghiệm thì thông báo lỗi và nội dung theo dõi ngăn xếp có thể được ghi lại tại đây để hỗ trợ gỡ lỗi.

  • Đáp lại: hiện tại nếu được đặt bởi tạo hoặc cập nhật
  • Trong yêu cầu tạo/cập nhật: tùy chọn
testTiming

object ( TestTiming )

Phân tích thời gian thực hiện kiểm thử.

  • Đáp lại: hiện tại nếu được đặt bởi tạo hoặc cập nhật
  • Trong yêu cầu tạo/cập nhật: tùy chọn

Công cụ thực thi

Việc thực thi một công cụ tùy ý. Nó có thể là một trình chạy thử nghiệm hoặc một công cụ sao chép các tạo phẩm hoặc mã triển khai.

Biểu diễn JSON
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
Lĩnh vực
commandLineArguments[]

string

Dòng lệnh được mã hóa đầy đủ bao gồm tên chương trình (tương đương với argv trong chương trình C).

  • Đáp lại: hiện tại nếu được đặt bởi yêu cầu tạo
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: chưa bao giờ đặt
toolLogs[]

object ( FileReference )

Các tham chiếu đến bất kỳ nhật ký văn bản đơn giản nào đều xuất ra việc thực thi công cụ.

Trường này có thể được đặt trước khi công cụ thoát ra để có thể truy cập vào chế độ xem trực tiếp nhật ký trong khi công cụ đang chạy.

Số lượng nhật ký công cụ tối đa được phép cho mỗi bước là 1000.

  • Phản hồi: hiện tại nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: tùy chọn, mọi giá trị được cung cấp sẽ được thêm vào danh sách hiện có
exitCode

object ( ToolExitCode )

Mã thoát thực thi công cụ. Trường này sẽ được đặt sau khi công cụ đã thoát.

  • Phản hồi: hiện tại nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: tùy chọn, lỗi FAILED_PRECONDITION sẽ được trả về nếu Mã thoát đã được đặt.
toolOutputs[]

object ( ToolOutputReference )

Tham chiếu đến các tệp không rõ ràng ở bất kỳ định dạng nào được xuất ra bằng cách thực thi công cụ.

Số lượng đầu ra dao tối đa được phép cho mỗi bước là 1000.

  • Phản hồi: hiện diện nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo: tùy chọn
  • Trong yêu cầu cập nhật: tùy chọn, mọi giá trị được cung cấp sẽ được thêm vào danh sách hiện có

Mã thoát công cụ

Thoát mã khỏi quá trình thực thi công cụ.

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

integer

Mã thoát thực thi công cụ. Giá trị 0 có nghĩa là việc thực thi đã thành công.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: luôn được đặt

Vấn đề kiểm tra

Đã phát hiện sự cố xảy ra trong quá trình thực hiện thử nghiệm.

Biểu diễn JSON
{
  "errorMessage": string,
  "stackTrace": {
    object (StackTrace)
  },
  "warning": {
    object (Any)
  },
  "severity": enum (Severity),
  "type": enum (Type),
  "category": enum (Category)
}
Lĩnh vực
errorMessage

string

Một thông báo ngắn gọn mà con người có thể đọc được mô tả vấn đề. Yêu cầu.

stackTrace
(deprecated)

object ( StackTrace )

Không được dùng nữa để ủng hộ các trường theo dõi ngăn xếp bên trong các cảnh báo cụ thể.

warning

object ( Any )

Thông báo cảnh báo với các chi tiết bổ sung về vấn đề. Phải luôn là tin nhắn từ com.google.devtools.toolresults.v1.warnings

severity

enum ( Severity )

Mức độ nghiêm trọng của vấn đề. Yêu cầu.

type

enum ( Type )

Loại vấn đề. Yêu cầu.

category

enum ( Category )

Hạng mục vấn đề. Yêu cầu.

Bất kì

Any chứa thông báo đệm giao thức được tuần tự hóa tùy ý cùng với một URL mô tả loại thông báo được tuần tự hóa.

Thư viện Protobuf cung cấp hỗ trợ đóng gói/giải nén Bất kỳ giá trị nào dưới dạng các hàm tiện ích hoặc các phương thức được tạo bổ sung thuộc loại Bất kỳ.

Ví dụ 1: Đóng gói và giải nén một tin nhắn trong C++.

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

Ví dụ 2: Đóng gói và giải nén một tin nhắn trong Java.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}

Ví dụ 3: Đóng gói và giải nén tin nhắn trong Python.

foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...

Ví dụ 4: Đóng gói và giải nén tin nhắn trong Go

 foo := &pb.Foo{...}
 any, err := ptypes.MarshalAny(foo)
 ...
 foo := &pb.Foo{}
 if err := ptypes.UnmarshalAny(any, foo); err != nil {
   ...
 }

Theo mặc định, các phương thức gói do thư viện protobuf cung cấp sẽ sử dụng 'type.googleapis.com/full.type.name' làm URL loại và các phương thức giải nén chỉ sử dụng tên loại đủ điều kiện sau '/' cuối cùng trong URL loại, ví dụ: "foo.bar.com/x/yz" sẽ mang lại tên loại "yz".

JSON

Biểu diễn JSON của một giá trị Any sử dụng biểu diễn thông thường của thông báo được nhúng, được giải tuần tự hóa, với trường bổ sung @type chứa URL loại. Ví dụ:

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}

{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

Nếu loại thông báo được nhúng là phổ biến và có biểu diễn JSON tùy chỉnh, thì biểu diễn đó sẽ được nhúng thêm một value trường chứa JSON tùy chỉnh ngoài trường @type . Ví dụ (đối với tin nhắn google.protobuf.Duration ):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Biểu diễn JSON
{
  "typeUrl": string,
  "value": string
}
Lĩnh vực
typeUrl

string

Tên URL/tài nguyên xác định duy nhất loại thông báo bộ đệm giao thức được tuần tự hóa. Chuỗi này phải chứa ít nhất một ký tự "/". Đoạn cuối cùng của đường dẫn URL phải thể hiện tên đủ điều kiện của loại (như trong path/google.protobuf.Duration ). Tên phải ở dạng chuẩn (ví dụ: ở đầu "." không được chấp nhận).

Trong thực tế, các nhóm thường biên dịch trước thành dạng nhị phân tất cả các loại mà họ mong đợi nó sẽ sử dụng trong ngữ cảnh Bất kỳ. Tuy nhiên, đối với các URL sử dụng lược đồ http , https hoặc không có lược đồ nào, người ta có thể tùy ý thiết lập một máy chủ loại ánh xạ các URL loại tới định nghĩa thông báo như sau:

  • Nếu không có lược đồ nào được cung cấp thì https được giả định.
  • HTTP GET trên URL phải mang lại giá trị google.protobuf.Type ở định dạng nhị phân hoặc gây ra lỗi.
  • Các ứng dụng được phép lưu các kết quả tra cứu vào bộ nhớ đệm dựa trên URL hoặc biên dịch trước chúng thành tệp nhị phân để tránh mọi hoạt động tra cứu. Do đó, khả năng tương thích nhị phân cần được duy trì khi thay đổi loại. (Sử dụng tên loại được phiên bản để quản lý các thay đổi có thể gây lỗi.)

Lưu ý: chức năng này hiện không có trong bản phát hành protobuf chính thức và không được sử dụng cho các loại URL bắt đầu bằng type.googleapis.com.

Các lược đồ khác ngoài http , https (hoặc lược đồ trống) có thể được sử dụng với ngữ nghĩa cụ thể khi triển khai.

value

string ( bytes format)

Phải là bộ đệm giao thức được tuần tự hóa hợp lệ thuộc loại được chỉ định ở trên.

Một chuỗi được mã hóa base64.

Mức độ nghiêm trọng

Mức độ nghiêm trọng của vấn đề.

Enum
unspecifiedSeverity Mặc định mức độ nghiêm trọng không xác định. Không được dùng. Chỉ dành cho phiên bản.
info Sự cố không nghiêm trọng, cung cấp cho người dùng một số thông tin về quá trình chạy thử.
suggestion Sự cố không nghiêm trọng, cung cấp cho người dùng một số gợi ý về cách cải thiện trải nghiệm thử nghiệm của họ, ví dụ: đề xuất sử dụng Vòng lặp trò chơi.
warning Có thể có vấn đề nghiêm trọng.
severe Vấn đề quan trọng.

Kiểu

Các loại vấn đề.

Enum
unspecifiedType Loại không xác định mặc định. Không được dùng. Chỉ dành cho phiên bản.
fatalException Vấn đề là một ngoại lệ nghiêm trọng.
nativeCrash Vấn đề là một sự cố bản địa.
anr Vấn đề là sự cố ANR.
unusedRoboDirective Vấn đề là một lệnh robo chưa được sử dụng.
compatibleWithOrchestrator Vấn đề là đề xuất sử dụng bộ điều phối.
launcherActivityNotFound Sự cố khi tìm hoạt động của trình khởi chạy
startActivityNotFound Vấn đề khi giải quyết ý định bắt đầu một hoạt động do người dùng cung cấp
incompleteRoboScriptExecution Tập lệnh Robo chưa được thực thi đầy đủ.
completeRoboScriptExecution Tập lệnh Robo đã được thực thi đầy đủ và thành công.
failedToInstall APK không cài đặt được.
nonSdkApiUsageViolation Ứng dụng đã truy cập Api không phải sdk.
nonSdkApiUsageReport Ứng dụng đã truy cập Api không phải sdk (báo cáo chi tiết mới)
encounteredNonAndroidUiWidgetScreen Thu thập dữ liệu bằng Robo đã gặp phải ít nhất một màn hình có các thành phần không phải là tiện ích giao diện người dùng Android.
encounteredLoginScreen Thu thập dữ liệu bằng Robo đã gặp phải ít nhất một màn hình đăng nhập có thể xảy ra.
performedGoogleLogin Robo đã đăng nhập bằng Google.
iosException Ứng dụng iOS bị lỗi do ngoại lệ.
iosCrash Ứng dụng iOS bị lỗi mà không có ngoại lệ (ví dụ: bị giết).
performedMonkeyActions Robo crawl liên quan đến việc thực hiện một số hành động của khỉ.
usedRoboDirective Thu thập thông tin bằng Robo đã sử dụng lệnh Robo.
usedRoboIgnoreDirective Thu thập thông tin bằng Robo đã sử dụng lệnh Robo để bỏ qua thành phần giao diện người dùng.
insufficientCoverage Robo đã không thu thập dữ liệu một số phần có thể quan trọng của ứng dụng.
inAppPurchases Thu thập dữ liệu bằng robot liên quan đến một số giao dịch mua trong ứng dụng.
crashDialogError Hộp thoại sự cố đã được phát hiện trong quá trình thực hiện thử nghiệm
uiElementsTooDeep Độ sâu thành phần giao diện người dùng lớn hơn ngưỡng
blankScreen Màn hình trống được tìm thấy trong quá trình thu thập thông tin của Robo
overlappingUiElements Các phần tử giao diện người dùng chồng chéo được tìm thấy trong quá trình thu thập thông tin của Robo
unityException Đã phát hiện một ngoại lệ Unity chưa được phát hiện (những ứng dụng này không gặp sự cố).
deviceOutOfMemory Đã phát hiện thiết bị hết bộ nhớ
logcatCollectionError Đã phát hiện sự cố khi thu thập logcat
detectedAppSplashScreen Robo đã phát hiện thấy màn hình chờ do ứng dụng cung cấp (so với màn hình chờ của hệ điều hành Android).

Loại

Các loại vấn đề.

Enum
unspecifiedCategory Danh mục mặc định không xác định. Không được dùng. Chỉ dành cho phiên bản.
common Sự cố không dành riêng cho một loại thử nghiệm cụ thể (ví dụ: sự cố tự nhiên).
robo Vấn đề cụ thể đối với việc chạy Robo.

Kiểm traThời gian

Phân tích thời gian kiểm tra để biết các giai đoạn.

Biểu diễn JSON
{
  "testProcessDuration": {
    object (Duration)
  }
}
Lĩnh vực
testProcessDuration

object ( Duration )

Mất bao lâu để chạy quá trình thử nghiệm.

  • Đáp lại: hiện tại nếu được đặt trước đó.
  • Trong yêu cầu tạo/cập nhật: tùy chọn

Công cụThực thiBước

Bước công cụ chung sẽ được sử dụng cho các tệp nhị phân mà chúng tôi không hỗ trợ rõ ràng. Ví dụ: chạy cp để sao chép các tạo phẩm từ vị trí này sang vị trí khác.

Biểu diễn JSON
{
  "toolExecution": {
    object (ToolExecution)
  }
}
Lĩnh vực
toolExecution

object ( ToolExecution )

Thực thi công cụ.

  • Phản hồi: hiện diện nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo/cập nhật: tùy chọn

Nhiều bước

Thông tin chi tiết khi nhiều bước được chạy với cùng cấu hình với một nhóm.

Biểu diễn JSON
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
Lĩnh vực
primaryStepId

string

Id bước của bước chính (ban đầu), có thể là bước này.

multistepNumber

integer

Int duy nhất được cung cấp cho mỗi bước. Phạm vi từ 0 (bao gồm) đến tổng số bước (độc quyền). Bước chính là 0.

primaryStep

object ( PrimaryStep )

Trình bày nếu đó là bước chính (ban đầu).

Bước chính

Lưu trữ trạng thái kiểm tra tổng hợp của nhiều bước được chạy dưới dạng nhóm và kết quả của từng bước riêng lẻ.

Biểu diễn JSON
{
  "rollUp": enum (OutcomeSummary),
  "individualOutcome": [
    {
      object (IndividualOutcome)
    }
  ]
}
Lĩnh vực
rollUp

enum ( OutcomeSummary )

Trạng thái kiểm tra tổng hợp của nhiều bước được chạy với cùng cấu hình với một nhóm.

individualOutcome[]

object ( IndividualOutcome )

Id bước và kết quả của từng bước riêng lẻ.

Cá nhânKết quả

Id bước và kết quả của từng bước riêng lẻ được chạy dưới dạng nhóm với các bước khác có cùng cấu hình.

Biểu diễn JSON
{
  "stepId": string,
  "outcomeSummary": enum (OutcomeSummary),
  "multistepNumber": integer,
  "runDuration": {
    object (Duration)
  }
}
Lĩnh vực
stepId

string

outcomeSummary

enum ( OutcomeSummary )

multistepNumber

integer

Int duy nhất được cung cấp cho mỗi bước. Phạm vi từ 0 (bao gồm) đến tổng số bước (độc quyền). Bước chính là 0.

runDuration

object ( Duration )

Phải mất bao lâu để bước này chạy.

phương pháp

accessibilityClusters

Liệt kê các cụm khả năng truy cập cho một Bước nhất định

Có thể trả về bất kỳ mã lỗi chuẩn nào sau đây:

  • PERMISSION_DENIED - nếu người dùng không được phép đọc dự án
  • INVALID_ARGUMENT - nếu yêu cầu không đúng định dạng
  • FAILED_PRECODITION - nếu một đối số trong yêu cầu không hợp lệ; ví dụ

create

Tạo một bước.

get

Được một bước.

getPerfMetricsSummary

Truy xuất PerfMetricsSummary.

list

Liệt kê các bước cho một lần thực thi nhất định.

patch

Cập nhật Bước hiện có với thực thể một phần được cung cấp.

publishXunitXmlFiles

Xuất bản tệp xml lên Bước hiện có.