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),
  "extendedInvalidMatrixDetails": [
    {
      object (MatrixErrorDetail)
    }
  ],
  "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" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

invalidMatrixDetails

enum (InvalidMatrixDetails)

เอาต์พุตเท่านั้น อธิบายสาเหตุที่ระบบถือว่าเมทริกซ์ไม่ถูกต้อง มีประโยชน์สำหรับเมทริกซ์ที่อยู่ในสถานะไม่ถูกต้องเท่านั้น

extendedInvalidMatrixDetails[]

object (MatrixErrorDetail)

เอาต์พุตเท่านั้น รายละเอียดเกี่ยวกับสาเหตุที่เมทริกซ์ถือว่าไม่ถูกต้อง หากสามารถทำการตรวจสอบหลายครั้งได้อย่างปลอดภัย ระบบจะรายงานการตรวจสอบ แต่ไม่ควรตั้งข้อสันนิษฐานเกี่ยวกับความยาวของรายการนี้

flakyTestAttempts

integer

จำนวนครั้งที่ TestExecution ควรทำอีกครั้งหากกรอบการทดสอบอย่างน้อย 1 กรณีล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม จำนวนการฉายซ้ำสูงสุดที่อนุญาตคือ 10 รอบ

ค่าเริ่มต้นคือ 0 ซึ่งหมายความว่าไม่มีการเรียกใช้ซ้ำ

outcomeSummary

enum (OutcomeSummary)

เอาต์พุตเท่านั้น ผลลัพธ์โดยรวมของการทดสอบ ระบบจะตั้งค่าเมื่อสถานะเมทริกซ์ทดสอบเป็น FINISHED เท่านั้น

failFast

boolean

หากเป็น "จริง" ระบบจะพยายามเรียกใช้การดำเนินการ/ชาร์ดแต่ละรายการในเมทริกซ์เป็นไม่เกิน 1 ครั้งเท่านั้น ทั้งนี้ ความพยายามทดสอบที่ไม่น่าเชื่อถือจะไม่ได้รับผลกระทบ

โดยปกติแล้วจะพยายามอย่างน้อย 2 ครั้งหากตรวจพบปัญหาด้านโครงสร้างพื้นฐานที่อาจเกิดขึ้น

ฟีเจอร์นี้มีไว้สำหรับภาระงานที่มีความละเอียดอ่อนด้านเวลาในการตอบสนอง อุบัติการณ์ของความล้มเหลวในการดำเนินการอาจสูงกว่ามากสำหรับเมทริกซ์ความเร็วล้มเหลว และการสนับสนุนมีจำกัดมากขึ้นเนื่องจากความคาดหวังนั้น

ClientInfo

ข้อมูลเกี่ยวกับไคลเอ็นต์ที่เรียกใช้การทดสอบ

การแสดง JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
ช่อง
name

string

ต้องระบุ ชื่อไคลเอ็นต์ เช่น gcloud

clientInfoDetails[]

object (ClientInfoDetail)

รายการข้อมูลโดยละเอียดเกี่ยวกับไคลเอ็นต์

รายละเอียด ClientInfo

คู่คีย์-ค่าของข้อมูลโดยละเอียดเกี่ยวกับไคลเอ็นต์ที่เรียกใช้การทดสอบ ตัวอย่าง: {'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)
  },
  "iosRoboTest": {
    object (IosRoboTest)
  }
  // End of list of possible types for union field test.
}
ช่อง
testTimeout

string (Duration format)

จำนวนครั้งสูงสุดที่อนุญาตให้เรียกใช้การดำเนินการทดสอบก่อนที่จะยกเลิกโดยอัตโนมัติ ค่าเริ่มต้นคือ 5 นาที

ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" ตัวอย่างเช่น "3.5s"

disableVideoRecording

boolean

ปิดการบันทึกวิดีโอ อาจลดเวลาในการตอบสนองของการทดสอบ

disablePerformanceMetrics

boolean

ปิดการบันทึกเมตริกประสิทธิภาพ อาจลดเวลาในการตอบสนองของการทดสอบ

ช่องการรวม setup ข้อกำหนดในการตั้งค่าการทดสอบ setup ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
testSetup

object (TestSetup)

ข้อกําหนดในการตั้งค่าการทดสอบสําหรับ Android เช่น ไฟล์ที่จะติดตั้ง สคริปต์เปิดเครื่อง

iosTestSetup

object (IosTestSetup)

ข้อกำหนดในการตั้งค่าการทดสอบสำหรับ iOS

ช่องการรวม test ต้องระบุ ประเภทการทดสอบที่จะเรียกใช้ test ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
androidInstrumentationTest

object (AndroidInstrumentationTest)

การทดสอบการใช้เครื่องมือ Android

androidRoboTest

object (AndroidRoboTest)

การทดสอบ Android Robo

androidTestLoop

object (AndroidTestLoop)

แอปพลิเคชัน Android ที่มี Test Loop

iosXcTest

object (IosXcTest)

iOS XCTest ผ่านไฟล์ .xctestrun

iosTestLoop

object (IosTestLoop)

แอปพลิเคชัน iOS ที่มี Test Loop

iosRoboTest

object (IosRoboTest)

การทดสอบ Robo ของ iOS

การตั้งค่าการทดสอบ

คําอธิบายวิธีตั้งค่าอุปกรณ์ Android ก่อนทําการทดสอบ

การแสดง JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "initialSetupApks": [
    {
      object (Apk)
    }
  ],
  "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 ชื่อเส้นทางถูกจำกัดไว้เฉพาะอักขระ a-z A-Z 0-9 _ - + และ /

หมายเหตุ: เส้นทาง /sdcard และ /data จะพร้อมใช้งานและถือเป็นการแทนเส้นทางโดยนัย เช่น หาก /sdcard บนอุปกรณ์ใดอุปกรณ์หนึ่งไม่ได้จับคู่กับที่จัดเก็บข้อมูลภายนอก ระบบจะแทนที่ /sdcard ด้วยคำนำหน้าเส้นทางที่จัดเก็บข้อมูลภายนอกสำหรับอุปกรณ์นั้น

initialSetupApks[]

object (Apk)

ไม่บังคับ APK การตั้งค่าเบื้องต้นที่จะติดตั้งก่อนที่จะมีการติดตั้งแอปที่กำลังทดสอบ ปัจจุบันจำกัดที่ 100 คน

additionalApks[]

object (Apk)

