REST Resource: projects.testMatrices

משאב: TestMatrix

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

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

string

פלט בלבד. מזהה ייחודי שהוגדר על ידי השירות.

projectId

string

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

clientInfo

object ( ClientInfo )

מידע על הלקוח שהפעיל את הבדיקה.

testSpecification

object ( TestSpecification )

נדרש. כיצד להפעיל את הבדיקה.

environmentMatrix

object ( EnvironmentMatrix )

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

testExecutions[]

object ( TestExecution )

פלט בלבד. רשימת ביצועי הבדיקה שהשירות יוצר עבור מטריצה ​​זו.

resultStorage

object ( ResultStorage )

נדרש. היכן כתובות התוצאות עבור המטריצה.

state

enum ( TestState )

פלט בלבד. מציין את ההתקדמות הנוכחית של מטריצת הבדיקה.

timestamp

string ( Timestamp format)

פלט בלבד. הזמן שבו נוצרה תחילה מטריצת בדיקה זו.

חותמת זמן בפורמט RFC3339 UTC "Zulu", עם רזולוציה של ננו-שניות ועד תשע ספרות חלקיות. דוגמאות: "2014-10-02T15:01:23Z" ו- "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

פלט בלבד. מתאר מדוע המטריצה ​​נחשבת לא חוקית. שימושי רק עבור מטריצות במצב INVALID.

flakyTestAttempts

integer

מספר הפעמים ש-TestExecution צריך להתבצע מחדש אם אחד או יותר ממקרי הבדיקה שלו נכשלים מסיבה כלשהי. המספר המרבי של שידורים חוזרים המותרים הוא 10.

ברירת המחדל היא 0, מה שמרמז שאין שידורים חוזרים.

outcomeSummary

enum ( OutcomeSummary )

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

failFast

boolean

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

בדרך כלל, נעשים 2 ניסיונות או יותר אם מזוהה בעיית תשתית אפשרית.

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

ClientInfo

מידע על הלקוח שהפעיל את הבדיקה.

ייצוג JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
שדות
name

string

נדרש. שם לקוח, כגון gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

רשימת המידע המפורט על הלקוח.

ClientInfoDetail

צמד מפתח-ערך של מידע מפורט על הלקוח שהפעיל את הבדיקה. דוגמאות: {'Version', '1.0'}, {'Release Track', 'BETA'}.

ייצוג JSON
{
  "key": string,
  "value": string
}
שדות
key

string

נדרש. המפתח של מידע מפורט על הלקוח.

value

string

נדרש. הערך של מידע מפורט על הלקוח.

מפרט בדיקה

תיאור של אופן הפעלת הבדיקה.

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

string ( Duration format)

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

משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' s '. דוגמה: "3.5s" .

disableVideoRecording

boolean

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

disablePerformanceMetrics

boolean

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

setup שדה איחוד. דרישות הגדרת הבדיקה. setup יכולה להיות רק אחת מהאפשרויות הבאות:
testSetup

object ( TestSetup )

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

iosTestSetup

object ( IosTestSetup )

דרישות הגדרת בדיקה עבור iOS.

test שטח של האיחוד. נדרש. סוג הבדיקה שיש להפעיל. test יכולה להיות רק אחת מהאפשרויות הבאות:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

מבחן מכשור אנדרואיד.

androidRoboTest

object ( AndroidRoboTest )

מבחן רובו לאנדרואיד.

androidTestLoop

object ( AndroidTestLoop )

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

iosXcTest

object ( IosXcTest )

בדיקת iOS XCT, באמצעות קובץ ‎.xctestrun.

iosTestLoop

object ( IosTestLoop )

אפליקציית iOS עם לולאת בדיקה.

הגדרות בדיקה

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

ייצוג JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
שדות
filesToPush[]

object ( DeviceFile )

רשימת קבצים שיש לדחוף למכשיר לפני תחילת הבדיקה.

directoriesToPull[]

string

רשימת ספריות במכשיר להעלאה ל-GCS בתום הבדיקה; הם חייבים להיות נתיבים מוחלטים תחת /sdcard, /storage או /data/local/tmp. שמות הנתיבים מוגבלים לתווים az AZ 0-9 _ - . + ו/

הערה: הנתיבים /sdcard ו-/data יהיו זמינים ויטופלו כהחלפות נתיב מרומז. לדוגמה, אם /sdcard במכשיר מסוים אינו ממפה לאחסון חיצוני, המערכת תחליף אותו בקידומת נתיב האחסון החיצוני עבור אותו התקן.

additionalApks[]

object ( Apk )

APKs להתקנה בנוסף לאלו שנבדקו ישירות. כרגע מוגבל ל-100.

account

object ( Account )

המכשיר יהיה מחובר לחשבון זה למשך הבדיקה.

networkProfile

string

פרופיל תעבורת הרשת המשמש להפעלת הבדיקה. ניתן לשאול פרופילי רשת זמינים באמצעות סוג הסביבה NETWORK_CONFIGURATION בעת קריאה ל-TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

משתני סביבה להגדרה עבור הבדיקה (חל רק עבור בדיקות מכשור).

systrace
(deprecated)

object ( SystraceSetup )

