REST Resource: projects.histories.executions.steps

משאב: שלב

שלב מייצג פעולה בודדת המבוצעת כחלק מביצוע. ניתן להשתמש בשלב כדי לייצג ביצוע של כלי (לדוגמה ביצוע רץ מבחן או ביצוע של מהדר).

שלבים יכולים לחפוף (לדוגמה, לשני שלבים עשויה להיות אותה שעת התחלה אם חלק מהפעולות נעשות במקביל).

הנה דוגמה, בואו ניקח בחשבון שיש לנו בנייה מתמשכת היא ביצוע רץ מבחן עבור כל איטרציה. זרימת העבודה תיראה כך: - משתמש יוצר ביצוע עם id 1 - משתמש יוצר TestExecutionStep עם id 100 עבור ביצוע 1 - עדכון משתמש TestExecutionStep עם id 100 כדי להוסיף יומן xml גולמי + השירות מנתח את יומני ה-xml ומחזיר TestExecutionStep עם תוצאות בדיקה מעודכנות. - משתמש עדכן את הסטטוס של TestExecutionStep עם מזהה 100 ל-COMLETE

ניתן לעדכן שלב עד שהמצב שלו מוגדר ל-COMLETE ובנקודות בהן הוא הופך לבלתי ניתן לשינוי.

ייצוג 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.
}
שדות
stepId

string

מזהה ייחודי בתוך ביצוע עבור שלב זה.

מחזירה INVALID_ARGUMENT אם שדה זה מוגדר או מוחלף על ידי המתקשר.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה/עדכון: לעולם לא הוגדר
creationTime

object ( Timestamp )

הזמן שבו נוצר הצעד.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה/עדכון: לעולם לא הוגדר
completionTime

object ( Timestamp )

הזמן שבו סטטוס הצעד הוגדר להשלמת.

ערך זה יוגדר אוטומטית כאשר המצב יעבור ל-COMLETE.

  • בתגובה: הגדר אם מצב הביצוע הוא COMPLETE.
  • בבקשת יצירה/עדכון: לעולם לא הוגדר
name

string

שם קצר הניתן לקריאה על ידי אדם לתצוגה בממשק המשתמש. מקסימום 100 תווים. לדוגמא: מבנה נקי

PRECONDITION_FAILED יוחזר עם יצירת שלב חדש אם הוא חולק את השם וה-dimensionValue שלו עם שלב קיים. אם שני שלבים מייצגים פעולה דומה, אבל יש להם ערכי ממד שונים, הם צריכים לחלוק את אותו השם. לדוגמה, אם אותה קבוצת בדיקות מופעלת בשתי פלטפורמות שונות, לשני השלבים צריך להיות אותו שם.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה: הגדר תמיד
  • בבקשת עדכון: לעולם לא הוגדר
description

string

תיאור של כלי זה לדוגמה: mvn clean package -D skipTests=true

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה/עדכון
  • בבקשת יצירה/עדכון: אופציונלי
state

enum ( State )

המצב ההתחלתי הוא IN_PROGRESS. מעברי המדינה החוקיים היחידים הם * IN_PROGRESS -> השלם

PRECONDITION_FAILED יוחזר אם תתבקש מעבר לא חוקי.

זה חוקי ליצור Step עם מצב מוגדר ל-COMLETE. ניתן להגדיר את המצב ל-COMLETE פעם אחת בלבד. PRECONDITION_FAILED יוחזר אם המצב מוגדר ל-COMLETE מספר פעמים.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה/עדכון: אופציונלי
outcome

object ( Outcome )

סיווג התוצאה, למשל ל-SUCCESS או FAILURE

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה/עדכון
  • בבקשת יצירה/עדכון: אופציונלי
hasImages

boolean

האם כל אחת מהפלטים של שלב זה היא תמונות שניתן להביא את התמונות הממוזערות שלהן באמצעות thumbnails.list.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה/עדכון: לעולם לא הוגדר
labels

map (key: string, value: string)

צמדי מפתח/ערך שרירותיים שסופקו על ידי המשתמש המשויכים לשלב.