APK ที่จะติดตั้งนอกเหนือจาก APK ที่จะทดสอบโดยตรง ซึ่งจะติดตั้งหลังจากแอปอยู่ระหว่างการทดสอบ ปัจจุบันจำกัดที่ 100 คน

account

object (Account)

อุปกรณ์จะเข้าสู่ระบบบัญชีนี้ตลอดระยะเวลาการทดสอบ

networkProfile

string

โปรไฟล์การจราจรของข้อมูลในเครือข่ายที่ใช้สำหรับทำการทดสอบ ค้นหาโปรไฟล์เครือข่ายที่พร้อมใช้งานได้โดยใช้ประเภทสภาพแวดล้อม NETWORK_CONFIGURATION เมื่อเรียกใช้ TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog

environmentVariables[]

object (EnvironmentVariable)

ตัวแปรสภาพแวดล้อมที่จะตั้งค่าสำหรับการทดสอบ (ใช้ได้เฉพาะสำหรับการทดสอบการวัดคุม)

systrace
(deprecated)

object (SystraceSetup)

การกำหนดค่า Systrace สำหรับการเรียกใช้ เลิกใช้งานแล้ว: Systrace ใช้ Python 2 ซึ่งเลิกใช้งานไปเมื่อวันที่ 01-01-2020 Cloud Testing API ไม่รองรับ Systrace อีกต่อไป และจะไม่ส่งไฟล์ Systrace ในผลลัพธ์

dontAutograntPermissions

boolean

ป้องกันไม่ให้มีการให้สิทธิ์รันไทม์ทั้งหมดเมื่อติดตั้งแอปหรือไม่

ไฟล์อุปกรณ์

คำอธิบายไฟล์ในอุปกรณ์เดียว

การแสดง 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)

การอ้างอิงไปยังไฟล์ BLOB ไบนารีที่ทึบแสง

regularFile

object (RegularFile)

การอ้างอิงไปยังไฟล์ทั่วไป

ไฟล์ Obb

ไฟล์ BLOB ไบนารีแบบทึบแสงที่จะติดตั้งในอุปกรณ์ก่อนที่การทดสอบจะเริ่มต้น

การแสดง 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)

ต้องระบุ ไฟล์ Opaque Binary Blob (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 เส้นทางเหล่านี้คาดว่าจะได้รับการเข้ารหัส URL (การเข้ารหัสเปอร์เซ็นต์)

ไฟล์ปกติ

ไฟล์หรือไดเรกทอรีที่จะติดตั้งในอุปกรณ์ก่อนที่การทดสอบจะเริ่มต้น

การแสดง 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 บนอุปกรณ์ใดอุปกรณ์หนึ่งไม่ได้จับคู่กับที่จัดเก็บข้อมูลภายนอก ระบบจะแทนที่ /sdcard ด้วยคำนำหน้าเส้นทางที่จัดเก็บข้อมูลภายนอกสำหรับอุปกรณ์นั้น และคัดลอกไฟล์ลงในนั้น

ขอแนะนำให้ใช้ Environment API ในแอปและโค้ดทดสอบเพื่อเข้าถึงไฟล์ในอุปกรณ์แบบพกพา

APK

ไฟล์แพ็กเกจ Android ที่จะติดตั้ง

การแสดง JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
ช่อง
location

object (FileReference)

เส้นทางไปยัง APK ที่จะติดตั้งในอุปกรณ์ก่อนเริ่มการทดสอบ

packageName

string

แพ็กเกจ Java สำหรับ APK ที่จะติดตั้ง ค่านี้กำหนดโดยการตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน

บัญชี

ระบุบัญชีและวิธีลงชื่อเข้าใช้

การแสดง 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 ต้องระบุ ประเภทบัญชี โดยขึ้นอยู่กับวัตถุประสงค์ (เช่น Google) และกลไกการเข้าสู่ระบบ (เช่น ชื่อผู้ใช้และรหัสผ่าน) account_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
googleAuto

object (GoogleAuto)

บัญชีที่เข้าสู่ระบบ Google โดยอัตโนมัติ

Google ออโต้

ประเภทนี้ไม่มีช่อง

เปิดใช้การเข้าสู่ระบบบัญชี Google โดยอัตโนมัติ หากตั้งค่าไว้ บริการจะสร้างบัญชีทดสอบ Google โดยอัตโนมัติและเพิ่มบัญชีลงในอุปกรณ์ก่อนดำเนินการทดสอบ โปรดทราบว่าอาจมีการนำบัญชีทดสอบมาใช้ซ้ำ แอปพลิเคชันจำนวนมากแสดงฟังก์ชันการทำงานทั้งหมดเมื่อมีบัญชีในอุปกรณ์ การเข้าสู่ระบบอุปกรณ์ด้วยบัญชีที่สร้างขึ้นเหล่านี้จะช่วยให้ทดสอบฟังก์ชันการทำงานได้มากขึ้น

ตัวแปรสภาพแวดล้อม

คู่คีย์-ค่าที่ส่งผ่านเป็นตัวแปรสภาพแวดล้อมไปยังการทดสอบ

การแสดง JSON
{
  "key": string,
  "value": string
}
ช่อง
key

string

คีย์สำหรับตัวแปรสภาพแวดล้อม

value

string

ค่าสำหรับตัวแปรสภาพแวดล้อม

การตั้งค่า Systrace

การแสดง JSON
{
  "durationSeconds": integer
}
ช่อง
durationSeconds
(deprecated)

integer

ระยะเวลา Systrace เป็นวินาที ควรอยู่ระหว่าง 1 ถึง 30 วินาที 0 จะปิดใช้ Systrace

ตั้งค่าการทดสอบ Ios

คําอธิบายวิธีตั้งค่าอุปกรณ์ 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) โดยระบุรหัสชุด

ไฟล์อุปกรณ์ iOS

ไฟล์หรือไดเรกทอรีที่จะติดตั้งในอุปกรณ์ก่อนที่การทดสอบจะเริ่มต้น

การแสดง JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
ช่อง
content

object (FileReference)

ไฟล์ต้นฉบับ

bundleId

string

รหัสชุดของแอปที่ใช้ไฟล์นี้

แอป iOS จะทำแซนด์บ็อกซ์กับระบบไฟล์ของตนเอง ดังนั้นไฟล์ของแอปต้องระบุแอปที่จะติดตั้งในอุปกรณ์

devicePath

string

ตำแหน่งของไฟล์ในอุปกรณ์ภายในระบบไฟล์ที่แซนด์บ็อกซ์ของแอป

AndroidInstrumentationTest

