REST Resource: projects.histories.executions.steps

Tài nguyên: Bước

Mỗi bước biểu thị một thao tác được thực hiện trong quá trình Thực thi. Bạn có thể dùng một bước để đại diện cho quá trình thực thi công cụ ( ví dụ: thực thi trình chạy kiểm thử hoặc thực thi trình biên dịch).

Các bước có thể trùng lặp (ví dụ: 2 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).

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

Bạn có thể cập nhật Bước cho đến khi trạng thái của Bước đó được đặt thành HOÀN TẤT. Tại thời điểm đó, Bước không thể thay đổi được.

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

string

Giá trị nhận dạng duy nhất trong một Lần thực thi của 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 tạo bước này.

  • Đá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 mà trạng thái của bước được đặt thành hoàn tất.

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

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

string

Tên ngắn mà con người có thể đọc được để xuất hiện trong giao diện người dùng. Có tối đa 100 ký tự. Ví dụ: Bản dựng sạch

Khi tạo một bước mới, hệ thống sẽ trả về giá trị PRE). Nếu hai bước thể hiện một hành động tương tự, nhưng có các giá trị phương diện khác nhau, thì chúng phải có cùng tên. Ví dụ: nếu cùng một nhóm bài kiểm thử chạy trên 2 nền tảng khác nhau, thì 2 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 đặt
  • Trong yêu cầu cập nhật: chưa bao giờ đặt
description

string

Nội dung mô tả của công cụ này. Ví dụ: mvn sạch package -D ignoreTests=true

  • Phản hồi: hiển thị 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: không bắt buộc
state

enum (State)

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

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

Bạn có thể tạo Bước với trạng thái là HOÀN TẤT. Bạn chỉ có thể đặt trạng thái thành HOÀN TẤT một lần. Giá trị PREEMP_FAILED sẽ được trả về nếu trạng thái được đặt thành HOÀN TẤT nhiều lần.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: không bắt buộc
outcome

object (Outcome)

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

  • Phản hồi: hiển thị 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: không bắt buộc
hasImages

boolean

Liệu bất kỳ kết quả nào của bước này là những hình ảnh có hình thu nhỏ có thể tìm nạp được bằng collections.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 khoá/giá trị tuỳ ý 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 khoá để các khoá 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: không bắt buộc
  • Trong yêu cầu cập nhật: không bắt buộc; một cặp khoá/giá trị mới sẽ được thêm vào bản đồ và mọi giá trị mới cho khoá hiện có sẽ cập nhật giá trị của khoá đó

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ỳ tập hợp phương diện nào, thì trường này sẽ cho phép thành phần con chỉ định các giá trị của các phương diện.

Các khoá phải khớp chính xác với data_definition 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 phương diện đó, chẳng hạn như dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

Nếu một bước không tham gia vào một phương diện của ma trận, thì giá trị cho phương diện đó phải là chuỗi trống. Ví dụ: nếu một trong các chương trình kiểm thử được thực thi bởi một trình chạy không hỗ trợ hoạt động 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ỳ phương diện nào của ma trận, thì bước này có thể không được đặt giá trị phương diện.

Giá trị PREparagraph_FAILED sẽ được trả về nếu có bất kỳ khoá nào không tồn tại trongdimension_definition của quá trình thực thi.

Giá trị 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à giá trị phương diện, nhưng khác 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ếudimensionValue được đặt và có visibility_definition trong quá trình thực thi không được chỉ định là một trong các khoá.

  • Phản hồi: hiển thị nếu được đặt bởi phím create
  • Trong yêu cầu tạo: không bắt buộc
  • 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)

Khoảng thời gian để chạy bước này.

Nếu bạn không đặt chính sách này, hệ thống sẽ đặt mức chênh lệch giữa thời gian 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 TẤT. Trong một số trường hợp, bạn nên đặt riêng giá trị này: Ví dụ: nếu một bước được tạo, nhưng thao tác mà bước đó đại diện được đưa vào hàng đợi vài phút trước khi thực thi, thì việc không đưa thời gian vào hàng đợi trong runDuration của nó sẽ phù hợp.