המשתמשים אחראים לניהול מרחב השמות של המפתחות כך שמפתחות לא יתנגשו בטעות.

INVALID_ARGUMENT יוחזר אם מספר התוויות יעלה על 100 או אם האורך של כל אחד מהמפתחות או הערכים עולה על 100 תווים.

  • בתגובה: תמיד מוגדר
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: אופציונלי; כל זוג מפתח/ערך חדש יתווסף למפה, וכל ערך חדש עבור מפתח קיים יעדכן את ערך המפתח הזה

אובייקט המכיל רשימה של "key": value . דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

dimensionValue

map (key: string, value: string)

אם לביצוע המכיל את השלב הזה יש הגדרת dimension_definition כלשהי, שדה זה מאפשר לילד לציין את ערכי המידות.

המפתחות חייבים להתאים בדיוק ל-dimension_definition של הביצוע.

לדוגמה, אם לביצוע יש dimension_definition = ['attempt', 'device'] אז שלב חייב להגדיר ערכים עבור מימדים אלה, למשל. dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

אם שלב אינו משתתף בממד אחד של המטריצה, הערך עבור ממד זה צריך להיות מחרוזת ריקה. לדוגמה, אם אחת הבדיקות מבוצעת על ידי רץ שאינו תומך בניסיונות חוזרים, לשלב יכול להיות dimensionValue = ['attempt': '', 'device': 'Nexus 6']

אם השלב אינו משתתף באף מימד של המטריצה, הוא עלול להשאיר את dimensionValue לא מוגדר.

PRECONDITION_FAILED יוחזר אם אחד מהמפתחות לא קיים ב-dimension_definition של הביצוע.

PRECONDITION_FAILED יוחזר אם לשלב אחר בביצוע זה כבר יש את אותו שם ו-dimensionValue, אך שונה בשדות נתונים אחרים, לדוגמה, שדה הצעד שונה.

PRECONDITION_FAILED יוחזר אם dimensionValue מוגדר, וקיימת dimension_definition בביצוע שלא צוין כאחד המפתחות.

  • בתגובה: קיים אם הוגדר על ידי יצירה
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: לעולם לא הוגדר

אובייקט המכיל רשימה של "key": value . דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

runDuration

object ( Duration )

כמה זמן לקח לצעד הזה לפעול.

אם לא מוגדר, זה מוגדר להפרש בין creationTime ל-comletionTime כאשר השלב מוגדר למצב COMPLETE. במקרים מסוימים, ראוי להגדיר ערך זה בנפרד: לדוגמה, אם נוצר שלב, אך הפעולה שהוא מייצג תור למספר דקות לפני ביצועה, ראוי לא לכלול את הזמן שהוקדש בתור. runDuration.

PRECONDITION_FAILED יוחזר אם ינסה להגדיר runDuration בשלב שכבר הוגדר שדה זה.

  • בתגובה: קיים אם הוגדר בעבר; תמיד נוכח בשלב השלם
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: אופציונלי
deviceUsageDuration

object ( Duration )

כמה משאב המכשיר משמש לביצוע הבדיקה.

זהו השימוש במכשיר המשמש למטרת חיוב, השונה מ-runDuration, לדוגמה, כשל בתשתית לא יחויב עבור השימוש במכשיר.

PRECONDITION_FAILED יוחזר אם ינסה להגדיר device_usage בשלב שכבר הוגדר שדה זה.

  • בתגובה: קיים אם הוגדר בעבר.
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: אופציונלי
multiStep

object ( MultiStep )

פרטים כאשר מספר שלבים מופעלים עם אותה תצורה כמו קבוצה. ניתן להשתמש בפרטים אלה כדי לזהות מאיזו קבוצה שלב זה הוא חלק. זה גם מזהה את 'השלב הראשוני' של הקבוצות אשר מוסיף את כל חברי הקבוצה.

  • בתגובה: קיים אם הוגדר בעבר.
  • בצור בקשה: אופציונלי, הגדר אם שלב זה בוצע יותר מפעם אחת.
  • בבקשת עדכון: אופציונלי

step שדה האיחוד.

step יכול להיות רק אחד מהאפשרויות הבאות:

testExecutionStep

object ( TestExecutionStep )