תצורת Systrace להרצה. הוצא משימוש: Systrace השתמשה ב-Python 2 ששקעה ב-2020-01-01. Systrace אינה נתמכת עוד ב-Cloud Testing API, ולא יסופק קובץ Systrace בתוצאות.

dontAutograntPermissions

boolean

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

DeviceFile

תיאור קובץ יחיד של מכשיר.

ייצוג 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.
}
שדות
device_file איחוד . נדרש. device_file יכול להיות רק אחד מהבאים:
obbFile

object ( ObbFile )

הפניה לקובץ כתם בינארי אטום.

regularFile

object ( RegularFile )

הפניה לקובץ רגיל.

ObbFile

קובץ כתם בינארי אטום להתקנה במכשיר לפני תחילת הבדיקה.

ייצוג JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
שדות
obbFileName

string

נדרש. שם קובץ OBB אשר חייב להתאים לפורמט כפי שצוין על ידי Android, למשל [main|patch].0300110.com.example.android.obb אשר יותקן ב-<shared-storage>/Android/obb/<package-name>/ על המכשיר.

obb

object ( FileReference )

נדרש. קבצים אטומים בינאריים (OBB) להתקנה במכשיר.

הפנית קובץ

הפניה לקובץ, המשמשת לקלט של משתמשים.

ייצוג JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
שדות
file שדה האיחוד. נדרש. הפניה לקובץ. file יכול להיות רק אחד מהבאים:
gcsPath

string

נתיב לקובץ ב-Google Cloud Storage. דוגמה: gs://build-app-1414623860166/app%40debug-unaligned.apk נתיבים אלה צפויים להיות מקודדים בכתובת אתר (קידוד באחוזים)

רגיל קובץ

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

ייצוג JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
שדות
content

object ( FileReference )

נדרש. קובץ המקור.

devicePath

string

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

${EXTERNAL_STORAGE}, /sdcard או /storage

${ANDROID_DATA}/local/tmp, או /data/local/tmp

ציון נתיב מחוץ לעצי ספריות אלה אינו חוקי.

הנתיבים /sdcard ו-/data יהיו זמינים ויטופלו כהחלפות נתיב מרומז. לדוגמה, אם /sdcard במכשיר מסוים אינו ממפה לאחסון חיצוני, המערכת תחליף אותו בקידומת נתיב האחסון החיצוני של אותו התקן ותעתיק את הקובץ לשם.

מומלץ מאוד להשתמש ב- Environment API באפליקציה ובקוד בדיקה כדי לגשת לקבצים במכשיר בצורה ניידת.

Apk

קובץ חבילת אנדרואיד להתקנה.

ייצוג JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
שדות
location

object ( FileReference )

הנתיב ל-APK שיותקן במכשיר לפני תחילת הבדיקה.

packageName

string

חבילת ה-Java עבור ה-APK להתקנה. הערך נקבע על ידי בחינת מניפסט הבקשה.

חֶשְׁבּוֹן

מזהה חשבון וכיצד להיכנס אליו.

ייצוג 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.
}
שדות
שדה האיחוד account_type . נדרש. סוג החשבון, לפי מה הוא מיועד (למשל גוגל) ומהו מנגנון הכניסה שלו (למשל שם משתמש וסיסמה). account_type יכול להיות רק אחד מהבאים:
googleAuto

object ( GoogleAuto )

חשבון התחברות אוטומטי לגוגל.

GoogleAuto

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

משתנה הסביבה

זוג מפתח-ערך עבר כמשתנה סביבה למבחן.

ייצוג JSON
{
  "key": string,
  "value": string
}
שדות
key

string

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

value

string

ערך עבור משתנה הסביבה.

SystraceSetup

ייצוג JSON
{
  "durationSeconds": integer
}
שדות
durationSeconds
(deprecated)

integer

משך סיסטרס בשניות. צריך להיות בין 1 ל-30 שניות. 0 משבית את systrace.

IosTestSetup

תיאור כיצד להגדיר מכשיר iOS לפני הפעלת הבדיקה.

ייצוג JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
שדות
networkProfile

string

פרופיל תעבורת הרשת המשמש להפעלת הבדיקה. ניתן לשאול פרופילי רשת זמינים באמצעות סוג הסביבה NETWORK_CONFIGURATION בעת קריאה ל-TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

אפליקציות iOS להתקנה בנוסף לאלו שנבדקו ישירות.

pushFiles[]

object ( IosDeviceFile )

רשימת קבצים שיש לדחוף למכשיר לפני תחילת הבדיקה.

pullDirectories[]

object ( IosDeviceFile )

רשימת ספריות במכשיר להעלאה ל-Cloud Storage בסוף הבדיקה.

ספריות צריכות להיות בספרייה משותפת (כגון /private/var/mobile/Media) או בתוך ספרייה נגישה בתוך מערכת הקבצים של האפליקציה (כגון /Documents) על ידי ציון מזהה החבילה.

IosDeviceFile

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

ייצוג JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
שדות
content

object ( FileReference )

קובץ המקור

bundleId

string

מזהה החבילה של האפליקציה שבה נמצא הקובץ הזה.

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

devicePath

string

מיקום הקובץ במכשיר, בתוך מערכת הקבצים בארגז החול של האפליקציה

AndroidInstrumentationTest

