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 ควรพยายามอีกครั้ง หากกรณีทดสอบอย่างน้อย 1 กรณีล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม จำนวนการฉายซ้ำสูงสุดที่อนุญาตคือ 10

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

outcomeSummary

enum ( OutcomeSummary )

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

failFast

boolean

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

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

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

ข้อมูลลูกค้า

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

การเป็นตัวแทน JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
เขตข้อมูล
name

string

ที่จำเป็น. ชื่อลูกค้า เช่น gcloud

clientInfoDetails[]

object ( ClientInfoDetail )

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

ข้อมูลลูกค้ารายละเอียด

คู่คีย์-ค่าของข้อมูลโดยละเอียดเกี่ยวกับไคลเอนต์ที่เรียกใช้การทดสอบ ตัวอย่าง: {'เวอร์ชัน', '1.0'}, {'ช่องทางการเผยแพร่', 'เบต้า'}

การเป็นตัวแทน 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 )

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

iosTestSetup

object ( IosTestSetup )

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

test ภาคสนามของสหภาพ ที่จำเป็น. ประเภทของการทดสอบที่จะรัน test สามารถเป็นได้เพียงอย่างใดอย่างหนึ่งต่อไปนี้:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

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

androidRoboTest

object ( AndroidRoboTest )

การทดสอบโรโบ Android

androidTestLoop

object ( AndroidTestLoop )

แอปพลิเคชัน Android พร้อม Test Loop

iosXcTest

object ( IosXcTest )

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

iosTestLoop

object ( IosTestLoop )

แอปพลิเคชัน iOS พร้อมลูปทดสอบ

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

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

การเป็นตัวแทน 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 )

APK ที่จะติดตั้งเพิ่มเติมจากที่ได้รับการทดสอบโดยตรง ปัจจุบันจำกัดอยู่ที่ 100

account

object ( Account )

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

networkProfile

string

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

environmentVariables[]

object ( EnvironmentVariable )

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

systrace
(deprecated)

object ( SystraceSetup )

การกำหนดค่า Systrace สำหรับการรัน เลิกใช้แล้ว: Systrace ใช้ Python 2 ซึ่งเลิกใช้งานในวันที่ 2020-01-01 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 )

การอ้างอิงถึงไฟล์หยดไบนารีทึบแสง

regularFile

object ( RegularFile )

การอ้างอิงถึงไฟล์ปกติ

ObbFile

ไฟล์ 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 )

ที่จำเป็น. ไฟล์ 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 (การเข้ารหัสเป็นเปอร์เซ็นต์)

RegularFile

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

การเป็นตัวแทน 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 ในแอปและทดสอบโค้ดเพื่อเข้าถึงไฟล์บนอุปกรณ์ด้วยวิธีพกพา

เอพีเค

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

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

object ( GoogleAuto )

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

Googleออโต้

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

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

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

การเป็นตัวแทน JSON
{
  "key": string,
  "value": string
}
เขตข้อมูล
key

string

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

value

string

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

SystraceSetup

การเป็นตัวแทน JSON
{
  "durationSeconds": integer
}
เขตข้อมูล
durationSeconds
(deprecated)

integer

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

IosTestตั้งค่า

คำอธิบายวิธีตั้งค่าอุปกรณ์ 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) โดยการระบุ ID บันเดิล

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

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

การเป็นตัวแทน JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
เขตข้อมูล
content

object ( FileReference )

ไฟล์ต้นฉบับ

bundleId

string

รหัสบันเดิลของแอปที่มีไฟล์นี้อยู่

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

devicePath

string

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

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

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

ดู https://developer.android.com/training/testing/fundamentals สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทของการทดสอบ Android

การเป็นตัวแทน 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

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

  • "ชื่อแพ็คเกจแพ็คเกจ"
  • "คลาส packageName.class_name"
  • "คลาส 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 สำหรับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

แอพบันเดิล