הוצאה להורג של רץ מבחן.

toolExecutionStep

object ( ToolExecutionStep )

ביצוע של כלי (המשמש עבור שלבים שאינם תומכים במפורש).

TestExecutionStep

שלב המייצג ריצת בדיקות.

הוא מקבל קבצי xml ant-junit אשר ינותחו לתוצאות בדיקה מובנות על ידי השירות. נתיבים של קבצי Xml מתעדכנים כדי להוסיף קבצים נוספים, אולם לא ניתן למחוק אותם.

משתמשים יכולים גם להוסיף תוצאות בדיקה באופן ידני באמצעות השדה test_result.

ייצוג JSON
{
  "testSuiteOverviews": [
    {
      object (TestSuiteOverview)
    }
  ],
  "toolExecution": {
    object (ToolExecution)
  },
  "testIssues": [
    {
      object (TestIssue)
    }
  ],
  "testTiming": {
    object (TestTiming)
  }
}
שדות
testSuiteOverviews[]

object ( TestSuiteOverview )

רשימת תכני סקירה כללית של חבילת הבדיקה. זה יכול להיות מנותח מיומן xUnit XML על ידי שרת, או להעלות ישירות על ידי המשתמש. יש לקרוא להפניות אלה רק כאשר חבילות הבדיקה ממנותחות או מועלות במלואן.

המספר המרבי המותר של סקירות כלליות של חבילות בדיקה בכל שלב הוא 1000.

  • בתגובה: תמיד מוגדר
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: לעולם לא (השתמש במקום זאת בשיטה מותאמת אישית של publishXunitXmlFiles)
toolExecution

object ( ToolExecution )

מייצג את הביצוע של רץ המבחן.

קוד היציאה של כלי זה ישמש כדי לקבוע אם המבחן עבר.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה/עדכון: אופציונלי
testIssues[]

object ( TestIssue )

בעיות שנצפו במהלך ביצוע הבדיקה.

לדוגמה, אם האפליקציה לנייד הנבדקת קרסה במהלך הבדיקה, ניתן להקליט כאן את הודעת השגיאה ואת תוכן מעקב הערימה כדי לסייע באיתור באגים.

  • בתגובה: קיים אם הוגדר על ידי יצירה או עדכון
  • בבקשת יצירה/עדכון: אופציונלי
testTiming

object ( TestTiming )

התמוטטות התזמון של ביצוע הבדיקה.

  • בתגובה: קיים אם הוגדר על ידי יצירה או עדכון
  • בבקשת יצירה/עדכון: אופציונלי

ToolExecution

ביצוע של כלי שרירותי. זה יכול להיות רץ מבחן או כלי שמעתיק חפצים או פריסת קוד.

ייצוג JSON
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
שדות
commandLineArguments[]

string

שורת הפקודה האסימון המלאה כולל שם התוכנית (שווה ערך ל-argv בתוכנית C).

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: לעולם לא הוגדר
toolLogs[]

object ( FileReference )

הפניות לכל יומני טקסט רגיל מוציאות את ביצוע הכלי.

ניתן להגדיר שדה זה לפני יציאת הכלי על מנת לקבל גישה לתצוגה חיה של היומנים בזמן שהכלי פועל.

המספר המרבי המותר של יומני כלים בכל שלב הוא 1000.

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה/עדכון
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: אופציונלי, כל ערך שסופק יצורף לרשימה הקיימת
exitCode

object ( ToolExitCode )

קוד יציאה לביצוע כלי. שדה זה יוגדר לאחר יציאת הכלי.

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה/עדכון
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: אופציונלי, תוחזר שגיאת FAILED_PRECONDITION אם כבר הוגדר exitCode.
toolOutputs[]

object ( ToolOutputReference )

הפניות לקבצים אטומים בכל פורמט פלט על ידי ביצוע הכלי.

המספר המרבי המותר של יציאות כלי בכל שלב הוא 1000.

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה/עדכון
  • בצור בקשה: אופציונלי
  • בבקשת עדכון: אופציונלי, כל ערך שסופק יצורף לרשימה הקיימת

ToolExitCode

צא מקוד מהפעלת כלי.

