REST Resource: projects.testMatrices

리소스: 테스트매트릭스

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

출력만 가능합니다. 서비스에서 설정한 고유 ID입니다.

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 )

출력만 가능합니다. 행렬이 유효하지 않은 것으로 간주되는 이유를 설명합니다. INVALID 상태의 행렬에만 유용합니다.

flakyTestAttempts

integer

어떤 이유로든 하나 이상의 테스트 사례가 실패하는 경우 TestExecution을 다시 시도해야 하는 횟수입니다. 허용되는 최대 재실행 횟수는 10회입니다.

기본값은 0이며 이는 재실행이 없음을 의미합니다.

outcomeSummary

enum ( OutcomeSummary )

출력 전용. 테스트의 전반적인 결과입니다. 테스트 매트릭스 상태가 FINISHED인 경우에만 설정됩니다.

failFast

boolean

true인 경우 매트릭스의 각 실행/샤드를 실행하기 위해 최대 한 번만 시도됩니다. 불안정한 테스트 시도는 영향을 받지 않습니다.

일반적으로 잠재적인 인프라 문제가 감지되면 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분입니다.

최대 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 )

안드로이드 로보 테스트.

androidTestLoop

object ( AndroidTestLoop )

테스트 루프가 있는 Android 애플리케이션.

iosXcTest

object ( IosXcTest )

.xctestrun 파일을 통한 iOS XCTest.

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 외에 추가로 설치할 APK입니다. 현재 100으로 제한되어 있습니다.

account

object ( Account )

테스트 기간 동안 장치는 이 계정에 로그인됩니다.

networkProfile

string

테스트 실행에 사용되는 네트워크 트래픽 프로필입니다. TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog를 호출할 때 NETWORK_CONFIGURATION 환경 유형을 사용하여 사용 가능한 네트워크 프로필을 쿼리할 수 있습니다.

environmentVariables[]

object ( EnvironmentVariable )

테스트를 위해 설정할 환경 변수(계측 테스트에만 적용 가능)

systrace
(deprecated)

object ( SystraceSetup )

실행을 위한 Systrace 구성입니다. 더 이상 사용되지 않음: Systrace는 2020년 1월 1일에 지원이 중단된 Python 2를 사용했습니다. Systrace는 더 이상 Cloud Testing API에서 지원되지 않으며 결과에 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

필수의. Android에서 지정한 형식을 준수해야 하는 OBB 파일 이름(예: <shared-storage>/Android/obb/<package-name>/에 설치될 [main|patch].0300110.com.example.android.obb) 장치에서.

obb

object ( FileReference )

필수의. 장치에 설치할 OBB(Opaque Binary Blob) 파일입니다.

파일참조

사용자 입력에 사용되는 파일에 대한 참조입니다.

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가 외부 저장소에 매핑되지 않는 경우 시스템은 이를 해당 장치의 외부 저장소 경로 접두어로 바꾸고 거기에 파일을 복사합니다.

이식 가능한 방식으로 장치의 파일에 액세스하려면 앱 및 테스트 코드에서 환경 API를 사용하는 것이 좋습니다.

APK

설치할 Android 패키지 파일입니다.

JSON 표현
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
필드
location

object ( FileReference )

테스트가 시작되기 전에 기기에 설치될 APK의 경로입니다.

packageName

string

설치할 APK용 Java 패키지입니다. 값은 애플리케이션의 매니페스트를 검사하여 결정됩니다.

계정

계정과 로그인 방법을 식별합니다.

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 테스트 계정을 생성하여 기기에 추가합니다. 테스트 계정은 재사용될 수 있습니다. 많은 애플리케이션은 장치에 계정이 있을 때 전체 기능 세트를 표시합니다. 이렇게 생성된 계정으로 장치에 로그인하면 더 많은 기능을 테스트할 수 있습니다.

환경 변수

테스트에 환경 변수로 전달된 키-값 쌍입니다.

JSON 표현
{
  "key": string,
  "value": string
}
필드
key

string

환경 변수의 키입니다.

value

string

환경 변수의 값입니다.