Hệ thống sẽ trả về PREPRE Sau_FAILED nếu một người cố gắng đặt runDuration trên một bước đã được thiết lập trường này.

  • Phản hồi: hiện diện nếu đã đặt trước đó; luôn xuất hiện ở bước HOÀN TẤT
  • Trong yêu cầu tạo: không bắt buộc
  • Trong yêu cầu cập nhật: không bắt buộc
deviceUsageDuration

object (Duration)

Lượng tài nguyên thiết bị dùng để thực hiện chương trình kiểm thử.

Đây là mức sử dụng thiết bị được 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ị).

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

  • Phản hồi: hiện diện nếu đã đặt trước đó.
  • Trong yêu cầu tạo: không bắt buộc
  • Trong yêu cầu cập nhật: không bắt buộc
multiStep

object (MultiStep)

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

  • Phản hồi: hiện diện nếu đã đặt trước đó.
  • Trong yêu cầu tạo: không bắt buộc, 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: không bắt buộc

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

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

testExecutionStep

object (TestExecutionStep)

Quá trình thực thi một trình chạy kiểm thử.

toolExecutionStep

object (ToolExecutionStep)

Quá trình thực thi một công cụ (dùng cho các bước mà chúng tôi không hỗ trợ rõ ràng).

Bước thực thi thử nghiệm

Một bước đại diện cho quá trình chạy kiểm thử.

Nền tảng này chấp nhận các tệp xml ant-junit mà dịch vụ sẽ 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 tệp khác. Tuy nhiên, bạn không thể xoá các đường dẫn này.

Người dùng cũng có thể tự thêm kết quả thử nghiệm bằng trường test_result.

Biểu diễn dưới dạng JSON
{
  "testSuiteOverviews": [
    {
      object (TestSuiteOverview)
    }
  ],
  "toolExecution": {
    object (ToolExecution)
  },
  "testIssues": [
    {
      object (TestIssue)
    }
  ],
  "testTiming": {
    object (TestTiming)
  }
}
Trường
testSuiteOverviews[]

object (TestSuiteOverview)

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

Số lượng thông tin tổng quan về bộ kiểm thử tối đa cho mỗi bước là 1.000.

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo: không bắt buộc
  • 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 tuỳ chỉnh publishXunitXmlFiles)
toolExecution

object (ToolExecution)

Đại diện cho quá trình thực thi của trình chạy kiểm thử.

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

  • Đáp lại: luôn đặt
  • Trong yêu cầu tạo/cập nhật: không bắt buộc
testIssues[]

object (TestIssue)

Các vấn đề quan sát được trong quá trình chạy kiểm thử.

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

  • Phản hồi: hiển thị nếu được thiết lập bởi tuỳ chọn tạo hoặc cập nhật
  • Trong yêu cầu tạo/cập nhật: không bắt buộc
testTiming

object (TestTiming)

Phân tích thời gian của lượt chạy kiểm thử.

  • Phản hồi: hiển thị nếu được thiết lập bởi tuỳ chọn tạo hoặc cập nhật
  • Trong yêu cầu tạo/cập nhật: không bắt buộc

Thực thi công cụ

Quá trình thực thi một công cụ tuỳ ý. Đó có thể là một trình chạy kiểm thử hoặc một công cụ sao chép cấu phần phần mềm hoặc mã triển khai.

Biểu diễn dưới dạng JSON
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
Trường
commandLineArguments[]

string

Dòng lệnh đầy đủ được mã hoá kỹ thuật số, bao gồm cả tên chương trình (tương đương với argv trong chương trình C).

  • Phản hồi: hiển thị nếu được đặt theo yêu cầu tạo
  • Trong yêu cầu tạo: không bắt buộc
  • Trong yêu cầu cập nhật: chưa bao giờ đặt