ייצוג JSON
{
  "number": integer
}
שדות
number

integer

קוד יציאה לביצוע כלי. ערך 0 פירושו שהביצוע הצליח.

  • בתגובה: תמיד מוגדר
  • בבקשת יצירה/עדכון: הגדר תמיד

בעיית מבחן

זוהתה בעיה המתרחשת במהלך ביצוע בדיקה.

ייצוג JSON
{
  "errorMessage": string,
  "stackTrace": {
    object (StackTrace)
  },
  "warning": {
    object (Any)
  },
  "severity": enum (Severity),
  "type": enum (Type),
  "category": enum (Category)
}
שדות
errorMessage

string

הודעה קצרה לקריאה אנושית המתארת ​​את הנושא. נדרש.

stackTrace
(deprecated)

object ( StackTrace )

הוצא משימוש לטובת שדות מעקב מחסנית בתוך אזהרות ספציפיות.

warning

object ( Any )

הודעת אזהרה עם פרטים נוספים על הבעיה. צריכה להיות תמיד הודעה מ-com.google.devtools.toolresults.v1.warnings

severity

enum ( Severity )

חומרת הבעיה. נדרש.

type

enum ( Type )

סוג הנושא. נדרש.

category

enum ( Category )

קטגוריית הנושא. נדרש.

כל

Any מכיל הודעת חוצץ פרוטוקול מסודרת שרירותית יחד עם כתובת URL שמתארת ​​את סוג ההודעה המסודרת.

ספריית Protobuf מספקת תמיכה לאריזה/פירוק כל ערכים בצורה של פונקציות שירות או שיטות נוספות שנוצרו מסוג Any.

דוגמה 1: ארוז ופרק הודעה ב-C++.

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

דוגמה 2: ארוז ופרק הודעה ב-Java.

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

דוגמה 3: ארוז ופרק הודעה ב-Python.

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

דוגמה 4: ארוז ופרק הודעה ב-Go

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

שיטות החבילה המסופקות על ידי ספריית protobuf ישתמשו כברירת מחדל ב-'type.googleapis.com/full.type.name' ככתובת ה-URL של הסוג, ושיטות ה-Funpack ישתמשו רק בשם הסוג המלא לאחר ה-'/' האחרון בכתובת ה-URL של הסוג, לדוגמה "foo.bar.com/x/yz" יניב את שם הסוג "yz".

JSON

ייצוג ה-JSON של ערך Any משתמש בייצוג הרגיל של ההודעה המוטמעת, עם שדה נוסף @type המכיל את כתובת ה-URL של הסוג. דוגמא:

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

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

אם סוג ההודעה המוטבעת ידוע ויש לו ייצוג JSON מותאם אישית, ייצוג זה יוטמע תוך הוספת value שדה המחזיק את ה-JSON המותאם אישית בנוסף לשדה @type . דוגמה (להודעה google.protobuf.Duration ):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
ייצוג JSON
{
  "typeUrl": string,
  "value": string
}
שדות
typeUrl

string

כתובת URL/שם משאב המזהה באופן ייחודי את סוג הודעת מאגר הפרוטוקול המסודר. מחרוזת זו חייבת להכיל לפחות תו "/" אחד. הפלח האחרון של הנתיב של כתובת האתר חייב לייצג את השם המלא של הסוג (כמו ב- path/google.protobuf.Duration ). השם צריך להיות בצורה קנונית (למשל, "." מוביל לא מתקבל).

בפועל, צוותים בדרך כלל מקימים מראש לבינארי את כל הסוגים שהם מצפים שהוא ישתמש בהקשר של Any. עם זאת, עבור כתובות URL המשתמשות בסכימת http , https , או ללא סכמה, ניתן להגדיר שרת סוגים הממפה כתובות אתרים מסוגים להגדרות הודעות באופן הבא:

  • אם לא מסופקת סכמה, ההנחה היא https .
  • HTTP GET בכתובת האתר חייב להניב ערך google.protobuf.Type בפורמט בינארי, או ליצור שגיאה.
  • יישומים רשאים לאחסן תוצאות חיפוש במטמון על סמך כתובת האתר, או להרכיב אותן מראש לקובץ בינארי כדי להימנע מכל חיפוש. לכן, יש לשמור על תאימות בינארית בשינויים בסוגים. (השתמש בשמות סוגים עם גרסאות כדי לנהל שינויים שבירה).