בדיקה של אפליקציית אנדרואיד שיכולה לשלוט ברכיב אנדרואיד ללא תלות במחזור החיים הרגיל שלו. מבחני מכשור אנדרואיד מריצים APK של אפליקציה ובודקים APK בתוך אותו תהליך במכשיר Android וירטואלי או פיזי. הם גם מציינים כיתת רץ מבחן, כגון com.google.GoogleTestRunner, שיכולה להשתנות בהתאם למסגרת המכשור הספציפית שנבחרה.

ראה https://developer.android.com/training/testing/fundamentals למידע נוסף על סוגי מבחני אנדרואיד.

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

object ( FileReference )

נדרש. ה-APK המכיל את קוד הבדיקה לביצוע.

appPackageId

string

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

testPackageId

string

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

testRunnerClass

string

כיתת InstrumentationTestRunner. ערך ברירת המחדל נקבע על ידי בחינת המניפסט של היישום.

testTargets[]

string

כל יעד חייב להיות מוסמך במלואו עם שם החבילה או שם המחלקה, באחד מהפורמטים הבאים:

  • "שם חבילה"
  • "class packageName.class_name"
  • "class packageName.class_name#method_name"

אם ריק, כל היעדים במודול יופעלו.

orchestratorOption

enum ( OrchestratorOption )

האפשרות האם להריץ כל מבחן במסגרת הפעלת המכשור שלו עם Android Test Orchestrator או לא. ** Orchestrator תואם רק ל-AndroidJUnitRunner גרסה 1.1 ומעלה! ** Orchestrator מציע את ההטבות הבאות:

  • אין מצב משותף
  • קריסות מבודדות
  • יומנים מוגדרים לפי בדיקה

ראה https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator למידע נוסף על Android Test Orchestrator.

אם לא נקבע, המבחן יתנהל ללא המתזמר.

shardingOption

object ( ShardingOption )

אפשרות להריץ בדיקות במספר רסיסים במקביל.

app_under_test של האיחוד שדה . נדרש. app_under_test יכול להיות רק אחד מהאפשרויות הבאות:
appApk

object ( FileReference )

ה-APK עבור האפליקציה הנבדקת.

appBundle

object ( AppBundle )

חבילת אפליקציות מרובת APK עבור האפליקציה הנבדקת.

AppBundle

פורמט קובץ Android App Bundle, המכיל קובץ BundleConfig.pb, ספריית מודול בסיס, אפס או יותר ספריות של מודול תכונות דינמיות.

ראה https://developer.android.com/guide/app-bundle/build להנחיות לבניית חבילות אפליקציות.

ייצוג JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
שדות
bundle שדה איחוד . נדרש. מידע על מיקום חבילה. bundle יכולה להיות רק אחת מהאפשרויות הבאות:
bundleLocation

object ( FileReference )

קובץ ‎.aab המייצג את חבילת האפליקציות הנבדקת.

תזמורת אפשרות

מציין כיצד לבצע את הבדיקה.

תקצירים
ORCHESTRATOR_OPTION_UNSPECIFIED ערך ברירת מחדל: השרת יבחר את המצב. כרגע מרמז שהמבחן יתנהל ללא המתזמר. בעתיד, כל מבחני המכשור יופעלו עם המתזמר. השימוש בתזמור מעודד מאוד בגלל כל היתרונות שהוא מציע.
USE_ORCHESTRATOR הרץ מבחן באמצעות מתזמר. ** תואם רק ל-AndroidJUnitRunner גרסה 1.1 ומעלה! **מומלץ.
DO_NOT_USE_ORCHESTRATOR הרץ מבחן ללא שימוש בתזמור.

ShardingOption

אפשרויות להפעלת פיצול.

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

option שדה איחוד.

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

uniformSharding

object ( UniformSharding )

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

manualSharding

object ( ManualSharding )

מחלק מקרי בדיקה לקבוצות שצוינו של חבילות, מחלקות ו/או שיטות.

smartSharding

object ( SmartSharding )

בדיקת רסיסים מבוססת על רשומות תזמון קודמות של מקרי בדיקה.

UniformSharding

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

עבור מבחני מכשור, הוא יתורגם לארגומנטים "-e numShard" ו-"-e shardIndex" של AndroidJUnitRunner. כאשר פיצול אחיד מופעל, ציון אחד מארגומנטי הריסוק הללו באמצעות environmentVariables אינו חוקי.

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

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

integer

נדרש. המספר הכולל של רסיסי יצירה. זה חייב להיות תמיד מספר חיובי שאינו גדול מהמספר הכולל של מקרי הבדיקה. כאשר אתה בוחר מכשיר פיזי אחד או יותר, מספר הרסיסים חייב להיות <= 50. כאשר אתה בוחר מכשיר וירטואלי אחד או יותר של ARM, הוא חייב להיות <= 200. כאשר אתה בוחר רק מכשירים וירטואליים x86, הוא חייב להיות <= 500 .

ריסוק ידני

מחלק מקרי בדיקה לקבוצות שצוינו של חבילות, מחלקות ו/או שיטות.

כאשר פיצול ידני מופעל, ציון יעדי בדיקה באמצעות environmentVariables או ב- InstrumentationTest אינו חוקי.

ייצוג JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
שדות
testTargetsForShard[]