Systrace 설정

JSON 표현
{
  "durationSeconds": integer
}
필드
durationSeconds
(deprecated)

integer

Systrace 기간(초)입니다. 1~30초 사이여야 합니다. 0은 systrace를 비활성화합니다.

IosTestSetup

테스트를 실행하기 전에 iOS 장치를 설정하는 방법에 대한 설명입니다.

JSON 표현
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
필드
networkProfile

string

테스트 실행에 사용되는 네트워크 트래픽 프로필입니다. TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog를 호출할 때 NETWORK_CONFIGURATION 환경 유형을 사용하여 사용 가능한 네트워크 프로필을 쿼리할 수 있습니다.

additionalIpas[]

object ( FileReference )

직접 테스트 중인 앱 외에 추가로 설치해야 하는 iOS 앱입니다.

pushFiles[]

object ( IosDeviceFile )

테스트를 시작하기 전에 장치에 푸시할 파일 목록입니다.

pullDirectories[]

object ( IosDeviceFile )

테스트가 끝나면 Cloud Storage에 업로드할 기기의 디렉터리 목록입니다.

디렉터리는 공유 디렉터리(예: /private/var/mobile/Media)에 있거나 번들 ID를 지정하여 앱 파일 시스템 내부의 액세스 가능한 디렉터리(예: /Documents) 내에 있어야 합니다.

Ios장치파일

테스트가 시작되기 전에 장치에 설치할 파일 또는 디렉터리입니다.

JSON 표현
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
필드
content

object ( FileReference )

소스 파일

bundleId

string

이 파일이 있는 앱의 번들 ID입니다.

iOS 앱은 자체 파일 시스템을 샌드박스하므로 앱 파일은 기기에 설치된 앱을 지정해야 합니다.

devicePath

string

앱의 샌드박스 파일 시스템 내 기기의 파일 위치

Android계측 테스트

일반적인 수명주기와 관계없이 Android 구성요소를 제어할 수 있는 Android 애플리케이션 테스트입니다. Android 계측 테스트는 가상 또는 실제 AndroidDevice의 동일한 프로세스 내에서 애플리케이션 APK와 테스트 APK를 실행합니다. 또한 선택한 특정 계측 프레임워크에 따라 달라질 수 있는 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 패키지입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다.

testPackageId

string

테스트를 실행할 Java 패키지입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다.

testRunnerClass

string

InstrumentationTestRunner 클래스입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다.

testTargets[]

string

각 대상은 다음 형식 중 하나로 패키지 이름이나 클래스 이름으로 정규화되어야 합니다.

  • "패키지 패키지명"
  • "클래스 패키지 이름.클래스_이름"
  • "클래스 패키지명.클래스_이름#메소드_이름"

비어 있으면 모듈의 모든 대상이 실행됩니다.

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 를 참조하세요.

설정하지 않으면 오케스트레이터 없이 테스트가 실행됩니다.

shardingOption

object ( ShardingOption )

여러 샤드에서 테스트를 병렬로 실행하는 옵션입니다.

유니온 필드 app_under_test . 필수의. app_under_test 다음 중 하나일 수 있습니다.
appApk

object ( FileReference )

테스트 중인 애플리케이션의 APK입니다.

appBundle

object ( AppBundle )

테스트 중인 애플리케이션을 위한 다중 APK 앱 번들입니다.

앱번들

BundleConfig.pb 파일, 기본 모듈 디렉터리, 0개 이상의 동적 기능 모듈 디렉터리를 포함하는 Android App Bundle 파일 형식입니다.

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 파일입니다.

Orchestrator옵션

테스트 실행 방법을 지정합니다.

열거형
ORCHESTRATOR_OPTION_UNSPECIFIED 기본값: 서버가 모드를 선택합니다. 현재 테스트가 오케스트레이터 없이 실행된다는 것을 의미합니다. 앞으로는 모든 계측 테스트가 오케스트레이터를 통해 실행될 것입니다. 오케스트레이터가 제공하는 모든 이점 때문에 오케스트레이터를 사용하는 것이 좋습니다.
USE_ORCHESTRATOR Orchestrator를 사용하여 테스트를 실행합니다. ** AndroidJUnitRunner 버전 1.1 이상과만 호환됩니다! ** 추천합니다.
DO_NOT_USE_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.
}
필드