การทดสอบแอปพลิเคชัน Android ที่ควบคุมคอมโพเนนต์ Android ได้อย่างอิสระจากวงจรชีวิตปกติ การทดสอบการใช้เครื่องมือ Android จะเรียกใช้ APK ของแอปพลิเคชัน และทดสอบ APK ภายในกระบวนการเดียวกันบน AndroidDevice เสมือนหรืออุปกรณ์จริง นอกจากนี้ ยังระบุคลาสตัวดำเนินการทดสอบ เช่น com.google.GoogleTestRunner ซึ่งอาจแตกต่างกันไปตามเฟรมเวิร์กของเครื่องมือที่เลือก

ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการทดสอบ Android ได้ที่ 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 สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ ค่าเริ่มต้นจะกำหนดโดยการตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน

testPackageId

string

แพ็กเกจ Java สำหรับทดสอบที่จะดำเนินการ ค่าเริ่มต้นจะกำหนดโดยการตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน

testRunnerClass

string

คลาส InstrumentationTestRunner ค่าเริ่มต้นจะกำหนดโดยการตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน

testTargets[]

string

เป้าหมายแต่ละรายการต้องเป็นแบบเต็มด้วยชื่อแพ็กเกจหรือชื่อคลาสในรูปแบบใดรูปแบบหนึ่งต่อไปนี้

  • "ชื่อแพ็กเกจชื่อแพ็กเกจ"
  • "classpackageName.class_name"
  • "classpackageName.class_name#methodName"

หากเว้นว่างไว้ เป้าหมายทั้งหมดในโมดูลจะทำงาน

orchestratorOption

enum (OrchestratorOption)

ตัวเลือกว่าจะเรียกใช้การทดสอบแต่ละรายการภายในการเรียกใช้เครื่องมือของตนเองกับ Android Test Orchestrator หรือไม่ ** Orchestrator ใช้งานได้กับ AndroidJUnitRunner เวอร์ชัน 1.1 ขึ้นไปเท่านั้น ** Orchestrator มีประโยชน์ดังต่อไปนี้

  • ไม่มีสถานะที่แชร์
  • ข้อขัดข้องจะแยกเป็นบางส่วน
  • ระบบจะกำหนดขอบเขตบันทึกต่อการทดสอบ

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Android Test Orchestrator ได้ที่ https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator

หากไม่ได้ตั้งค่า การทดสอบจะทํางานโดยไม่มี Orchestrator

shardingOption

object (ShardingOption)

ตัวเลือกในการเรียกใช้การทดสอบในชาร์ดหลายรายการพร้อมกัน

ช่องการรวม app_under_test ต้องระบุ app_under_test ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
appApk

object (FileReference)

APK สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

appBundle

object (AppBundle)

App Bundle ที่มี APK หลายรายการสำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

แพ็กเกจแอป

รูปแบบไฟล์ Android App Bundle ที่มีไฟล์ BundleConfig.pb, ไดเรกทอรีโมดูลฐาน, ไดเรกทอรีโมดูลฟีเจอร์แบบไดนามิกตั้งแต่ 0 รายการขึ้นไป

ดูคำแนะนำในการสร้าง App Bundle ได้ที่ 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 ที่แสดงถึง App Bundle ที่อยู่ภายใต้การทดสอบ

ตัวเลือก Orchestrator

ระบุวิธีดำเนินการทดสอบ

Enum
ORCHESTRATOR_OPTION_UNSPECIFIED ค่าเริ่มต้น: เซิร์ฟเวอร์จะเลือกโหมด ปัจจุบันกล่าวเป็นนัยว่าการทดสอบจะทำงานโดยไม่มี Orchestrator ในอนาคต การทดสอบการใช้เครื่องมือทั้งหมดจะดำเนินการร่วมกับ Orchestrator เราขอแนะนำเป็นอย่างยิ่งให้ใช้ Orchestrator เนื่องจากประโยชน์ทั้งหมดที่มี
USE_ORCHESTRATOR ทำการทดสอบโดยใช้ Orchestrator ** รองรับเฉพาะ AndroidJUnitRunner เวอร์ชัน 1.1 ขึ้นไปเท่านั้น! ** แนะนำ
DO_NOT_USE_ORCHESTRATOR ทำการทดสอบโดยไม่ใช้ Orchestrator

ตัวเลือกชาร์ดดิ้ง

ตัวเลือกสำหรับการเปิดใช้ชาร์ดดิ้ง

การแสดง 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)

การทดสอบชาร์ดตามบันทึกการจับเวลาของกรอบการทดสอบก่อนหน้า

ชาร์ดดิ้งแบบเดียวกัน

กรณีการทดสอบชาร์ดที่สม่ำเสมอโดยมีจำนวนชาร์ดทั้งหมด

ส่วนการทดสอบการวัดคุม ระบบจะแปลค่าเป็น "-e numShard" และ "-e shardIndex" อาร์กิวเมนต์ AndroidJUnitRunner เมื่อเปิดใช้การชาร์ดดิ้งแบบเดียวกัน การระบุอาร์กิวเมนต์ชาร์ดดิ้งเหล่านี้ผ่าน environmentVariables ไม่ถูกต้อง

จากกลไกการชาร์ดที่ AndroidJUnitRunner ใช้งาน ไม่มีการรับประกันว่ากรณีการทดสอบจะกระจายอย่างเท่าเทียมกันในชาร์ดทั้งหมด

การแสดง JSON
{
  "numShards": integer
}
ช่อง
numShards

integer

ต้องระบุ จำนวนชาร์ดทั้งหมดที่จะสร้าง ซึ่งจะต้องเป็นจำนวนบวกที่ไม่เกินจำนวนกรอบการทดสอบทั้งหมดเสมอ เมื่อคุณเลือกอุปกรณ์จริงอย่างน้อย 1 เครื่อง จำนวนชาร์ดต้องน้อยกว่า 50 เมื่อเลือกอุปกรณ์เสมือน ARM อย่างน้อย 1 เครื่อง อุปกรณ์นั้นต้องมีค่า <= 200 เมื่อเลือกเฉพาะอุปกรณ์เสมือน x86 อุปกรณ์นั้นต้องมีค่า <= 500

ชาร์ดดิ้งด้วยตนเอง

กรณีการทดสอบชาร์ดลงในกลุ่มของแพ็กเกจ คลาส และ/หรือเมธอดที่ระบุ