object ( TestTargetsForShard )

נדרש. קבוצת חבילות, מחלקות ו/או שיטות בדיקה שיופעלו עבור כל רסיס שנוצר באופן ידני. עליך לציין לפחות רסיס אחד אם שדה זה קיים. כאשר אתה בוחר מכשיר פיזי אחד או יותר, מספר הבדיקות החוזרות של TargetsForShard חייב להיות <= 50. כאשר אתה בוחר מכשיר וירטואלי אחד או יותר של ARM, הוא חייב להיות <= 200. כאשר אתה בוחר רק מכשירים וירטואליים x86, הוא חייב להיות <= 500.

TestTargetsForShard

בדיקת מטרות עבור רסיס.

ייצוג JSON
{
  "testTargets": [
    string
  ]
}
שדות
testTargets[]

string

קבוצת חבילות, מחלקות ו/או שיטות בדיקה שיופעלו עבור כל רסיס. יש לציין את היעדים בפורמט ארגומנט AndroidJUnitRunner. לדוגמה, "package com.my.packages" "class com.my.package.MyClass".

מספר יעדי הבדיקה חייב להיות גדול מ-0.

SmartSharding

בדיקת רסיסים מבוססת על רשומות תזמון קודמות של מקרי בדיקה.

ייצוג JSON
{
  "targetedShardDuration": string
}
שדות
targetedShardDuration

string ( Duration format)

משך הזמן שבדיקות בתוך רסיס אמורות לקחת.

ברירת מחדל: 300 שניות (5 דקות). המינימום המותר: 120 שניות (2 דקות).

ספירת הרסיסים נקבעת באופן דינמי על סמך זמן, עד למגבלת הרסיס המקסימלית (מתואר להלן). כדי להבטיח לפחות מקרה בדיקה אחד לכל רסיס, מספר הרסיסים לא יעלה על מספר מקרי הבדיקה. יחרוג משך ה-Shard אם:

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

משך ה-Shard אינו מובטח מכיוון ש-Sharding חכם משתמש בהיסטוריית מקרי בדיקה ובמשכי ברירת מחדל שעשויים להיות לא מדויקים. הכללים למציאת רשומות התזמון של מקרה הבדיקה הם:

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

מכיוון שמשך הרסיס בפועל יכול לעלות על משך הרסיס המיועד, אנו ממליצים להגדיר את ערך היעד לפחות 5 דקות פחות מפסק הזמן המרבי המותר לבדיקה (45 דקות עבור מכשירים פיזיים ו-60 דקות עבור וירטואליים), או שתשתמש בהתאמה אישית ערך הזמן הקצוב לבדיקה שהגדרת. גישה זו מונעת מביטול הרסיס לפני שכל הבדיקות יסתיימו.

שימו לב שיש הגבלה למספר המרבי של רסיסים. כאשר אתה בוחר מכשיר פיזי אחד או יותר, מספר הרסיסים חייב להיות <= 50. כאשר אתה בוחר מכשיר וירטואלי אחד או יותר של ARM, הוא חייב להיות <= 200. כאשר אתה בוחר רק מכשירים וירטואליים x86, הוא חייב להיות <= 500 כדי להבטיח לפחות מקרה בדיקה אחד לכל רסיס, מספר הרסיסים לא יעלה על מספר מקרי הבדיקה. כל רסיס שנוצר נחשב למכסת הבדיקות היומית.

משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' s '. דוגמה: "3.5s" .

AndroidRoboTest

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

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

string

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

appInitialActivity

string

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

maxDepth
(deprecated)

integer

העומק המרבי של מחסנית המעבר שרובו יכול לחקור. צריך להיות לפחות 2 כדי לגרום לרובו לחקור את האפליקציה מעבר לפעילות הראשונה. ברירת המחדל היא 50.

maxSteps
(deprecated)

integer

המספר המרבי של צעדים שרובו יכול לבצע. ברירת המחדל היא ללא גבול.

roboDirectives[]

object ( RoboDirective )

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

roboMode

enum ( RoboMode )

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

roboScript

object ( FileReference )

קובץ JSON עם רצף פעולות שעל רובו לבצע כפרולוג לסריקה.

startingIntents[]

object ( RoboStartingIntent )

הכוונות ששימשו להפעלת האפליקציה לסריקה. אם לא מסופקים כאלה, הפעילות של המשגר ​​הראשי מופעלת. אם חלק מסופקים, אז רק אלה שסופקו יופעלו (יש לספק את פעילות המשגר ​​הראשית במפורש).

app_under_test של האיחוד שדה . נדרש. app_under_test יכול להיות רק אחד מהאפשרויות הבאות:
appApk

object ( FileReference )

ה-APK עבור האפליקציה הנבדקת.

appBundle

object ( AppBundle )

חבילת אפליקציות מרובת APK עבור האפליקציה הנבדקת.

RoboDirective

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

ייצוג JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
שדות
resourceName

string

נדרש. שם משאב האנדרואיד של רכיב ממשק המשתמש היעד. לדוגמה, ב-Java: R.string.foo ב-xml: @string/foo יש צורך רק בחלק "foo". מסמך עזר: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

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

actionType

enum ( RoboActionType )

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

RoboActionType

פעולות שרובו יכול לבצע על רכיבי ממשק משתמש.