Union 필드 option .

option 다음 중 하나만 될 수 있습니다.

uniformSharding

object ( UniformSharding )

총 샤드 수에 따라 테스트 케이스를 균일하게 샤딩합니다.

manualSharding

object ( ManualSharding )

테스트 사례를 지정된 패키지, 클래스 및/또는 메서드 그룹으로 분할합니다.

smartSharding

object ( SmartSharding )

이전 테스트 케이스 타이밍 기록을 기반으로 샤드 테스트를 수행합니다.

균일샤딩

총 샤드 수에 따라 테스트 케이스를 균일하게 샤딩합니다.

계측 테스트의 경우 "-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 )

필수의. 수동으로 생성된 각 샤드에 대해 실행될 패키지, 클래스 및/또는 테스트 방법의 그룹입니다. 이 필드가 있는 경우 샤드를 하나 이상 지정해야 합니다. 하나 이상의 물리적 장치를 선택하는 경우 반복되는 testTargetsForShard의 수는 <= 50이어야 합니다. 하나 이상의 ARM 가상 장치를 선택하는 경우 <= 200이어야 합니다. x86 가상 장치만 선택하는 경우 <=이어야 합니다. 500.

TestTargetsForShard

샤드의 대상을 테스트합니다.

JSON 표현
{
  "testTargets": [
    string
  ]
}
필드
testTargets[]

string

각 샤드에 대해 실행될 패키지, 클래스 및/또는 테스트 방법의 그룹입니다. 대상은 AndroidJUnitRunner 인수 형식으로 지정되어야 합니다. 예를 들어 "패키지 com.my.packages" "클래스 com.my.package.MyClass"입니다.

testTargets의 수는 0보다 커야 합니다.

스마트샤딩

이전 테스트 케이스 타이밍 기록을 기반으로 샤드 테스트를 수행합니다.

JSON 표현
{
  "targetedShardDuration": string
}
필드
targetedShardDuration

string ( Duration format)

샤드 내에서 테스트하는 데 걸리는 시간입니다.

기본값: 300초(5분) 허용되는 최소값: 120초(2분)

샤드 수는 최대 샤드 한도(아래 설명)까지 시간을 기준으로 동적으로 설정됩니다. 각 샤드에 대해 최소 하나의 테스트 케이스를 보장하기 위해 샤드 수가 테스트 케이스 수를 초과하지 않습니다. 다음과 같은 경우 샤드 기간이 초과됩니다.

  • 최대 샤드 한도에 도달했으며 샤드에 할당할 계산된 테스트 시간이 더 남아 있습니다.
  • 모든 개별 테스트는 목표 샤드 기간보다 긴 것으로 추정됩니다.

스마트 샤딩은 정확하지 않을 수 있는 테스트 사례 기록과 기본 기간을 사용하므로 샤드 기간이 보장되지 않습니다. 테스트 케이스 타이밍 레코드를 찾는 규칙은 다음과 같습니다.

  • 서비스에서 지난 30일 동안 테스트 케이스를 처리한 경우 가장 최근에 성공한 테스트 케이스의 기록이 사용됩니다.
  • 새로운 테스트 케이스의 경우 알려진 다른 테스트 케이스의 평균 기간이 사용됩니다.
  • 사용 가능한 이전 테스트 케이스 타이밍 레코드가 없는 경우 기본 테스트 케이스 기간은 15초입니다.

실제 샤드 기간은 목표 샤드 기간을 초과할 수 있으므로 목표 값을 허용되는 최대 테스트 제한 시간(물리적 장치의 경우 45분, 가상 장치의 경우 60분)보다 최소 5분 작게 설정하거나 사용자 지정 사용자가 설정한 테스트 시간 초과 값입니다. 이 접근 방식을 사용하면 모든 테스트가 완료되기 전에 샤드가 취소되는 것을 방지할 수 있습니다.