เมื่อเปิดใช้ชาร์ดดิ้งด้วยตนเอง การระบุเป้าหมายทดสอบผ่านสภาพแวดล้อมตัวแปรหรือใน InstrumentationTest ไม่ถูกต้อง

การแสดง JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
ช่อง
testTargetsForShard[]

object (TestTargetsForShard)

ต้องระบุ กลุ่มของแพ็กเกจ คลาส และ/หรือวิธีการทดสอบที่จะเรียกใช้สำหรับชาร์ดที่สร้างด้วยตนเองแต่ละรายการ คุณต้องระบุชาร์ดอย่างน้อย 1 รายการหากมีช่องนี้อยู่ เมื่อคุณเลือกอุปกรณ์จริงอย่างน้อย 1 เครื่อง จำนวน testTargetsForShard ซ้ำต้อง<= 50 เมื่อเลือกอุปกรณ์เสมือน ARM อย่างน้อย 1 เครื่อง อุปกรณ์นั้นต้องมีค่า <= 200 เมื่อเลือกเฉพาะอุปกรณ์เสมือน x86 อุปกรณ์นั้นต้องมีค่า <= 500

เป้าหมายการทดสอบสำหรับชาร์ด

เป้าหมายทดสอบสำหรับชาร์ด

การแสดง JSON
{
  "testTargets": [
    string
  ]
}
ช่อง
testTargets[]

string

กลุ่มของแพ็กเกจ คลาส และ/หรือวิธีการทดสอบที่จะเรียกใช้สำหรับชาร์ดแต่ละรายการ เป้าหมายจำเป็นต้องระบุในรูปแบบอาร์กิวเมนต์ AndroidJUnitRunner เช่น "package com.my.packages" "class com.my.package.MyClass"

จำนวน testTarget ต้องมากกว่า 0

สมาร์ทชาร์ดดิ้ง

การทดสอบชาร์ดตามบันทึกการจับเวลาของกรอบการทดสอบก่อนหน้า

การแสดง JSON
{
  "targetedShardDuration": string
}
ช่อง
targetedShardDuration

string (Duration format)

ระยะเวลาในการทดสอบภายในชาร์ด

ค่าเริ่มต้น: 300 วินาที (5 นาที) ค่าขั้นต่ำที่อนุญาต: 120 วินาที (2 นาที)

ระบบจะตั้งค่าจำนวนชาร์ดแบบไดนามิกตามเวลาที่ขึ้นอยู่กับจำนวนชาร์ดสูงสุด (คำอธิบายอยู่ด้านล่าง) เพื่อรับประกันกรอบการทดสอบอย่างน้อย 1 รายการสำหรับชาร์ดแต่ละรายการ จำนวนชาร์ดจะไม่เกินจำนวนกรอบการทดสอบ ระยะเวลาของชาร์ดจะเกินกำหนดในกรณีต่อไปนี้

  • ถึงขีดจำกัดของชาร์ดสูงสุดแล้ว และเหลือเวลาทดสอบที่คำนวณได้เพิ่มเติมเพื่อจัดสรรไปยังชาร์ด
  • การทดสอบแต่ละครั้งมีการประมาณว่านานกว่าระยะเวลาของชาร์ดเป้าหมาย

ระบบไม่รับประกันระยะเวลาของชาร์ดเนื่องจาก Smart Shard ใช้ประวัติกรอบการทดสอบและระยะเวลาเริ่มต้นซึ่งอาจไม่ถูกต้อง กฎในการค้นหาระเบียนเวลาของกรอบการทดสอบมีดังนี้

  • หากบริการได้ประมวลผลกรอบการทดสอบในช่วง 30 วันที่ผ่านมา ระบบจะใช้บันทึกของกรอบการทดสอบที่สำเร็จล่าสุด
  • สำหรับกรอบการทดสอบใหม่ ระบบจะใช้ระยะเวลาเฉลี่ยของกรอบการทดสอบอื่นๆ ที่ทราบ
  • หากไม่มีบันทึกการจับเวลาของกรอบการทดสอบก่อนหน้า ระยะเวลาเริ่มต้นของกรอบการทดสอบคือ 15 วินาที

เนื่องจากระยะเวลาชาร์ดจริงอาจเกินระยะเวลาของชาร์ดเป้าหมาย เราจึงขอแนะนำให้คุณตั้งค่าเป้าหมายอย่างน้อย 5 นาทีต่ำกว่าระยะหมดเวลาทดสอบสูงสุดที่อนุญาต (45 นาทีสำหรับอุปกรณ์จริง และ 60 นาทีสำหรับเสมือน) หรือคุณอาจใช้ค่าการหมดเวลาการทดสอบที่กำหนดเองที่ตั้งไว้ วิธีนี้จะหลีกเลี่ยงการยกเลิกชาร์ดก่อนที่การทดสอบทั้งหมดจะเสร็จสมบูรณ์

โปรดทราบว่าจำนวนชาร์ดสูงสุดมีขีดจำกัด เมื่อคุณเลือกอุปกรณ์จริงอย่างน้อย 1 เครื่อง จำนวนชาร์ดต้องน้อยกว่า 50 เมื่อเลือกอุปกรณ์เสมือน ARM อย่างน้อย 1 เครื่อง อุปกรณ์นั้นต้องมีค่า <= 200 เมื่อเลือกเฉพาะอุปกรณ์เสมือน x86 อุปกรณ์นั้นต้องมีค่า <= 500 เพื่อรับประกันกรอบการทดสอบอย่างน้อย 1 รายการต่อชาร์ด จำนวนชาร์ดจะไม่เกินจำนวนกรอบการทดสอบ ชาร์ดที่สร้างขึ้นแต่ละรายการจะนับรวมในโควต้าการทดสอบรายวัน

ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" ตัวอย่างเช่น "3.5s"

AndroidRoboTest

การทดสอบแอปพลิเคชัน Android ที่สำรวจแอปพลิเคชันบนอุปกรณ์ Android เสมือนจริงหรือจริง เพื่อหาสาเหตุและข้อขัดข้องที่เกิดขึ้น

การแสดง 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 สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ ค่าเริ่มต้นจะกำหนดโดยการตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน

appInitialActivity

string

กิจกรรมเริ่มต้นที่ควรใช้ในการเริ่มต้นแอป

maxDepth
(deprecated)

integer

ความลึกสูงสุดของสแต็ก Traversal ที่ Robo สำรวจได้ อย่างน้อย 2 คนเพื่อให้ Robo สำรวจแอปได้เกินกว่ากิจกรรมแรก ค่าเริ่มต้นคือ 50

maxSteps
(deprecated)