תקצירים
ACTION_TYPE_UNSPECIFIED אל תשתמש. לגירסת פרוטו בלבד.
SINGLE_CLICK הפנה את רובו ללחוץ על האלמנט שצוין. No-op אם הרכיב שצוין אינו ניתן ללחיצה.
ENTER_TEXT הפנה את רובו להזנת טקסט באלמנט שצוין. No-op אם הרכיב שצוין אינו מופעל או אינו מאפשר הזנת טקסט.
IGNORE הפנה את רובו להתעלם מאינטראקציות עם אלמנט מסוים.

RoboMode

המצב שבו רובו צריך לרוץ.

תקצירים
ROBO_MODE_UNSPECIFIED זה אומר שהשרת צריך לבחור את המצב. מוּמלָץ.
ROBO_VERSION_1 מפעיל את Robo במצב UIAutomator בלבד מבלי להתפטר מהאפליקציה
ROBO_VERSION_2 מריץ את רובו באספרסו סטנדרטי עם UIAutomator fallback

RoboStartingIntent

הודעה לציון פעילויות ההתחלה לסריקה.

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

string ( Duration format)

פסק זמן בשניות לכל כוונה.

משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' s '. דוגמה: "3.5s" .

שדה איחוד starting_intent . נדרש. פרטי כוונה להתחיל פעילות. starting_intent יכול להיות רק אחד מהבאים:
launcherActivity

object ( LauncherActivityIntent )

כוונה שמתחילה את פעילות המשגר ​​הראשית.

startActivity

object ( StartActivityIntent )

כוונה שמתחילה פעילות עם פרטים ספציפיים.

LauncherActivityIntent

מציין כוונה שמתחילה את פעילות המשגר ​​הראשית.

StartActivityIntent

כוונת התחלה שצוינה על ידי פעולה, Uri וקטגוריות.

ייצוג JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
שדות
action

string

שם פעולה. נדרש עבור START_ACTIVITY.

uri

string

URI עבור הפעולה.

categories[]

string

קטגוריות כוונות להגדיר על הכוונה.

AndroidTestLoop

בדיקה של אפליקציית אנדרואיד עם לולאת בדיקה. הכוונה <intent-name> תתווסף באופן מרומז, מכיוון שמשחקים הוא המשתמש היחיד של ה-API הזה, לעת עתה.

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

string

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

scenarios[]

integer

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

scenarioLabels[]

string

רשימת תוויות התרחישים שיש להפעיל במהלך הבדיקה. על תוויות התרחישים למפות לתוויות המוגדרות במניפסט של היישום. לדוגמה, player_experience ו-com.google.test.loops.player_experience מוסיפים את כל הלולאות המסומנות במניפסט עם השם com.google.test.loops.player_experience לביצוע. ניתן לציין תרחישים גם בשדה התרחישים.

app_under_test של האיחוד שדה . נדרש. חבילת אנדרואיד לבדיקה. app_under_test יכול להיות רק אחד מהאפשרויות הבאות:
appApk

object ( FileReference )

ה-APK עבור האפליקציה הנבדקת.

appBundle

object ( AppBundle )

חבילת אפליקציות מרובת APK עבור האפליקציה הנבדקת.

IosXcTest

בדיקה של אפליקציית iOS המשתמשת במסגרת XCTest. Xcode תומך באפשרות "בנייה לבדיקה", אשר יוצר קובץ .xctestrun המכיל מפרט בדיקה (טיעונים, שיטות בדיקה וכו'). סוג בדיקה זה מקבל קובץ zip המכיל את קובץ .xctestrun ואת התוכן המתאים של ספריית Build/Products המכילה את כל הקבצים הבינאריים הדרושים להפעלת הבדיקות.

ייצוג JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
שדות
testsZip

object ( FileReference )

נדרש. ה-zip המכיל את קובץ ה-.xctestrun ואת התוכן של ספריית DerivedData/Build/Products. מתעלמים מקובץ ה-.xctestrun ב-zip זה אם השדה xctestrun מצוין.

xctestrun

object ( FileReference )

קובץ ‎.xctestrun שיעקוף את קובץ ה-‎.xctestrun ב-zip של הבדיקות. מכיוון שקובץ .xctestrun מכיל משתני סביבה יחד עם שיטות בדיקה להרצה ו/או להתעלם, זה יכול להיות שימושי עבור בדיקות ריסוק. ברירת המחדל נלקחת מה-zip של הבדיקות.

xcodeVersion

string

גרסת Xcode שאמורה לשמש לבדיקה. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות. ברירת המחדל היא לגרסת Xcode העדכנית שתומכת ב-Firebase Test Lab.

appBundleId

string

פלט בלבד. מזהה החבילה של האפליקציה הנבדקת.

testSpecialEntitlements

boolean

אפשרות לבדוק זכויות מיוחדות לאפליקציה. הגדרה זו תחתום מחדש על האפליקציה בעלת זכויות מיוחדות עם מזהה אפליקציה מפורש. תומך כרגע בבדיקת זכאות aps-environment.

IosTestLoop

בדיקה של אפליקציית iOS המיישמת תרחיש אחד או יותר של לולאת משחק. סוג בדיקה זה מקבל יישום בארכיון (קובץ ipa) ורשימת תרחישים שלמים שיבוצעו באפליקציה ברצף.

ייצוג JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
שדות
appIpa

object ( FileReference )

נדרש. ה-.ipa של האפליקציה לבדיקה.

scenarios[]

integer

רשימת התרחישים שיש להפעיל במהלך הבדיקה. ברירת מחדל לתרחיש היחיד 0 אם לא צוין.

appBundleId

string

פלט בלבד. מזהה החבילה של האפליקציה הנבדקת.

EnvironmentMatrix

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

ייצוג 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.
}
שדות
מטריצת environment_matrix שדה . נדרש. מטריצת הסביבה. environment_matrix יכול להיות רק אחד מהבאים:
androidMatrix