รูปแบบไฟล์ Android App Bundle ที่มีไฟล์ BundleConfig.pb, ไดเร็กทอรีโมดูลฐาน, ไดเร็กทอรีโมดูลคุณลักษณะไดนามิกเป็นศูนย์หรือมากกว่า

ดู https://developer.android.com/guide/app-bundle/build สำหรับคำแนะนำในการสร้าง App Bundle

การเป็นตัวแทน 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_OPTION_UNSPECIFIED ค่าเริ่มต้น: เซิร์ฟเวอร์จะเลือกโหมด ปัจจุบันบอกเป็นนัยว่าการทดสอบจะดำเนินการโดยไม่มีผู้จัดทำ ในอนาคต การทดสอบเครื่องมือวัดทั้งหมดจะดำเนินการร่วมกับผู้จัดทำ แนะนำให้ใช้ orchestrator เป็นอย่างยิ่งเนื่องจากคุณประโยชน์ทั้งหมดที่มีให้
USE_ORCHESTRATOR รันการทดสอบโดยใช้ออเคสตรา ** ใช้งานได้กับ AndroidJUnitRunner เวอร์ชัน 1.1 หรือสูงกว่าเท่านั้น! ** ที่แนะนำ.
DO_NOT_USE_ORCHESTRATOR รันการทดสอบโดยไม่ต้องใช้ 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 )

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

เครื่องแบบชาร์ดดิ้ง

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

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

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

การเป็นตัวแทน JSON
{
  "numShards": integer
}
เขตข้อมูล
numShards

integer

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

การแบ่งส่วนด้วยตนเอง

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

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

การเป็นตัวแทน JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
เขตข้อมูล
testTargetsForShard[]

object ( TestTargetsForShard )

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

ทดสอบ TargetsForShard

ทดสอบเป้าหมายสำหรับชิ้นส่วน

การเป็นตัวแทน JSON
{
  "testTargets": [
    string
  ]
}
เขตข้อมูล
testTargets[]

string

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

จำนวนเป้าหมายการทดสอบต้องมากกว่า 0

SmartSharding

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

การเป็นตัวแทน JSON
{
  "targetedShardDuration": string
}
เขตข้อมูล
targetedShardDuration

string ( Duration format)

ระยะเวลาในการทดสอบภายในชิ้นส่วนที่ควรทำ

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

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

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

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

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

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

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

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

การทดสอบหุ่นยนต์โรโบ

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

appInitialActivity

string

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

maxDepth
(deprecated)

integer

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

maxSteps
(deprecated)

integer

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

roboDirectives[]

object ( RoboDirective )

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

roboMode

enum ( RoboMode )

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

roboScript

object ( FileReference )

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

startingIntents[]

object ( RoboStartingIntent )

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

ฟิลด์ยูเนี่ยน app_under_test ที่จำเป็น. app_under_test สามารถเป็นได้เพียงอย่างใดอย่างหนึ่งต่อไปนี้:
appApk

object ( FileReference )

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

appBundle

object ( AppBundle )

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

RoboDirective

สั่งให้ Robo โต้ตอบกับองค์ประกอบ UI ที่เฉพาะเจาะจง หากพบในระหว่างการรวบรวมข้อมูล ปัจจุบัน 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 ถูกส่งไปตั้งค่า หากเว้นว่างไว้ คำสั่งจะถือเป็นการคลิกบนองค์ประกอบที่ตรงกับชื่อทรัพยากร

actionType

enum ( RoboActionType )

ที่จำเป็น. ประเภทของการกระทำที่ Robo ควรทำกับองค์ประกอบที่ระบุ

ประเภทโรโบแอคชั่น

การดำเนินการที่ Robo สามารถทำได้บนองค์ประกอบ UI

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

โรโบโหมด

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

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

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)

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

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

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

scenarios[]

integer

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

scenarioLabels[]

string

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

ชุดแอปหลาย 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

IosTestLoop

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

การเป็นตัวแทน JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
เขตข้อมูล
appIpa

object ( FileReference )