toolLogs[]

object (FileReference)

Thông tin tham chiếu đến bất kỳ nhật ký văn bản thuần tuý nào cũng xuất ra quá trình thực thi công cụ.

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

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

  • Phản hồi: hiển thị nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo: không bắt buộc
  • Trong yêu cầu cập nhật: không bắt buộc, mọi giá trị đã 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 thiết lập sau khi công cụ thoát.

  • Phản hồi: hiển thị nếu được đặt theo yêu cầu tạo/cập nhật
  • Trong yêu cầu tạo: không bắt buộc
  • Trong yêu cầu cập nhật: không bắt buộc, lỗi FAILED_PRE vòng sẽ trả về nếu đã đặt một exitCode.
toolOutputs[]

object (ToolOutputReference)

Thông tin tham chiếu đến các tệp mờ thuộc bất kỳ định dạng nào đầu ra trong quá trình thực thi công cụ.

Số lượng đầu ra của công cụ tối đa cho mỗi bước là 1.000.

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

Mã thoát công cụ

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

Biểu diễn dưới dạng JSON
{
  "number": integer
}
Trường
number

integer

Mã thoát thực thi công cụ. Giá trị 0 có nghĩa là quá trình 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 đặt

Vấn đề thử nghiệm

Đã phát hiện thấy một vấn đề xảy ra trong quá trình chạy kiểm thử.

Biểu diễn dưới dạng JSON
{
  "errorMessage": string,
  "stackTrace": {
    object (StackTrace)
  },
  "warning": {
    object (Any)
  },
  "severity": enum (Severity),
  "type": enum (Type),
  "category": enum (Category)
}
Trường
errorMessage

string

Thông báo ngắn gọn mà con người có thể đọc được, mô tả vấn đề. Bắt buộc.

stackTrace
(deprecated)

object (StackTrace)

Ngừng sử dụng và thay vào đó là các trường dấu vết 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 cung cấp thêm thông tin chi tiết về vấn đề này. Phải luôn là thông báo từ com.google.devtools.toolresults.v1.warnings

severity

enum (Severity)

Tính nghiêm trọng của vấn đề. Bắt buộc.

type

enum (Type)

Loại vấn đề. Bắt buộc.

category

enum (Category)

Danh mục vấn đề. Bắt buộc.

Bất kỳ

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

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

Ví dụ 1: Đóng gói và giải nén thư trong C++.

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

Ví dụ 2: Đóng gói và giải nén thư 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 thư bằng 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 thư 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 loại URL, ví dụ: "foo.bar.com/x/y.z" sẽ mang lại tên loại "y.z".

JSON

Cách biểu diễn JSON của một giá trị Any sử dụng cách biểu diễn thông thường của thông báo được giải tuần tự, được nhúng, với một trường bổ sung @type chứa loại URL. 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 đã nổi tiếng và có cách biểu diễn JSON tuỳ chỉnh, thì cách trình bày đó sẽ được nhúng thêm một trường value chứa JSON tuỳ chỉnh ngoài trường @type. Ví dụ (đối với thông báo google.protobuf.Duration):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Biểu diễn dưới dạng JSON
{
  "typeUrl": string,
  "value": string
}
Trường
typeUrl

string