הערה: פונקציונליות זו אינה זמינה כעת במהדורת ה-protobuf הרשמית, והיא אינה משמשת עבור סוג כתובות אתרים המתחילות ב-type.googleapis.com.

ניתן להשתמש בסכמות שאינן http , https (או הסכמה הריקה) עם סמנטיקה ספציפית ליישום.

value

string ( bytes format)

חייב להיות מאגר פרוטוקול מסודר חוקי מהסוג שצוין לעיל.

מחרוזת מקודדת base64.

חוּמרָה

חומרת הבעיות.

תקצירים
unspecifiedSeverity ברירת מחדל לא מוגדרת. אל תשתמש. לניהול גרסאות בלבד.
info בעיה לא קריטית, מספקת למשתמשים מידע על ריצת הבדיקה.
suggestion בעיה לא קריטית, מספקת למשתמשים כמה רמזים לשיפור חווית הבדיקה שלהם, למשל, הצעה להשתמש ב-Game Loops.
warning נושא פוטנציאלי קריטי.
severe בעיה קריטית.

סוּג

סוגי בעיות.

תקצירים
unspecifiedType סוג ברירת מחדל לא מוגדר. אל תשתמש. לניהול גרסאות בלבד.
fatalException הנושא הוא חריג קטלני.
nativeCrash הבעיה היא התרסקות מקומית.
anr הבעיה היא קריסת ANR.
unusedRoboDirective הבעיה היא הוראת רובו שאינה בשימוש.
compatibleWithOrchestrator הבעיה היא הצעה להשתמש בתזמר.
launcherActivityNotFound בעיה במציאת פעילות משגר
startActivityNotFound בעיה בפתרון כוונה שסופק על ידי המשתמש להתחיל פעילות
incompleteRoboScriptExecution תסריט רובו לא הוצא לפועל במלואו.
completeRoboScriptExecution תסריט רובו בוצע במלואו ובהצלחה.
failedToInstall התקנת ה-APK נכשלה.
nonSdkApiUsageViolation האפליקציה ניגשה ל-API שאינו sdk.
nonSdkApiUsageReport האפליקציה ניגשה ל-API שאינו sdk (דוח מפורט חדש)
encounteredNonAndroidUiWidgetScreen סריקת רובו נתקלה במסך אחד לפחות עם אלמנטים שאינם ווידג'טים של ממשק אנדרואיד.
encounteredLoginScreen סריקת רובו נתקלה לפחות במסך כניסה סביר אחד.
performedGoogleLogin רובו נכנס עם Google.
iosException אפליקציית iOS קרסה עם חריג.
iosCrash אפליקציית iOS קרסה ללא יוצא מן הכלל (למשל נהרגה).
performedMonkeyActions זחילת רובו כללה ביצוע כמה פעולות קוף.
usedRoboDirective Robo crawl השתמש בהנחיית רובו.
usedRoboIgnoreDirective סריקה של Robo השתמשה בהנחיית Robo כדי להתעלם מאלמנט ממשק משתמש.
insufficientCoverage רובו לא סרק חלקים שעלולים להיות חשובים באפליקציה.
inAppPurchases סריקת רובו כללה כמה רכישות בתוך האפליקציה.
crashDialogError זוהתה תיבת דו-שיח קריסה במהלך ביצוע הבדיקה
uiElementsTooDeep עומק אלמנט ממשק המשתמש גדול מהסף
blankScreen מסך ריק נמצא בסריקת רובו
overlappingUiElements רכיבי ממשק משתמש חופפים נמצאים בסריקת Robo
unityException זוהתה חריגה של Unity שלא נתפסה (אפליקציות אלו אינן קורסות).
deviceOutOfMemory זוהה במכשיר שנגמר הזיכרון
logcatCollectionError זוהו בעיות במהלך איסוף logcat
detectedAppSplashScreen רובו זיהה מסך הפתיחה שסופק על ידי האפליקציה (לעומת מסך הפתיחה של מערכת ההפעלה אנדרואיד).