ที่จำเป็น. .ipa ของแอปพลิเคชันที่จะทดสอบ

scenarios[]

integer

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

appBundleId

string

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

สิ่งแวดล้อมเมทริกซ์

เมทริกซ์ของสภาพแวดล้อมที่จะทำการทดสอบ

การเป็นตัวแทน 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 ฟิลด์ยูเนี่ยน _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

อุปกรณ์ Android

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

การเป็นตัวแทน JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
เขตข้อมูล
androidModelId

string

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

androidVersionId

string

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

locale

string

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

orientation

string

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

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

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

การเป็นตัวแทน JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
เขตข้อมูล
iosDevices[]

object ( IosDevice )

ที่จำเป็น. รายการอุปกรณ์ iOS

อุปกรณ์ iOS

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

การเป็นตัวแทน JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
เขตข้อมูล
iosModelId

string

ที่จำเป็น. ID ของอุปกรณ์ 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 )

เอาท์พุทเท่านั้น ระบุความคืบหน้าปัจจุบันของการดำเนินการทดสอบ (เช่น เสร็จสิ้น)

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 )

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

iosDevice

object ( IosDevice )

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

รัฐทดสอบ

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

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

ขณะนี้กำลังดำเนินการดำเนินการ

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

FINISHED

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

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

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

เอาท์พุทเท่านั้น คำอธิบายโดยละเอียดที่มนุษย์สามารถอ่านได้เกี่ยวกับความคืบหน้าของการทดสอบ ตัวอย่างเช่น: "การจัดเตรียมอุปกรณ์", "เริ่มการทดสอบ"

ในระหว่างการดำเนินการข้อมูลใหม่อาจถูกผนวกเข้ากับส่วนท้ายของความคืบหน้าข้อความ

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 Web Console

GoogleCloudStorage

ที่เก็บข้อมูลภายในที่เก็บข้อมูลบนคลาวด์ของ 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

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

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

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

เอนัม
INVALID_MATRIX_DETAILS_UNSPECIFIED ไม่ได้ใช้. สำหรับเวอร์ชันโปรโตเท่านั้น
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/build/configure-app-module#set-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 ไม่พบกิจกรรมตัวเรียกใช้งานหลัก
FORBIDDEN_PERMISSIONS แอปประกาศสิทธิ์อย่างน้อยหนึ่งรายการที่ไม่ได้รับอนุญาต
INVALID_ROBO_DIRECTIVES มีข้อขัดแย้งใน roboDirectives ที่ให้ไว้
INVALID_RESOURCE_NAME มีชื่อทรัพยากรที่ไม่ถูกต้องอย่างน้อยหนึ่งชื่อในคำสั่ง robo ที่ให้ไว้
INVALID_DIRECTIVE_ACTION คำจำกัดความของการกระทำที่ไม่ถูกต้องในคำสั่ง robo (เช่น การคลิกหรือการละเว้นรวมถึงช่องข้อความที่ป้อน)
TEST_LOOP_INTENT_FILTER_NOT_FOUND ไม่มีตัวกรอง Intent ของ Test Loop หรือตัวกรองที่ให้มามีรูปแบบไม่ถูกต้อง
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 ในไฟล์ 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 มีปัญหาการอนุญาตที่ไม่ทราบสาเหตุในการทดสอบนี้

สรุปผล

สรุปผลลัพธ์สำหรับเมทริกซ์ทดสอบที่เสร็จสิ้นแล้ว

เอนัม
OUTCOME_SUMMARY_UNSPECIFIED ไม่ได้ใช้. สำหรับเวอร์ชันโปรโตเท่านั้น
SUCCESS

การทดสอบเมทริกซ์รันสำเร็จ เช่น:

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

การรันล้มเหลว เช่น:

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

การทดสอบทั้งหมดถูกข้ามไป เช่น:

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

วิธีการ

cancel

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

create

สร้างและรันเมทริกซ์การทดสอบตามข้อกำหนดที่กำหนด

get

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