최대 샤드 수에는 제한이 있습니다. 하나 이상의 물리적 장치를 선택하는 경우 샤드 수는 <= 50이어야 합니다. 하나 이상의 ARM 가상 장치를 선택하는 경우 <= 200이어야 합니다. x86 가상 장치만 선택하는 경우 <= 500이어야 합니다. .샤드당 최소 하나의 테스트 케이스를 보장하기 위해 샤드 수는 테스트 케이스 수를 초과하지 않습니다. 생성된 각 샤드는 일일 테스트 할당량에 포함됩니다.

최대 9자리의 소수 자릿수를 포함하는 초 단위 기간이며 ' s '로 끝납니다. 예: "3.5s" .

AndroidRobo테스트

가상 또는 실제 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가 탐색할 수 있는 순회 스택의 최대 깊이입니다. Robo가 첫 번째 활동 이후에 앱을 탐색하게 하려면 최소 2개 이상이어야 합니다. 기본값은 50입니다.

maxSteps
(deprecated)

integer

Robo가 실행할 수 있는 최대 단계 수입니다. 기본값은 제한이 없습니다.

roboDirectives[]

object ( RoboDirective )

Robo가 크롤링 중에 적용해야 하는 일련의 지시문입니다. 이를 통해 사용자는 크롤링을 맞춤설정할 수 있습니다. 예를 들어 테스트 계정의 사용자 이름과 비밀번호를 제공할 수 있습니다.

roboMode

enum ( RoboMode )

Robo가 실행되어야 하는 모드입니다. 대부분의 클라이언트는 서버가 이 필드를 자동으로 채우도록 허용해야 합니다.

roboScript

object ( FileReference )

Robo가 크롤링을 위한 프롤로그로 수행해야 하는 일련의 작업이 포함된 JSON 파일입니다.

startingIntents[]

object ( RoboStartingIntent )

크롤링을 위해 앱을 실행하는 데 사용되는 인텐트입니다. 아무것도 제공되지 않으면 기본 실행 프로그램 활동이 시작됩니다. 일부가 제공되면 제공된 것만 실행됩니다(기본 실행 프로그램 활동은 명시적으로 제공되어야 함).

유니온 필드 app_under_test . 필수의. app_under_test 다음 중 하나일 수 있습니다.
appApk

object ( FileReference )

테스트 중인 애플리케이션의 APK입니다.

appBundle

object ( AppBundle )

테스트 중인 애플리케이션을 위한 다중 APK 앱 번들입니다.

Robo 지시어

크롤링 중에 특정 UI 요소가 발견되면 Robo가 해당 UI 요소와 상호작용하도록 지시합니다. 현재 Robo는 텍스트 입력이나 요소 클릭을 수행할 수 있습니다.

JSON 표현
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
필드
resourceName

string

필수의. 대상 UI 요소의 Android 리소스 이름입니다. 예를 들어 Java에서는: R.string.foo in xml: @string/foo "foo" 부분만 필요합니다. 참조 문서: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Robo가 설정하도록 지시하는 텍스트입니다. 비어 있는 경우 지시문은 자원 이름과 일치하는 요소에 대한 클릭으로 처리됩니다.

actionType

enum ( RoboActionType )

필수의. Robo가 지정된 요소에 대해 수행해야 하는 작업 유형입니다.

RoboAction 유형

Robo가 UI 요소에 대해 수행할 수 있는 작업입니다.

열거형
ACTION_TYPE_UNSPECIFIED 사용하지 마세요. 프로토 버전 관리에만 해당됩니다.
SINGLE_CLICK Robo가 지정된 요소를 클릭하도록 지시합니다. 지정된 요소를 클릭할 수 없으면 작동하지 않습니다.
ENTER_TEXT Robo가 지정된 요소에 텍스트를 입력하도록 지시합니다. 지정된 요소가 활성화되지 않거나 텍스트 입력을 허용하지 않으면 작동하지 않습니다.
IGNORE Robo에게 특정 요소와의 상호작용을 무시하도록 지시합니다.