integer

จำนวนขั้นตอนสูงสุดที่ Robo ทำได้ ไม่มีขีดจำกัดเริ่มต้น

roboDirectives[]

object (RoboDirective)

ชุดคำสั่งที่ Robo ควรใช้ในระหว่างการรวบรวมข้อมูล ซึ่งจะช่วยให้ผู้ใช้ปรับแต่งการ Crawl ได้ เช่น ระบุชื่อผู้ใช้และรหัสผ่านของบัญชีทดสอบได้

roboMode

enum (RoboMode)

โหมดที่ Robo ควรทำงาน ไคลเอ็นต์ส่วนใหญ่ควรอนุญาตให้เซิร์ฟเวอร์ป้อนข้อมูลในช่องนี้โดยอัตโนมัติ

roboScript

object (FileReference)

ไฟล์ JSON ที่มีลำดับการดำเนินการ Robo ควรทำหน้าที่เป็นอารัมภบทสำหรับการรวบรวมข้อมูล

startingIntents[]

object (RoboStartingIntent)

Intent ที่ใช้เพื่อเปิดแอปสำหรับการรวบรวมข้อมูล หากไม่ได้ให้ไว้ ระบบจะเริ่มกิจกรรมหลักของ Launcher หากมีบางรายการ ระบบจะเปิดใช้งานเฉพาะรายการที่ระบุไว้เท่านั้น (ต้องระบุกิจกรรมของ Launcher หลักอย่างชัดเจน)

ช่องการรวม app_under_test ต้องระบุ app_under_test ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
appApk

object (FileReference)

APK สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

appBundle

object (AppBundle)

App Bundle ที่มี APK หลายรายการสำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

RoboDirective

สั่งให้ Robo โต้ตอบกับองค์ประกอบ UI ที่เฉพาะเจาะจงหากพบในระหว่างการ Crawl ปัจจุบัน Robo ป้อนข้อความหรือคลิกองค์ประกอบได้

การแสดง JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
ช่อง
resourceName

string

ต้องระบุ ชื่อทรัพยากร Android ขององค์ประกอบ UI เป้าหมาย ตัวอย่างเช่น ใน Java: R.string.foo ใน xml: @string/foo เฉพาะ "foo" เท่านั้น เป็นสิ่งจำเป็น เอกสารอ้างอิง: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

ข้อความที่ Robo ได้รับการตั้งค่า หากเว้นว่างไว้ ระบบจะถือว่าคำสั่งเป็นการคลิกองค์ประกอบที่ตรงกับ resourceName

actionType

enum (RoboActionType)

ต้องระบุ ประเภทการทำงานที่ Robo ควรทำในองค์ประกอบที่ระบุ

ประเภทการดำเนินการ Robo

การทำงานที่ Robo ทำได้กับองค์ประกอบ UI

Enum
ACTION_TYPE_UNSPECIFIED ห้ามใช้ สำหรับการกำหนดเวอร์ชัน Proto เท่านั้น
SINGLE_CLICK กำหนดให้ Robo คลิกองค์ประกอบที่ระบุ ไม่มีการดำเนินการหากองค์ประกอบที่ระบุไม่สามารถคลิกได้
ENTER_TEXT กำหนดให้ Robo ป้อนข้อความในองค์ประกอบที่ระบุ ไม่มีการดำเนินการหากไม่ได้เปิดใช้องค์ประกอบที่ระบุหรือไม่อนุญาตให้ป้อนข้อความ
IGNORE กำหนดให้ Robo ละเว้นการโต้ตอบกับองค์ประกอบที่เจาะจง

โหมด Robo

โหมดที่ Robo ควรทำงาน

Enum
ROBO_MODE_UNSPECIFIED ซึ่งหมายความว่าเซิร์ฟเวอร์ควรเลือกโหมด แนะนำ
ROBO_VERSION_1 เรียกใช้ Robo ในโหมด UIAutomator เท่านั้นโดยไม่ต้องลงนามแอปอีกครั้ง
ROBO_VERSION_2 เรียกใช้ Robo ใน Espresso มาตรฐานโดยมี UIAutomator สำรอง

ความตั้งใจเริ่มต้น Robo

ข้อความสำหรับการระบุกิจกรรมเริ่มต้นที่จะทำการ Crawl

การแสดง JSON
{
  "timeout": string,

  // Union field starting_intent can be only one of the following:
  "launcherActivity": {
    object (LauncherActivityIntent)
  },
  "startActivity": {
    object (StartActivityIntent)
  },
  "noActivity": {
    object (NoActivityIntent)
  }
  // End of list of possible types for union field starting_intent.
}
ช่อง
timeout

string (Duration format)

ระยะหมดเวลาในหน่วยวินาทีสำหรับแต่ละ Intent

ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" ตัวอย่างเช่น "3.5s"

ช่องการรวม starting_intent ต้องระบุ รายละเอียดเกี่ยวกับความตั้งใจในการเริ่มกิจกรรม starting_intent ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
launcherActivity

object (LauncherActivityIntent)

Intent ที่เริ่มต้นกิจกรรมหลักของ Launcher

startActivity

object (StartActivityIntent)

Intent ที่เริ่มกิจกรรมด้วยรายละเอียดที่เฉพาะเจาะจง

noActivity

object (NoActivityIntent)

ข้ามกิจกรรมเริ่มต้น

จุดประสงค์ของ LauncherActivity

ประเภทนี้ไม่มีช่อง

ระบุ Intent ที่เริ่มต้นกิจกรรมหลักของ Launcher

StartActivityIntent

Intent เริ่มต้นที่ระบุโดยการดำเนินการ, URI และหมวดหมู่

การแสดง JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
ช่อง
action

string

ชื่อการดำเนินการ จำเป็นสำหรับ START_ACTIVITY

uri

string

URI สำหรับการดำเนินการ

categories[]

string

หมวดหมู่ความตั้งใจที่จะตั้งค่าความตั้งใจ

ไม่มีกิจกรรมความตั้งใจ

ประเภทนี้ไม่มีช่อง

ข้ามกิจกรรมเริ่มต้น

AndroidTestLoop

การทดสอบแอปพลิเคชัน Android ด้วย Test Loop Intent <intent-name> จะเพิ่มเข้ามาโดยปริยาย เนื่องจากขณะนี้ Games เป็นผู้ใช้เพียงรายเดียวของ 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 สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ ค่าเริ่มต้นจะกำหนดโดยการตรวจสอบไฟล์ Manifest ของแอปพลิเคชัน