object ( AndroidMatrix )

מטריצה ​​של מכשירי אנדרואיד.

androidDeviceList

object ( AndroidDeviceList )

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

iosDeviceList

object ( IosDeviceList )

רשימה של מכשירי iOS.

AndroidMatrix

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

רק תמורות נתמכות יוצגו. מתעלמים מתמורות לא חוקיות (למשל, מודלים/גרסאות לא תואמות).

ייצוג JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
שדות
androidModelIds[]

string

נדרש. המזהים של הסט של מכשיר האנדרואיד שיש להשתמש בו. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

androidVersionIds[]

string

נדרש. המזהים של הסט של גרסת מערכת ההפעלה אנדרואיד לשימוש. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

locales[]

string

נדרש. קבוצת המקומות שמכשיר הבדיקה יאפשר לבדיקה. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

orientations[]

string

נדרש. סט הכיוונים לבדיקה. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

AndroidDeviceList

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

ייצוג JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
שדות
androidDevices[]

object ( AndroidDevice )

נדרש. רשימה של מכשירי אנדרואיד.

מכשיר אנדרואיד

מכשיר אנדרואיד בודד.

ייצוג JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
שדות
androidModelId

string

נדרש. המזהה של מכשיר האנדרואיד שיש להשתמש בו. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

androidVersionId

string

נדרש. המזהה של גרסת מערכת ההפעלה אנדרואיד שיש להשתמש בה. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

locale

string

נדרש. המקום שבו מכשיר הבדיקה המשמש לבדיקה. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

orientation

string

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

IosDeviceList

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

ייצוג JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
שדות
iosDevices[]

object ( IosDevice )

נדרש. רשימה של מכשירי iOS.

IosDevice

מכשיר iOS יחיד.

ייצוג JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
שדות
iosModelId

string

נדרש. המזהה של מכשיר ה-iOS לשימוש. השתמש ב- TestEnvironmentDiscoveryService כדי לקבל אפשרויות נתמכות.

iosVersionId

string

נדרש. המזהה של גרסת התוכנה העיקרית של iOS שיש להשתמש בה. השתמש בשירות TestEnvironmentDiscovery כדי לקבל אפשרויות נתמכות.

locale

string

נדרש. המקום שבו מכשיר הבדיקה המשמש לבדיקה. השתמש בשירות TestEnvironmentDiscovery כדי לקבל אפשרויות נתמכות.

orientation

string

נדרש. כיצד המכשיר מכוון במהלך הבדיקה. השתמש בשירות TestEnvironmentDiscovery כדי לקבל אפשרויות נתמכות.

TestExecution

בדיקה בודדת שבוצעה בסביבה אחת.

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

string

פלט בלבד. מזהה ייחודי שהוגדר על ידי השירות.

matrixId

string

פלט בלבד. מזהה של ה-TestMatrix המכילה.

projectId

string

פלט בלבד. פרויקט הענן בעל ביצוע הבדיקה.

testSpecification

object ( TestSpecification )

פלט בלבד. כיצד להפעיל את הבדיקה.

shard

object ( Shard )

פלט בלבד. פרטים על הרסיס.

environment

object ( Environment )

פלט בלבד. כיצד מוגדרים המחשבים המארחים.

state

enum ( TestState )

פלט בלבד. מציין את ההתקדמות הנוכחית של ביצוע הבדיקה (למשל, FINISHED).

toolResultsStep

object ( ToolResultsStep )

פלט בלבד. היכן כתובות התוצאות לביצוע זה.

timestamp

string ( Timestamp format)

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

חותמת זמן בפורמט RFC3339 UTC "Zulu", עם רזולוציה של ננו-שניות ועד תשע ספרות חלקיות. דוגמאות: "2014-10-02T15:01:23Z" ו- "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

פלט בלבד. פרטים נוספים על מבחן הריצה.

חֶרֶס

פלט בלבד. פרטים על הרסיס.

ייצוג JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
שדות
shardIndex

integer

פלט בלבד. מדד הרסיס בין כל הרסיסים.

numShards

integer

פלט בלבד. המספר הכולל של הרסיסים.

testTargetsForShard

object ( TestTargetsForShard )

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

estimatedShardDuration

string ( Duration format)

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

משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' s '. דוגמה: "3.5s" .

סביבה

הסביבה שבה הבדיקה מתנהלת.

ייצוג 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.
}
שדות
environment שדה האיחוד. נדרש. הסביבה. environment יכולה להיות רק אחת מהאפשרויות הבאות:
androidDevice

object ( AndroidDevice )