로보모드

Robo가 실행되어야 하는 모드입니다.

열거형
ROBO_MODE_UNSPECIFIED 이는 서버가 모드를 선택해야 함을 의미합니다. 추천합니다.
ROBO_VERSION_1 앱을 다시 종료하지 않고 UIAutomator 전용 모드에서 Robo를 실행합니다.
ROBO_VERSION_2 UIAutomator 폴백을 사용하여 표준 Espresso에서 Robo를 실행합니다.

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)

각 인텐트의 시간 초과(초)입니다.

최대 9자리의 소수 자릿수를 포함하는 초 단위 기간이며 ' 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

인텐트에 설정할 인텐트 카테고리입니다.

Android테스트루프

테스트 루프를 사용한 Android 애플리케이션 테스트입니다. 당분간 Games가 이 API의 유일한 사용자이므로 의도 <intent-name>이 암시적으로 추가됩니다.

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 . 필수의. 테스트할 Android 패키지입니다. app_under_test 다음 중 하나일 수 있습니다.
appApk

object ( FileReference )

테스트 중인 애플리케이션의 APK입니다.

appBundle

object ( AppBundle )

테스트 중인 애플리케이션을 위한 다중 APK 앱 번들입니다.

IosXc테스트

XCTest 프레임워크를 사용하는 iOS 애플리케이션 테스트입니다. Xcode는 테스트 사양(인수, 테스트 방법 등)이 포함된 .xctestrun 파일을 생성하는 "테스트용 빌드" 옵션을 지원합니다. 이 테스트 유형은 .xctestrun 파일이 포함된 zip 파일과 테스트를 실행하는 데 필요한 모든 바이너리가 포함된 Build/Products 디렉터리의 해당 콘텐츠를 허용합니다.

JSON 표현
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
필드
testsZip

object ( FileReference )

필수의. .xctestrun 파일과 DerivedData/Build/Products 디렉터리의 내용이 포함된 .zip입니다. xctestrun 필드가 지정된 경우 이 zip의 .xctestrun 파일은 무시됩니다.

xctestrun

object ( FileReference )

테스트 zip의 .xctestrun 파일을 재정의하는 .xctestrun 파일입니다. .xctestrun 파일에는 실행 및/또는 무시할 테스트 메서드와 함께 환경 변수가 포함되어 있으므로 이는 샤딩 테스트에 유용할 수 있습니다. 기본값은 테스트 zip에서 가져옵니다.

xcodeVersion

string

테스트에 사용해야 하는 Xcode 버전입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. 기본값은 Firebase Test Lab이 지원하는 최신 Xcode 버전입니다.

appBundleId

string

출력만 가능합니다. 테스트 중인 애플리케이션의 번들 ID입니다.

testSpecialEntitlements

boolean

특수 앱 자격을 테스트하는 옵션입니다. 이를 설정하면 명시적인 애플리케이션 식별자를 사용하여 특별한 권한이 있는 앱에 다시 서명하게 됩니다. 현재 aps-environment 자격 테스트를 지원합니다.

IosTestLoop

하나 이상의 게임 루프 시나리오를 구현하는 iOS 애플리케이션 테스트입니다. 이 테스트 유형은 보관된 애플리케이션(.ipa 파일)과 앱에서 순차적으로 실행될 정수 시나리오 목록을 허용합니다.

JSON 표현
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
필드
appIpa

object ( FileReference )

필수의. 테스트할 애플리케이션의 .ipa입니다.

scenarios[]

integer

테스트 중에 실행해야 하는 시나리오 목록입니다. 지정되지 않은 경우 단일 시나리오의 기본값은 0입니다.

appBundleId

string

출력만 가능합니다. 테스트 중인 애플리케이션의 번들 ID입니다.

환경 매트릭스

테스트가 실행될 환경의 매트릭스입니다.

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.
}
필드
Union 필드 environment_matrix . 필수의. 환경 매트릭스. environment_matrix 다음 중 하나일 수 있습니다.
androidMatrix

object ( AndroidMatrix )

Android 기기의 매트릭스입니다.