קטגוריה

קטגוריות של בעיות.

תקצירים
unspecifiedCategory קטגוריית ברירת מחדל לא מוגדרת. אל תשתמש. לניהול גרסאות בלבד.
common הבעיה אינה ספציפית לסוג בדיקה מסוים (למשל, תאונה מקומית).
robo הבעיה היא ספציפית לריצת רובו.

טסט טיימינג

תזמון בדיקות נשבר כדי לדעת שלבים.

ייצוג JSON
{
  "testProcessDuration": {
    object (Duration)
  }
}
שדות
testProcessDuration

object ( Duration )

כמה זמן לקח להפעיל את תהליך הבדיקה.

  • בתגובה: קיים אם הוגדר בעבר.
  • בבקשת יצירה/עדכון: אופציונלי

ToolExecutionStep

שלב כלי כללי לשימוש עבור קבצים בינאריים איננו תומכים במפורש. לדוגמה: הפעלת cp כדי להעתיק חפצים ממיקום אחד לאחר.

ייצוג JSON
{
  "toolExecution": {
    object (ToolExecution)
  }
}
שדות
toolExecution

object ( ToolExecution )

ביצוע כלי.

  • בתגובה: קיים אם הוגדר על ידי בקשת יצירה/עדכון
  • בבקשת יצירה/עדכון: אופציונלי

MultiStep

פרטים כאשר מספר שלבים מופעלים עם אותה תצורה כמו קבוצה.

ייצוג JSON
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
שדות
primaryStepId

string

מזהה שלב של השלב הראשי (המקורי), שעשוי להיות השלב הזה.

multistepNumber

integer

אינטנט ייחודי שניתן לכל שלב. נע בין 0 (כולל) למספר הכולל של שלבים (בלעדי). השלב העיקרי הוא 0.

primaryStep

object ( PrimaryStep )

הצג אם זה שלב ראשוני (מקורי).

שלב ראשי

מאחסן סטטוס בדיקת אוסף של שלבים מרובים שהופעלו כקבוצה ותוצאה של כל שלב בודד.

ייצוג JSON
{
  "rollUp": enum (OutcomeSummary),
  "individualOutcome": [
    {
      object (IndividualOutcome)
    }
  ]
}
שדות
rollUp

enum ( OutcomeSummary )

סטטוס בדיקת אוסף של שלבים מרובים שהופעלו עם אותה תצורה כמו קבוצה.

individualOutcome[]

object ( IndividualOutcome )

זיהוי שלב ותוצאה של כל שלב בנפרד.

תוצאה אישית

זיהוי שלב ותוצאה של כל שלב בודד שהופעל כקבוצה עם שלבים אחרים באותה תצורה.

ייצוג JSON
{
  "stepId": string,
  "outcomeSummary": enum (OutcomeSummary),
  "multistepNumber": integer,
  "runDuration": {
    object (Duration)
  }
}
שדות
stepId

string

outcomeSummary

enum ( OutcomeSummary )

multistepNumber

integer

אינטנט ייחודי שניתן לכל שלב. נע בין 0 (כולל) למספר הכולל של שלבים (בלעדי). השלב העיקרי הוא 0.

runDuration

object ( Duration )

כמה זמן לקח לצעד הזה לפעול.

שיטות

accessibilityClusters

מפרט אשכולות נגישות עבור שלב נתון

עשוי להחזיר כל אחד מקודי השגיאה הקנוניים הבאים:

  • PERMISSION_DENIED - אם המשתמש אינו מורשה לקרוא את הפרויקט
  • INVALID_ARGUMENT - אם הבקשה שגויה
  • FAILED_PRECONDITION - אם ארגומנט בבקשה אינו חוקי; לְמָשָׁל

create

יוצר שלב.

get

מקבל צעד.

getPerfMetricsSummary

מאחזר PerfMetricsSummary.

list

מפרט את השלבים עבור ביצוע נתון.

patch

מעדכן שלב קיים עם הישות החלקית שסופקה.

publishXunitXmlFiles

פרסם קבצי xml לשלב קיים.