מכשיר אנדרואיד שיש להשתמש בו עם מבחן אנדרואיד.

iosDevice

object ( IosDevice )

מכשיר iOS שבו יש להשתמש עם בדיקת iOS.

TestState

המצב (כלומר, התקדמות) של ביצוע בדיקה או מטריצה.

תקצירים
TEST_STATE_UNSPECIFIED אל תשתמש. לגירסת פרוטו בלבד.
VALIDATING הביצוע או המטריצה ​​מאומתים.
PENDING הביצוע או המטריצה ​​ממתינים למשאבים שיהפכו לזמינים.
RUNNING

הביצוע נמצא כעת בעיבוד.

ניתן להגדיר רק על ביצוע.

FINISHED

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

במטריצה ​​זה אומר שעיבוד רמת המטריצה ​​הושלם כרגיל, אך ביצועים בודדים עשויים להיות במצב ERROR.

ERROR הביצוע או המטריצה ​​הופסקו מכיוון שנתקלו בכשל בתשתית.
UNSUPPORTED_ENVIRONMENT

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

ניתן להגדיר רק על ביצוע.

INCOMPATIBLE_ENVIRONMENT

הביצוע לא הופעל מכיוון שהתשומות שסופקו אינן תואמות לסביבה המבוקשת.

דוגמה: גירסת Android המבוקשת נמוכה מה-minSdkVersion של APK

ניתן להגדיר רק על ביצוע.

INCOMPATIBLE_ARCHITECTURE

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

דוגמה: המכשיר המבוקש אינו תומך בהפעלת הקוד המקורי ב-APK שסופק

ניתן להגדיר רק על ביצוע.

CANCELLED

המשתמש ביטל את הביצוע.

ניתן להגדיר רק על ביצוע.

INVALID

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

דוגמאות: קובץ הקלט אינו מהסוג הצפוי, פגום/פגום או סומן כתוכנה זדונית

כלי תוצאות שלב

מייצג משאב שלב של תוצאות כלי.

יש לזה את התוצאות של TestExecution.

ייצוג JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
שדות
projectId

string

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

historyId

string

פלט בלבד. מזהה היסטוריית תוצאות של כלי.

executionId

string

פלט בלבד. מזהה ביצוע של תוצאות כלי.

stepId

string

פלט בלבד. מזהה שלב של תוצאות הכלי.

פרטי הבדיקה

פרטים נוספים על התקדמות מבחן הריצה.

ייצוג JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
שדות
progressMessages[]

string

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

במהלך הביצוע נתונים חדשים עשויים להתווסף לסוף progressMessages.

errorMessage

string

פלט בלבד. אם ה-TestState הוא ERROR, מחרוזת זו תכיל פרטים קריאים על השגיאה.

אחסון תוצאות

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

ייצוג JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
שדות
googleCloudStorage

object ( GoogleCloudStorage )

נדרש.

toolResultsHistory

object ( ToolResultsHistory )

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

אם לא יינתן, השירות יבחר ערך מתאים.

toolResultsExecution

object ( ToolResultsExecution )

פלט בלבד. ביצוע תוצאות הכלי שהתוצאות נכתבות אליו.

resultsUrl

string

פלט בלבד. כתובת אתר לתוצאות ב-Firebase Web Console.

GoogleCloudStorage

מיקום אחסון בתוך Google Cloud Storage (GCS).

ייצוג JSON
{
  "gcsPath": string
}
שדות
gcsPath

string

נדרש. הנתיב לספרייה ב-GCS שבסופו של דבר תכיל את התוצאות של בדיקה זו. למשתמש המבקש חייבת להיות גישת כתיבה בדלי בנתיב שסופק.

ToolResultsHistory

מייצג משאב היסטוריית תוצאות של כלי.

ייצוג JSON
{
  "projectId": string,
  "historyId": string
}
שדות
projectId

string

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

historyId

string

נדרש. מזהה היסטוריית תוצאות של כלי.

ToolResultsExecution

מייצג משאב ביצוע תוצאות כלי.

יש לזה תוצאות של TestMatrix.

ייצוג JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
שדות
projectId

string

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

historyId

string

פלט בלבד. מזהה היסטוריית תוצאות של כלי.

executionId

string

פלט בלבד. מזהה ביצוע תוצאות של כלי.

InvalidMatrixDetails

הסיבה המפורטת לכך שמטריצה ​​נחשבה לא חוקית.

תקצירים
INVALID_MATRIX_DETAILS_UNSPECIFIED אל תשתמש. לגירסת פרוטו בלבד.
DETAILS_UNAVAILABLE המטריצה ​​אינה חוקית, אך אין פרטים נוספים זמינים.
MALFORMED_APK לא ניתן היה לנתח את ה-APK של אפליקציית הקלט.
MALFORMED_TEST_APK לא ניתן היה לנתח את ה-APK של בדיקת הקלט.
NO_MANIFEST ה-AndroidManifest.xml לא נמצא.
NO_PACKAGE_NAME מניפסט ה-APK אינו מצהיר על שם חבילה.
INVALID_PACKAGE_NAME מזהה אפליקציית APK (המכונה שם חבילה) אינו חוקי. ראה גם https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP חבילת הבדיקה וחבילת האפליקציה זהות.
NO_INSTRUMENTATION ה-apk של הבדיקה אינו מצהיר על מכשור.
NO_SIGNATURE לאפליקציית הקלט apk אין חתימה.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE מחלקת רץ הבדיקה שצוינה על ידי המשתמש או בקובץ המניפסט של ה-APK לבדיקה אינה תואמת ל-Android Test Orchestrator. Orchestrator תואם רק ל-AndroidJUnitRunner גרסה 1.1 ומעלה. ניתן להשבית את Orchestrator באמצעות DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