scenarios[]

integer

รายการสถานการณ์ที่ควรใช้ระหว่างการทดสอบ ค่าเริ่มต้นคือ Test Loop ทั้งหมด ซึ่งดึงมาจากไฟล์ Manifest ของแอปพลิเคชัน

scenarioLabels[]

string

รายการป้ายกำกับสถานการณ์ที่ควรใช้ระหว่างการทดสอบ ป้ายกำกับสถานการณ์ควรแมปกับป้ายกำกับที่กำหนดในไฟล์ Manifest ของแอปพลิเคชัน ตัวอย่างเช่น Player_experience และ com.google.test.loops.player_experience จะเพิ่มลูปทั้งหมดที่มีป้ายกำกับในไฟล์ Manifest ด้วยชื่อ com.google.test.loops.player_experience ในการเรียกใช้ นอกจากนี้ คุณยังระบุสถานการณ์ในช่องสถานการณ์ได้อีกด้วย

ช่องการรวม app_under_test ต้องระบุ แพ็กเกจ Android ที่จะทดสอบ app_under_test ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
appApk

object (FileReference)

APK สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

appBundle

object (AppBundle)

App Bundle ที่มี APK หลายรายการสำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

การทดสอบ IosXc

การทดสอบแอปพลิเคชัน 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

ตัวเลือกสำหรับทดสอบการให้สิทธิ์พิเศษของแอป การตั้งค่านี้จะลงนามแอปอีกครั้งที่มีสิทธิ์พิเศษด้วยตัวระบุแอปพลิเคชันที่ชัดเจน ปัจจุบันรองรับการให้สิทธิ์สภาพแวดล้อมแอปสำหรับการทดสอบ

การทดสอบลูป Ios

การทดสอบแอปพลิเคชัน iOS ที่ใช้สถานการณ์ Game Loop อย่างน้อย 1 สถานการณ์ การทดสอบประเภทนี้จะยอมรับแอปพลิเคชันที่เก็บถาวร (ไฟล์ .ipa) และรายการสถานการณ์ตัวเลขที่จะดำเนินการในแอปตามลำดับ

การแสดง JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
ช่อง
appIpa

object (FileReference)

ต้องระบุ ไฟล์ .ipa ของแอปพลิเคชันที่จะทดสอบ

scenarios[]

integer

รายการสถานการณ์ที่ควรใช้ระหว่างการทดสอบ ค่าเริ่มต้นจะเป็นสถานการณ์เดียว 0 หากไม่ระบุ

appBundleId

string

เอาต์พุตเท่านั้น รหัสชุดของแอปพลิเคชันที่อยู่ระหว่างทดสอบ

ไอออสโรโบทดสอบ

การทดสอบที่สำรวจแอปพลิเคชัน iOS ในอุปกรณ์ iOS

การแสดง JSON
{
  "appIpa": {
    object (FileReference)
  },
  "appBundleId": string,
  "roboScript": {
    object (FileReference)
  }
}
ช่อง
appIpa

object (FileReference)

ต้องระบุ ควรใช้ IPa ที่จัดเก็บไว้ในไฟล์นี้เพื่อทำการทดสอบ

appBundleId

string

รหัสชุดสำหรับการทดสอบแอปอันเดอร์ ซึ่งกำหนดโดยการตรวจสอบ "Info.plist" ของแอปพลิเคชัน

roboScript

object (FileReference)

Roboscript ที่ไม่บังคับสำหรับปรับแต่งการรวบรวมข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับ Roboscripts ได้ที่ https://firebase.google.com/docs/test-lab/android/robo-scripts-reference

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)

เมทริกซ์ของอุปกรณ์ Android

androidDeviceList

object (AndroidDeviceList)

รายการอุปกรณ์ Android การทดสอบจะทำงานบนอุปกรณ์ที่ระบุเท่านั้น

iosDeviceList

object (IosDeviceList)

รายการอุปกรณ์ iOS

AndroidMatrix

ชุดการเรียงสับเปลี่ยนการกำหนดค่าอุปกรณ์ Android จะกำหนดโดยการข้ามผลิตภัณฑ์ของแกนที่ระบุ AndroidMatrix ที่ระบุจะขยายไปสู่ชุดอุปกรณ์ Android เป็นการภายใน

ระบบจะสร้างอินสแตนซ์เฉพาะการเรียงสับเปลี่ยนที่รองรับเท่านั้น ระบบจะไม่สนใจการเรียงสับเปลี่ยนที่ไม่ถูกต้อง (เช่น โมเดล/เวอร์ชันที่เข้ากันไม่ได้)

การแสดง JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
ช่อง
androidModelIds[]

string

ต้องระบุ รหัสของชุดอุปกรณ์ Android ที่จะใช้ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

androidVersionIds[]

string

ต้องระบุ รหัสของชุดเวอร์ชันของระบบปฏิบัติการ Android ที่จะใช้ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

locales[]

string

ต้องระบุ ชุดภาษาที่อุปกรณ์ทดสอบจะเปิดใช้สำหรับการทดสอบ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

orientations[]

string

ต้องระบุ ชุดการวางแนวที่จะทดสอบ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

รายการอุปกรณ์ Android

รายการการกำหนดค่าอุปกรณ์ Android ที่จะทำการทดสอบ

การแสดง JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
ช่อง
androidDevices[]

object (AndroidDevice)

ต้องระบุ รายการอุปกรณ์ Android

รายการอุปกรณ์ iOS

รายการการกำหนดค่าอุปกรณ์ iOS ที่จะทำการทดสอบ

การแสดง JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
ช่อง
iosDevices[]

object (IosDevice)

ต้องระบุ รายการอุปกรณ์ iOS

อุปกรณ์ iOS

อุปกรณ์ iOS เครื่องเดียว

การแสดง JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
ช่อง
iosModelId

string

ต้องระบุ รหัสของอุปกรณ์ iOS ที่จะใช้ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

iosVersionId

string

ต้องระบุ รหัสของเวอร์ชันซอฟต์แวร์หลักของ iOS ที่จะใช้ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

locale

string

ต้องระบุ ภาษาที่อุปกรณ์ทดสอบใช้ในการทดสอบ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

orientation

string

ต้องระบุ วิธีจัดแนวอุปกรณ์ในระหว่างการทดสอบ ใช้ TestEnvironmentDiscoveryService เพื่อรับตัวเลือกที่รองรับ

การดำเนินการทดสอบ

การทดสอบรายการเดียวที่ดำเนินการในสภาพแวดล้อมเดียว