androidDeviceList

object ( AndroidDeviceList )

Android 기기 목록 테스트는 지정된 장치에서만 실행됩니다.

iosDeviceList

object ( IosDeviceList )

iOS 기기 목록입니다.

안드로이드매트릭스

Android 기기 구성 순열 집합은 지정된 축의 외적으로 정의됩니다. 내부적으로 지정된 AndroidMatrix는 AndroidDevices 집합으로 확장됩니다.

지원되는 순열만 인스턴스화됩니다. 잘못된 순열(예: 호환되지 않는 모델/버전)은 무시됩니다.

JSON 표현
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
필드
androidModelIds[]

string

필수의. 사용할 Android 기기 세트의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

androidVersionIds[]

string

필수의. 사용할 Android OS 버전 집합의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

locales[]

string

필수의. 테스트 장치가 테스트를 위해 활성화할 로캘 집합입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

orientations[]

string

필수의. 테스트할 방향 세트입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

AndroidDeviceList

테스트를 실행할 Android 기기 구성 목록입니다.

JSON 표현
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
필드
androidDevices[]

object ( AndroidDevice )

필수의. Android 기기 목록입니다.

Android기기

단일 Android 기기.

JSON 표현
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
필드
androidModelId

string

필수의. 사용할 Android 기기의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

androidVersionId

string

필수의. 사용할 Android OS 버전의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

locale

string

필수의. 테스트에 사용된 테스트 장치의 로케일입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

orientation

string

필수의. 테스트 중 장치의 방향을 지정하는 방법입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

IosDeviceList

테스트를 실행할 iOS 기기 구성 목록입니다.

JSON 표현
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
필드
iosDevices[]

object ( IosDevice )

필수의. iOS 기기 목록입니다.

Ios장치

단일 iOS 기기.

JSON 표현
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
필드
iosModelId

string

필수의. 사용할 iOS 기기의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요.

iosVersionId

string

필수의. 사용할 iOS 주요 소프트웨어 버전의 ID입니다. 지원되는 옵션을 얻으려면 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

출력만 가능합니다. 서비스에서 설정한 고유 ID입니다.

matrixId

string

출력만 가능합니다. 포함된 TestMatrix의 ID입니다.

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 기기입니다.

테스트상태

테스트 실행 또는 매트릭스의 상태(즉, 진행률)입니다.

열거형
TEST_STATE_UNSPECIFIED 사용하지 마세요. 프로토 버전 관리에만 해당됩니다.
VALIDATING 실행 또는 매트릭스가 검증되고 있습니다.
PENDING 실행 또는 매트릭스가 리소스를 사용할 수 있을 때까지 기다리고 있습니다.
RUNNING

현재 실행을 처리 중입니다.

실행 시에만 설정할 수 있습니다.

FINISHED

실행 또는 매트릭스가 정상적으로 종료되었습니다.

매트릭스에서 이는 매트릭스 수준 처리가 정상적으로 완료되었지만 개별 실행이 ERROR 상태에 있을 수 있음을 의미합니다.

ERROR 인프라 오류가 발생하여 실행 또는 매트릭스가 중지되었습니다.
UNSUPPORTED_ENVIRONMENT

지원되지 않는 환경에 해당하므로 실행이 실행되지 않았습니다.

실행 시에만 설정할 수 있습니다.

INCOMPATIBLE_ENVIRONMENT

제공된 입력이 요청된 환경과 호환되지 않기 때문에 실행이 실행되지 않았습니다.

예: 요청된 AndroidVersion이 APK의 minSdkVersion보다 낮습니다.

실행 시에만 설정할 수 있습니다.

INCOMPATIBLE_ARCHITECTURE

제공된 입력이 요청된 아키텍처와 호환되지 않기 때문에 실행이 실행되지 않았습니다.

예: 요청한 기기는 제공된 APK의 네이티브 코드 실행을 지원하지 않습니다.

실행 시에만 설정할 수 있습니다.

CANCELLED

사용자가 실행을 취소했습니다.

실행 시에만 설정할 수 있습니다.

INVALID