ה-APK של הבדיקה אינו מכיל את מחלקת הרץ לבדיקה שצוינה על ידי המשתמש או בקובץ המניפסט. זה יכול להיגרם מאחת מהסיבות הבאות:

  • המשתמש סיפק שם מחלקה של רץ שאינו נכון, או
  • רץ הבדיקה אינו מובנה ב-APK לבדיקה (ייתכן שהוא נמצא ב-APK של האפליקציה במקום זאת).
NO_LAUNCHER_ACTIVITY לא ניתן למצוא פעילות משגר ראשי.
FORBIDDEN_PERMISSIONS האפליקציה מצהירה על הרשאה אחת או יותר שאינן מותרות.
INVALID_ROBO_DIRECTIVES יש התנגשות ב-roboDirectives שסופקו.
INVALID_RESOURCE_NAME יש שם משאב אחד לא חוקי לפחות בהנחיות הרובו שסופקו
INVALID_DIRECTIVE_ACTION הגדרה לא חוקית של פעולה בהנחיות רובו (למשל פעולת לחיצה או התעלמות כוללת שדה טקסט קלט)
TEST_LOOP_INTENT_FILTER_NOT_FOUND אין מסנן כוונת לולאת בדיקה, או שהמסנן שניתן אינו מעוצב בצורה נכונה.
SCENARIO_LABEL_NOT_DECLARED הבקשה מכילה תווית תרחיש שלא הוכרזה במניפסט.
SCENARIO_LABEL_MALFORMED אירעה שגיאה בעת ניתוח ערך של תווית.
SCENARIO_NOT_DECLARED הבקשה מכילה מספר תרחיש שלא הוכרז במניפסט.
DEVICE_ADMIN_RECEIVER אפליקציות של מנהל מכשיר אינן מותרות.
MALFORMED_XC_TEST_ZIP ה-XCTest המכווץ היה פגום. ה-zip לא הכיל קובץ .xctestrun אחד ואת התוכן של ספריית DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR ה-XCTest המכווץ נבנה עבור סימולטור iOS ולא עבור מכשיר פיזי.
NO_TESTS_IN_XC_TEST_ZIP קובץ .xctestrun לא ציין יעדי בדיקה כלשהם.
USE_DESTINATION_ARTIFACTS אחד או יותר מיעדי הבדיקה המוגדרים בקובץ .xctestrun מציינים את "UseDestinationArtifacts", דבר שאינו מותר.
TEST_NOT_APP_HOSTED בדיקות XC המופעלות על מכשירים פיזיים חייבות להיות "IsAppHostedTestBundle" == "true" בקובץ xctestrun.
PLIST_CANNOT_BE_PARSED לא ניתן היה לנתח קובץ Info.plist ב-XCTest zip.
TEST_ONLY_APK

ה-APK מסומן כ-"testOnly". הוצא משימוש ואינו בשימוש כעת.

MALFORMED_IPA לא ניתן היה לנתח את ה-IPA של הקלט.
MISSING_URL_SCHEME האפליקציה לא רושמת את ערכת כתובת האתר של לולאת המשחק.
MALFORMED_APP_BUNDLE לא ניתן היה לעבד את חבילת האפליקציות של iOS (.app).
NO_CODE_APK APK אינו מכיל קוד. ראה גם https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK או שנתיב ה-APK לקלט היה שגוי, קובץ ה-APK אינו קיים, או שלמשתמש אין הרשאה לגשת לקובץ ה-APK.
INVALID_APK_PREVIEW_SDK APK בנוי עבור SDK תצוגה מקדימה שאינה נתמכת
MATRIX_TOO_LARGE המטריצה ​​התרחבה והכילה יותר מדי הוצאות להורג.
TEST_QUOTA_EXCEEDED אין מספיק מכסת בדיקות כדי להפעיל את הביצועים במטריצה ​​הזו.
SERVICE_NOT_ACTIVATED ממשק API של שירות ענן לא מופעל. ראה: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR הייתה בעיית הרשאה לא ידועה בהפעלת בדיקה זו.

סיכום תוצאה

סיכום תוצאות למטריצת מבחן מוגמרת.

תקצירים
OUTCOME_SUMMARY_UNSPECIFIED אל תשתמש. לגירסת פרוטו בלבד.
SUCCESS

ריצת מטריצת הבדיקה הייתה מוצלחת, למשל:

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

ריצה נכשלה, למשל:

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

כל הבדיקות דילגו, למשל:

  • כל תצורות המכשירים לא היו תואמות.

שיטות

cancel

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

create

יוצר ומנהל מטריצה ​​של בדיקות על פי המפרט הנתון.

get

בודק את מצב מטריצת הבדיקה וההוצאות להורג לאחר יצירתם.