การแสดง 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" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: "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)

เอาต์พุตเท่านั้น ระยะเวลาชาร์ดโดยประมาณที่อิงตามบันทึกเวลาของกรอบการทดสอบก่อนหน้า หากมี

ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "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)

อุปกรณ์ Android ที่ต้องใช้กับการทดสอบ Android

iosDevice

object (IosDevice)

อุปกรณ์ iOS ที่ต้องใช้กับการทดสอบ iOS

สถานะการทดสอบ

สถานะ (เช่น ความคืบหน้า) ของการดำเนินการหรือเมทริกซ์ทดสอบ

Enum
TEST_STATE_UNSPECIFIED โปรดอย่าใช้ สำหรับการกำหนดเวอร์ชัน Proto เท่านั้น
VALIDATING กำลังตรวจสอบการดำเนินการหรือเมทริกซ์
PENDING การดำเนินการหรือเมทริกซ์กำลังรอให้ทรัพยากรพร้อมใช้งาน
RUNNING

กำลังประมวลผลการดำเนินการ

ตั้งค่าได้เฉพาะในการดำเนินการเท่านั้น

FINISHED

การดำเนินการหรือเมทริกซ์สิ้นสุดลงตามปกติ

ในเมทริกซ์ จะหมายความว่าการประมวลผลระดับเมทริกซ์เสร็จสมบูรณ์ตามปกติ แต่การดำเนินการแต่ละรายการอาจอยู่ในสถานะ ERROR

ERROR การดำเนินการหรือเมทริกซ์หยุดทำงานเนื่องจากพบโครงสร้างพื้นฐานล้มเหลว
UNSUPPORTED_ENVIRONMENT

เรียกใช้การดำเนินการไม่ได้เนื่องจากสอดคล้องกับสภาพแวดล้อมที่ไม่รองรับ

ตั้งค่าได้เฉพาะในการดำเนินการเท่านั้น

INCOMPATIBLE_ENVIRONMENT

ไม่สามารถเรียกใช้การดำเนินการเนื่องจากอินพุตที่ระบุเข้ากันไม่ได้กับสภาพแวดล้อมที่ขอ

ตัวอย่าง: AndroidVersion ที่ขอต่ำกว่า 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

เอาต์พุตเท่านั้น URL ไปยังผลลัพธ์ในเว็บคอนโซล Firebase

พื้นที่เก็บข้อมูล Google Cloud

ตำแหน่งของพื้นที่เก็บข้อมูลภายในพื้นที่เก็บข้อมูลระบบคลาวด์ของ Google (GCS)

การแสดง JSON
{
  "gcsPath": string
}
ช่อง
gcsPath

string

ต้องระบุ เส้นทางไปยังไดเรกทอรีใน GCS ที่จะมีผลลัพธ์ของการทดสอบนี้ ผู้ใช้ที่ส่งคำขอต้องมีสิทธิ์เขียนในที่เก็บข้อมูลในเส้นทางที่ระบุ

ประวัติผลลัพธ์เครื่องมือ

แสดงทรัพยากรประวัติผลลัพธ์ของเครื่องมือ

การแสดง JSON
{
  "projectId": string,
  "historyId": string
}
ช่อง
projectId

string

ต้องระบุ โปรเจ็กต์ระบบคลาวด์ที่เป็นเจ้าของประวัติผลลัพธ์ของเครื่องมือ

historyId

string

ต้องระบุ รหัสประวัติผลลัพธ์ของเครื่องมือ

การเรียกใช้ผลลัพธ์ของเครื่องมือ

แสดงทรัพยากรการดำเนินการผลลัพธ์ของเครื่องมือ

โดยมีผลลัพธ์ของ TestMatrix

การแสดง JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
ช่อง
projectId

string

เอาต์พุตเท่านั้น โปรเจ็กต์ระบบคลาวด์ที่เป็นเจ้าของการดำเนินการผลลัพธ์ของเครื่องมือ

historyId

string

เอาต์พุตเท่านั้น รหัสประวัติผลลัพธ์ของเครื่องมือ

executionId

string

เอาต์พุตเท่านั้น รหัสการดำเนินการผลลัพธ์ของเครื่องมือ

รายละเอียดเมทริกซ์ไม่ถูกต้อง

เหตุผลโดยละเอียดที่เมทริกซ์ถือว่าไม่ถูกต้อง

Enum
INVALID_MATRIX_DETAILS_UNSPECIFIED โปรดอย่าใช้ สำหรับการกำหนดเวอร์ชัน Proto เท่านั้น
DETAILS_UNAVAILABLE เมทริกซ์ไม่ถูกต้อง แต่ไม่มีรายละเอียดเพิ่มเติม
MALFORMED_APK ไม่สามารถแยกวิเคราะห์ APK ของแอปอินพุต
MALFORMED_TEST_APK ไม่สามารถแยกวิเคราะห์ APK การทดสอบอินพุต
NO_MANIFEST ไม่พบ AndroidManifest.xml
NO_PACKAGE_NAME ไฟล์ Manifest ของ APK ไม่ได้ประกาศชื่อแพ็กเกจ
INVALID_PACKAGE_NAME รหัสแอปพลิเคชัน APK (หรือชื่อแพ็กเกจ) ไม่ถูกต้อง โปรดดู https://developer.android.com/studio/build/application-id
TEST_SAME_AS_APP แพ็กเกจทดสอบและแพ็กเกจแอปเหมือนกัน
NO_INSTRUMENTATION apk การทดสอบไม่ได้ประกาศการใช้เครื่องมือ
NO_SIGNATURE APK ของแอปอินพุตไม่มีลายเซ็น
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE คลาสตัวดำเนินการทดสอบที่ระบุโดยผู้ใช้หรือในไฟล์ Manifest ของ APK การทดสอบไม่สามารถใช้งานร่วมกับ Android Test Orchestrator ได้ Orchestrator ใช้งานได้กับ AndroidJUnitRunner เวอร์ชัน 1.1 ขึ้นไปเท่านั้น คุณปิดใช้ Orchestrator ได้โดยใช้ DO_NOT_USE_ORCHESTRATOR OrchestratorOption
NO_TEST_RUNNER_CLASS

APK การทดสอบไม่มีคลาสตัวดำเนินการทดสอบที่ระบุโดยผู้ใช้หรือในไฟล์ Manifest อาจเกิดจากหนึ่งในสาเหตุต่อไปนี้

  • ผู้ใช้ระบุชื่อคลาสตัววิ่งไม่ถูกต้อง หรือ
  • ตัวดำเนินการทดสอบไม่ได้รวมอยู่ใน APK ทดสอบ (อาจอยู่ใน APK ของแอปแทน)