제공된 입력이 유효하지 않기 때문에 실행 또는 매트릭스가 실행되지 않았습니다.

예: 입력 파일이 예상된 유형이 아니거나, 형식이 잘못되었거나 손상되었거나, 악성 코드로 표시되었습니다.

도구결과단계

도구 결과 단계 리소스를 나타냅니다.

여기에는 TestExecution의 결과가 있습니다.

JSON 표현
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
필드
projectId

string

출력만 가능합니다. 도구 결과 단계를 소유하는 클라우드 프로젝트입니다.

historyId

string

출력만 가능합니다. 도구 결과 기록 ID입니다.

executionId

string

출력만 가능합니다. 도구 결과 실행 ID입니다.

stepId

string

출력만 가능합니다. 도구 결과 단계 ID입니다.

테스트 세부정보

실행 중인 테스트의 진행 상황에 대한 추가 세부정보입니다.

JSON 표현
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
필드
progressMessages[]

string

출력만 가능합니다. 테스트 진행 상황에 대한 사람이 읽을 수 있는 자세한 설명입니다. 예: "장치 프로비저닝", "테스트 시작".

실행 과정에서 ProgressMessage의 끝에 새로운 데이터가 추가될 수 있습니다.

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 웹 콘솔 결과의 URL입니다.

GoogleCloudStorage

Google 클라우드 저장소(GCS) 내의 저장소 위치입니다.

JSON 표현
{
  "gcsPath": string
}
필드
gcsPath

string

필수의. 이 테스트의 결과가 최종적으로 포함될 GCS의 디렉터리 경로입니다. 요청하는 사용자에게는 제공된 경로의 버킷에 대한 쓰기 액세스 권한이 있어야 합니다.

도구결과 기록

도구 결과 기록 리소스를 나타냅니다.

JSON 표현
{
  "projectId": string,
  "historyId": string
}
필드
projectId

string

필수의. 도구 결과 기록을 소유한 클라우드 프로젝트입니다.

historyId

string

필수의. 도구 결과 기록 ID입니다.

도구결과실행

도구 결과 실행 리소스를 나타냅니다.

이것은 TestMatrix의 결과입니다.

JSON 표현
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
필드
projectId

string

출력만 가능합니다. 도구 결과 실행을 소유한 클라우드 프로젝트입니다.

historyId

string

출력만 가능합니다. 도구 결과 기록 ID입니다.

executionId

string

출력만 가능합니다. 도구 결과 실행 ID입니다.

잘못된 매트릭스 세부정보

매트릭스가 유효하지 않은 것으로 간주된 자세한 이유입니다.

열거형
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 애플리케이션 ID(패키지 이름이라고도 함)가 잘못되었습니다. 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 이상과만 호환됩니다. DO_NOT_USE_ORCHESTRATOR OrchestratorOption을 사용하여 Orchestrator를 비활성화할 수 있습니다.
NO_TEST_RUNNER_CLASS

테스트 APK에는 사용자가 지정하거나 매니페스트 파일에 지정된 테스트 실행기 클래스가 포함되어 있지 않습니다. 이는 다음 이유 중 하나로 인해 발생할 수 있습니다.

  • 사용자가 잘못된 실행기 클래스 이름을 제공했거나
  • 테스트 실행기는 테스트 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 테스트 루프 인텐트 필터가 없거나 제공된 필터의 형식이 올바르지 않습니다.
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 테스트는 xctestrun 파일에 "IsAppHostedTestBundle" == "true"가 있어야 합니다.
PLIST_CANNOT_BE_PARSED XCTest zip의 Info.plist 파일을 구문 분석할 수 없습니다.
TEST_ONLY_APK

APK는 "testOnly"로 표시됩니다. 더 이상 사용되지 않으며 현재 사용되지 않습니다.

MALFORMED_IPA 입력 IPA를 구문 분석할 수 없습니다.
MISSING_URL_SCHEME 애플리케이션이 게임 루프 URL 구성표를 등록하지 않습니다.
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

테스트 매트릭스의 상태와 실행이 생성되면 실행을 확인합니다.