Tên URL/tài nguyên xác định duy nhất loại thông báo vùng đệm giao thức được chuyển đổi tuần tự. Chuỗi này phải chứa ít nhất một "/" . Phân đoạn cuối cùng của đường dẫn URL phải biểu thị 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ụ: đứng đầ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 tệp nhị phân tất cả các loại mà họ muốn dùng trong bối cảnh Any. Tuy nhiên, đối với những URL sử dụng lược đồ http, https hoặc không có lược đồ nào, bạn có thể tuỳ ý thiết lập một máy chủ kiểu để ánh xạ các URL loại để thông báo định nghĩa như sau:

  • Nếu bạn không cung cấp giao thức nào, thì hệ thống sẽ giả định https.
  • Một HTTP GET trên URL phải mang lại giá trị google.protobuf.Type ở định dạng nhị phân, nếu không sẽ gây ra lỗi.
  • Các ứng dụng được phép lưu kết quả tra cứu vào bộ nhớ đệm dựa trên URL hoặc được biên dịch trước 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 kiểu. (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 chưa có trong bản phát hành protobuf chính thức và không dùng cho loại URL bắt đầu bằng type.googleapis.com.

Bạn có thể dùng các lược đồ không phải http, https (hoặc lược đồ trống) cùng với ngữ nghĩa triển khai cụ thể.

value

string (bytes format)

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

Chuỗi được mã hoá base64.

Tính nghiêm trọng

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

Enum
unspecifiedSeverity Mức độ nghiêm trọng mặc định không xác định. Không được dùng. Chỉ dùng để đánh dấu phiên bản.
info Vấn đề không nghiêm trọng, cung cấp cho người dùng một số thông tin về lần chạy kiểm thử.
suggestion Vấn đề 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 kiểm thử, chẳng hạn như đề xuất sử dụng Vòng lặp trò chơi.
warning Sự cố có thể nghiêm trọng.
severe Vấn đề nghiêm trọng.

Loại

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

Danh mục

Danh mục vấn đề.

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

Thời gian thử nghiệm

Thời gian kiểm thử chia nhỏ để biết các giai đoạn.

Biểu diễn dưới dạng JSON
{
  "testProcessDuration": {
    object (Duration)
  }
}
Trường
testProcessDuration

object (Duration)

Khoảng thời gian chạy quy trình kiểm thử.

  • Phản hồi: hiện diện nếu đã đặt trước đó.
  • Trong yêu cầu tạo/cập nhật: không bắt buộc

Bước thực thi công cụ

Bước công cụ chung 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ấu phần phần mềm từ vị trí này sang vị trí khác.

Biểu diễn dưới dạng JSON
{
  "toolExecution": {
    object (ToolExecution)
  }
}
Trường
toolExecution

object (ToolExecution)

Thực thi công cụ.

  • Phản hồi: hiển thị 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: không bắt buộc

Nhiều bước

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

Biểu diễn dưới dạng JSON
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
Trường
primaryStepId

string

Mã bước của bước chính (gốc), có thể là bước này.

multistepNumber

integer

Số nguyên 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(không bao gồm). Bước chính là 0.

primaryStep

object (PrimaryStep)

Hiển thị nếu đây là bước chính (gốc).

Bước chính

Lưu trữ trạng thái thử nghiệm hợp nhất của nhiều bướ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 dưới dạng JSON
{
  "rollUp": enum (OutcomeSummary),
  "individualOutcome": [
    {
      object (IndividualOutcome)
    }
  ]
}
Trường
rollUp

enum (OutcomeSummary)

Trạng thái thử nghiệm 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)

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

Kết quả cá nhân

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

Biểu diễn dưới dạng JSON
{
  "stepId": string,
  "outcomeSummary": enum (OutcomeSummary),
  "multistepNumber": integer,
  "runDuration": {
    object (Duration)
  }
}
Trường
stepId

string

outcomeSummary

enum (OutcomeSummary)

multistepNumber

integer

Số nguyên 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(không bao gồm). Bước chính là 0.

runDuration

object (Duration)

Khoảng thời gian để chạy bước này.

Phương thức

accessibilityClusters

Liệt kê các cụm hỗ trợ tiếp cận cho một Bước cụ thể

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_PREPRE – 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

Nhận một bước.

getPerfMetricsSummary

Truy xuất một PerfMetricssummary.

list

Liệt kê các bước của một lượt thực thi nhất định.

patch

Cập nhật Bước hiện có bằng thực thể từng phần đã cung cấp.

publishXunitXmlFiles

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