- Tài nguyên: Bước
- TestExecutionStep
- Thực thi công cụ
- ToolExitCode
- TestIssue (Vấn đề kiểm thử)
- Bất kỳ
- Tính nghiêm trọng
- Loại
- Danh mục
- TestTiming
- ToolExecutionStep
- Nhiều bước
- PrimaryStep (Bước chính)
- Kết quả cho từng cá nhân
- Phương thức
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 ( |
Trường | |
---|---|
stepId |
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 đè.
|
creationTime |
Thời điểm tạo bước này.
|
completionTime |
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.
|
name |
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.
|
description |
Nội dung mô tả của công cụ này. Ví dụ: mvn sạch package -D ignoreTests=true
|
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.
|
outcome |
Phân loại kết quả, ví dụ thành THÀNH CÔNG hoặc LỖI
|
hasImages |
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.
|
labels |
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ự.
Một đối tượng chứa danh sách các cặp |
dimensionValue |
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ó 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ó 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á.
Một đối tượng chứa danh sách các cặp |
runDuration |
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.
|
deviceUsageDuration |
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.
|
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.
|
Trường kết hợp
|
|
testExecutionStep |
Quá trình thực thi một trình chạy kiểm thử. |
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 ( |
Trường | |
---|---|
testSuiteOverviews[] |
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.
|
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.
|
testIssues[] |
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.
|
testTiming |
Phân tích thời gian của lượt chạy kiểm thử.
|
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 ( |
Trường | |
---|---|
commandLineArguments[] |
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).
|
toolLogs[] |
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.
|
exitCode |
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.
|
toolOutputs[] |
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.
|
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 |
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.
|
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 ( |
Trường | |
---|---|
errorMessage |
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 |
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 |
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 |
Tính nghiêm trọng của vấn đề. Bắt buộc. |
type |
Loại vấn đề. Bắt buộc. |
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 |
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 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 đồ
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 |
value |
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. |
availableDeepLinks |
Chương trình thử nghiệm ứng dụng có các đường liên kết sâu, nhưng không có đường liên kết nào được cung cấp cho Robo. |
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 ( |
Trường | |
---|---|
testProcessDuration |
Khoảng thời gian chạy quy trình kiểm thử.
|
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 ( |
Trường | |
---|---|
toolExecution |
Thực thi công 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 ( |
Trường | |
---|---|
primaryStepId |
Mã bước của bước chính (gốc), có thể là bước này. |
multistepNumber |
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 |
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 ( |
Trường | |
---|---|
rollUp |
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[] |
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 ( |
Trường | |
---|---|
stepId |
|
outcomeSummary |
|
multistepNumber |
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 |
Khoảng thời gian để chạy bước này. |
Phương thức |
|
---|---|
|
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:
|
|
Tạo một Bước. |
|
Nhận một bước. |
|
Truy xuất một PerfMetricssummary. |
|
Liệt kê các bước của một lượt thực thi nhất định. |
|
Cập nhật Bước hiện có bằng thực thể từng phần đã cung cấp. |
|
Xuất bản tệp xml sang Bước hiện có. |