NO_LAUNCHER_ACTIVITY ไม่พบกิจกรรมหลักของ Launcher
FORBIDDEN_PERMISSIONS แอปแจ้งว่ามีสิทธิ์อย่างน้อย 1 รายการที่ไม่ได้รับอนุญาต
INVALID_ROBO_DIRECTIVES มีข้อขัดแย้งใน RoboDirectives ที่ระบุ
INVALID_RESOURCE_NAME มีชื่อทรัพยากรที่ไม่ถูกต้องในคำสั่ง Robo ที่ระบุ
INVALID_DIRECTIVE_ACTION คำจำกัดความของการดำเนินการในคำสั่ง Robo ไม่ถูกต้อง (เช่น การคลิกหรือละเว้นการดำเนินการมีช่องข้อความป้อนข้อมูล)
TEST_LOOP_INTENT_FILTER_NOT_FOUND ไม่มีตัวกรองจุดประสงค์ Test Loop หรือรายการที่กำหนดอยู่ในรูปแบบที่ไม่ถูกต้อง
SCENARIO_LABEL_NOT_DECLARED คำขอมีป้ายกำกับสถานการณ์ที่ไม่ได้ประกาศในไฟล์ Manifest
SCENARIO_LABEL_MALFORMED เกิดข้อผิดพลาดขณะแยกวิเคราะห์ค่าของป้ายกำกับ
SCENARIO_NOT_DECLARED คำขอมีหมายเลขสถานการณ์ที่ไม่ได้ประกาศในไฟล์ Manifest
DEVICE_ADMIN_RECEIVER ไม่อนุญาตให้ใช้แอปพลิเคชันผู้ดูแลระบบอุปกรณ์
MALFORMED_XC_TEST_ZIP XCTest ที่บีบอัดมีรูปแบบไม่ถูกต้อง ไฟล์ ZIP ไม่มีไฟล์ .xctestrun ไฟล์เดียวและเนื้อหาของไดเรกทอรี DerivedData/Build/Products
BUILT_FOR_IOS_SIMULATOR XCTest ที่เป็นไฟล์ ZIP นั้นสร้างขึ้นสำหรับโปรแกรมจำลอง iOS แทนที่จะเป็นอุปกรณ์จริง
NO_TESTS_IN_XC_TEST_ZIP ไฟล์ .xctestrun ไม่ได้ระบุเป้าหมายการทดสอบใดๆ
USE_DESTINATION_ARTIFACTS เป้าหมายการทดสอบอย่างน้อย 1 รายการที่กำหนดไว้ในไฟล์ .xctestrun ระบุ "UseDestinationArtifacts" ซึ่งไม่ได้รับอนุญาต
TEST_NOT_APP_HOSTED การทดสอบ XC ที่เรียกใช้ในอุปกรณ์จริงต้องมี "IsAppHostedTestBundle" == "จริง" ในไฟล์ xctestrun
PLIST_CANNOT_BE_PARSED แยกวิเคราะห์ไฟล์ Info.plist ในไฟล์ ZIP ของ XCTest ไม่ได้
TEST_ONLY_APK

APK มีการทำเครื่องหมายเป็น "testOnly" เลิกใช้งานแล้วและไม่ได้ใช้งานในปัจจุบัน

MALFORMED_IPA แยกวิเคราะห์ IPA ของอินพุตไม่ได้
MISSING_URL_SCHEME แอปพลิเคชันไม่ลงทะเบียนรูปแบบ URL ของ Game Loop
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 เกิดปัญหาที่ไม่รู้จักเกี่ยวกับสิทธิ์ขณะดำเนินการทดสอบ

รายละเอียดข้อผิดพลาดเมทริกซ์

อธิบายข้อผิดพลาดเดี่ยวหรือปัญหาที่เกิดขึ้นกับเมทริกซ์

การแสดง JSON
{
  "reason": string,
  "message": string
}
ช่อง
reason

string

เอาต์พุตเท่านั้น สาเหตุของข้อผิดพลาด ค่านี้เป็นค่าคงที่ใน UPPER_SNAKE_CASE ที่ระบุสาเหตุของข้อผิดพลาด

message

string

เอาต์พุตเท่านั้น ข้อความที่มนุษย์อ่านได้เกี่ยวกับข้อผิดพลาดของ TestMatrix ขยายในช่อง reason โดยมีรายละเอียดเพิ่มเติมและตัวเลือกที่เป็นไปได้ในการแก้ไขปัญหา

สรุปผลลัพธ์

สรุปผลลัพธ์สำหรับเมทริกซ์การทดสอบที่เสร็จสมบูรณ์

Enum
OUTCOME_SUMMARY_UNSPECIFIED โปรดอย่าใช้ สำหรับการกำหนดเวอร์ชัน Proto เท่านั้น
SUCCESS

การดำเนินการทดสอบเมทริกซ์เสร็จสมบูรณ์แล้ว ตัวอย่างเช่น

  • กรอบการทดสอบทั้งหมดผ่านแล้ว
  • Robo ไม่พบข้อขัดข้องของแอปพลิเคชันที่อยู่ระหว่างการทดสอบ
FAILURE

การเรียกใช้ล้มเหลว เช่น

  • กรอบการทดสอบอย่างน้อย 1 รายการล้มเหลว
  • การทดสอบหมดเวลาแล้ว
  • แอปพลิเคชันที่อยู่ภายใต้การทดสอบขัดข้อง
INCONCLUSIVE เกิดข้อผิดพลาดที่ไม่คาดคิด การเรียกใช้อาจยังไม่สำเร็จ แต่นี่อาจเป็นปัญหาชั่วคราว และการทดสอบอีกครั้งอาจสำเร็จได้
SKIPPED

ข้ามการทดสอบทั้งหมด เช่น

  • การกำหนดค่าอุปกรณ์ทั้งหมดใช้ร่วมกันไม่ได้

เมธอด

cancel

ยกเลิกการดำเนินการทดสอบที่ยังไม่เสร็จในเมทริกซ์ทดสอบ

create

สร้างและเรียกใช้เมทริกซ์ของการทดสอบตามข้อกำหนดเฉพาะ

get

ตรวจสอบสถานะของเมทริกซ์ทดสอบและการดำเนินการเมื่อสร้างเมทริกซ์ทดสอบแล้ว