- 리소스: 테스트매트릭스
- 클라이언트 정보
- 클라이언트정보세부정보
- 테스트사양
- 테스트 설정
- 장치파일
- Obb파일
- 파일참조
- 일반파일
- APK
- 계정
- 구글오토
- 환경 변수
- Systrace 설정
- IosTestSetup
- Ios장치파일
- Android계측 테스트
- 앱번들
- Orchestrator옵션
- 샤딩옵션
- 균일샤딩
- 수동샤딩
- TestTargetsForShard
- 스마트샤딩
- AndroidRobo테스트
- Robo 지시어
- RoboAction 유형
- 로보모드
- RoboStartingIntent
- LauncherActivityIntent
- StartActivityIntent
- Android테스트루프
- IosXc테스트
- IosTestLoop
- 환경 매트릭스
- 안드로이드매트릭스
- AndroidDeviceList
- Android기기
- IosDeviceList
- Ios장치
- 테스트실행
- 사금파리
- 환경
- 테스트상태
- 도구결과단계
- 테스트 세부정보
- 결과저장
- GoogleCloudStorage
- 도구결과 기록
- 도구결과실행
- 잘못된 매트릭스 세부정보
- 결과요약
- 행동 양식
리소스: 테스트매트릭스
TestMatrix는 테스트에 대한 모든 세부 정보를 캡처합니다. 여기에는 환경 구성, 테스트 사양, 테스트 실행, 전반적인 상태 및 결과가 포함됩니다.
JSON 표현 |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
필드 | |
---|---|
testMatrixId | 출력만 가능합니다. 서비스에서 설정한 고유 ID입니다. |
projectId | 테스트 매트릭스를 소유한 클라우드 프로젝트입니다. |
clientInfo | 테스트를 호출한 클라이언트에 대한 정보입니다. |
testSpecification | 필수의. 테스트를 실행하는 방법. |
environmentMatrix | 필수의. 테스트가 실행되는 장치입니다. |
testExecutions[] | 출력만 가능합니다. 서비스가 이 매트릭스에 대해 생성하는 테스트 실행 목록입니다. |
resultStorage | 필수의. 행렬의 결과가 기록되는 위치입니다. |
state | 출력만 가능합니다. 테스트 매트릭스의 현재 진행 상황을 나타냅니다. |
timestamp | 출력만 가능합니다. 이 테스트 매트릭스가 처음 생성된 시간입니다. RFC3339 UTC "Zulu" 형식의 타임스탬프이며 해상도는 나노초이며 최대 9자리 소수 자릿수입니다. 예: |
invalidMatrixDetails | 출력만 가능합니다. 행렬이 유효하지 않은 것으로 간주되는 이유를 설명합니다. INVALID 상태의 행렬에만 유용합니다. |
flakyTestAttempts | 어떤 이유로든 하나 이상의 테스트 사례가 실패하는 경우 TestExecution을 다시 시도해야 하는 횟수입니다. 허용되는 최대 재실행 횟수는 10회입니다. 기본값은 0이며 이는 재실행이 없음을 의미합니다. |
outcomeSummary | 출력 전용. 테스트의 전반적인 결과입니다. 테스트 매트릭스 상태가 FINISHED인 경우에만 설정됩니다. |
failFast | true인 경우 매트릭스의 각 실행/샤드를 실행하기 위해 최대 한 번만 시도됩니다. 불안정한 테스트 시도는 영향을 받지 않습니다. 일반적으로 잠재적인 인프라 문제가 감지되면 2번 이상의 시도가 이루어집니다. 이 기능은 대기 시간에 민감한 워크로드를 위한 것입니다. 빠른 실패 매트릭스의 경우 실행 실패 발생률이 훨씬 더 높을 수 있으며 이러한 기대로 인해 지원이 더 제한됩니다. |
클라이언트 정보
테스트를 호출한 클라이언트에 대한 정보입니다.
JSON 표현 |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
필드 | |
---|---|
name | 필수의. gcloud와 같은 클라이언트 이름입니다. |
clientInfoDetails[] | 클라이언트에 대한 상세 정보 목록입니다. |
클라이언트정보세부정보
테스트를 호출한 클라이언트에 대한 자세한 정보의 키-값 쌍입니다. 예: {'버전', '1.0'}, {'릴리스 트랙', '베타'}.
JSON 표현 |
---|
{ "key": string, "value": string } |
필드 | |
---|---|
key | 필수의. 고객 상세정보의 핵심입니다. |
value | 필수의. 상세한 고객 정보의 가치. |
테스트사양
테스트 실행 방법에 대한 설명입니다.
JSON 표현 |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
필드 | |
---|---|
testTimeout | 자동으로 취소되기 전에 테스트 실행이 실행될 수 있는 최대 시간입니다. 기본값은 5분입니다. 최대 9자리의 소수 자릿수를 포함하는 초 단위 기간이며 ' |
disableVideoRecording | 비디오 녹화를 비활성화합니다. 테스트 대기 시간을 줄일 수 있습니다. |
disablePerformanceMetrics | 성능 지표 기록을 비활성화합니다. 테스트 대기 시간을 줄일 수 있습니다. |
유니언 필드 setup . 테스트 설정 요구 사항. setup 다음 중 하나만 가능합니다. | |
testSetup | Android용 테스트 설정 요구사항(예: 설치할 파일, 부트스트랩 스크립트) |
iosTestSetup | iOS에 대한 테스트 설정 요구 사항입니다. |
유니온 필드 test . 필수의. 실행할 테스트 유형입니다. test 다음 중 하나만 가능합니다. | |
androidInstrumentationTest | Android 계측 테스트입니다. |
androidRoboTest | 안드로이드 로보 테스트. |
androidTestLoop | 테스트 루프가 있는 Android 애플리케이션. |
iosXcTest | .xctestrun 파일을 통한 iOS XCTest. |
iosTestLoop | 테스트 루프가 있는 iOS 애플리케이션. |
테스트 설정
테스트를 실행하기 전에 Android 기기를 설정하는 방법에 대한 설명입니다.
JSON 표현 |
---|
{ "filesToPush": [ { object ( |
필드 | |
---|---|
filesToPush[] | 테스트를 시작하기 전에 장치에 푸시할 파일 목록입니다. |
directoriesToPull[] | 테스트가 끝나면 GCS에 업로드할 기기의 디렉터리 목록입니다. /sdcard, /storage 또는 /data/local/tmp 아래의 절대 경로여야 합니다. 경로 이름은 az AZ 0-9 _ - 문자로 제한됩니다. + 및 / 참고: /sdcard 및 /data 경로가 사용 가능해지며 암시적 경로 대체로 처리됩니다. 예를 들어 특정 장치의 /sdcard가 외부 저장소에 매핑되지 않는 경우 시스템은 이를 해당 장치의 외부 저장소 경로 접두어로 대체합니다. |
additionalApks[] | 직접 테스트 중인 APK 외에 추가로 설치할 APK입니다. 현재 100으로 제한되어 있습니다. |
account | 테스트 기간 동안 장치는 이 계정에 로그인됩니다. |
networkProfile | 테스트 실행에 사용되는 네트워크 트래픽 프로필입니다. TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog를 호출할 때 NETWORK_CONFIGURATION 환경 유형을 사용하여 사용 가능한 네트워크 프로필을 쿼리할 수 있습니다. |
environmentVariables[] | 테스트를 위해 설정할 환경 변수(계측 테스트에만 적용 가능) |
systrace | 실행을 위한 Systrace 구성입니다. 더 이상 사용되지 않음: Systrace는 2020년 1월 1일에 지원이 중단된 Python 2를 사용했습니다. Systrace는 더 이상 Cloud Testing API에서 지원되지 않으며 결과에 Systrace 파일이 제공되지 않습니다. |
dontAutograntPermissions | 앱 설치 시 모든 런타임 권한이 부여되지 않도록 할지 여부 |
장치파일
단일 장치 파일 설명.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
유니온 필드 device_file . 필수의. device_file 다음 중 하나만 가능합니다. | |
obbFile | 불투명 바이너리 Blob 파일에 대한 참조입니다. |
regularFile | 일반 파일에 대한 참조입니다. |
Obb파일
테스트가 시작되기 전에 장치에 설치할 불투명 바이너리 Blob 파일입니다.
JSON 표현 |
---|
{
"obbFileName": string,
"obb": {
object ( |
필드 | |
---|---|
obbFileName | 필수의. Android에서 지정한 형식을 준수해야 하는 OBB 파일 이름(예: <shared-storage>/Android/obb/<package-name>/에 설치될 [main|patch].0300110.com.example.android.obb) 장치에서. |
obb | 필수의. 장치에 설치할 OBB(Opaque Binary Blob) 파일입니다. |
파일참조
사용자 입력에 사용되는 파일에 대한 참조입니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
유니온 필드 file . 필수의. 파일 참조입니다. file 다음 중 하나만 될 수 있습니다. | |
gcsPath | Google Cloud Storage에 있는 파일의 경로입니다. 예: gs://build-app-1414623860166/app%40debug-unaligned.apk 이 경로는 URL로 인코딩되어야 합니다(퍼센트 인코딩). |
일반파일
테스트가 시작되기 전에 장치에 설치할 파일 또는 디렉터리입니다.
JSON 표현 |
---|
{
"content": {
object ( |
필드 | |
---|---|
content | 필수의. 소스 파일. |
devicePath | 필수의. 장치에 콘텐츠를 넣을 위치입니다. 절대 허용 목록 경로여야 합니다. 파일이 존재하면 대체됩니다. 다음 기기 측 디렉터리와 해당 하위 디렉터리가 허용 목록에 포함됩니다. ${EXTERNAL_STORAGE}, /sdcard 또는 /storage ${ANDROID_DATA}/local/tmp 또는 /data/local/tmp 이러한 디렉터리 트리 외부의 경로를 지정하는 것은 유효하지 않습니다. /sdcard 및 /data 경로가 사용 가능해지며 암시적 경로 대체로 처리됩니다. 예를 들어 특정 장치의 /sdcard가 외부 저장소에 매핑되지 않는 경우 시스템은 이를 해당 장치의 외부 저장소 경로 접두어로 바꾸고 거기에 파일을 복사합니다. 이식 가능한 방식으로 장치의 파일에 액세스하려면 앱 및 테스트 코드에서 환경 API를 사용하는 것이 좋습니다. |
APK
설치할 Android 패키지 파일입니다.
JSON 표현 |
---|
{
"location": {
object ( |
필드 | |
---|---|
location | 테스트가 시작되기 전에 기기에 설치될 APK의 경로입니다. |
packageName | 설치할 APK용 Java 패키지입니다. 값은 애플리케이션의 매니페스트를 검사하여 결정됩니다. |
계정
계정과 로그인 방법을 식별합니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
통합 필드 account_type . 필수의. 계정 유형(예: Google) 및 로그인 메커니즘(예: 사용자 이름 및 비밀번호)을 기반으로 합니다. account_type 다음 중 하나만 가능합니다. | |
googleAuto | 자동 Google 로그인 계정입니다. |
구글오토
자동 Google 계정 로그인을 활성화합니다. 설정된 경우 서비스는 테스트를 실행하기 전에 자동으로 Google 테스트 계정을 생성하여 기기에 추가합니다. 테스트 계정은 재사용될 수 있습니다. 많은 애플리케이션은 장치에 계정이 있을 때 전체 기능 세트를 표시합니다. 이렇게 생성된 계정으로 장치에 로그인하면 더 많은 기능을 테스트할 수 있습니다.
환경 변수
테스트에 환경 변수로 전달된 키-값 쌍입니다.
JSON 표현 |
---|
{ "key": string, "value": string } |
필드 | |
---|---|
key | 환경 변수의 키입니다. |
value | 환경 변수의 값입니다. |
Systrace 설정
JSON 표현 |
---|
{ "durationSeconds": integer } |
필드 | |
---|---|
durationSeconds | Systrace 기간(초)입니다. 1~30초 사이여야 합니다. 0은 systrace를 비활성화합니다. |
IosTestSetup
테스트를 실행하기 전에 iOS 장치를 설정하는 방법에 대한 설명입니다.
JSON 표현 |
---|
{ "networkProfile": string, "additionalIpas": [ { object ( |
필드 | |
---|---|
networkProfile | 테스트 실행에 사용되는 네트워크 트래픽 프로필입니다. TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog를 호출할 때 NETWORK_CONFIGURATION 환경 유형을 사용하여 사용 가능한 네트워크 프로필을 쿼리할 수 있습니다. |
additionalIpas[] | 직접 테스트 중인 앱 외에 추가로 설치해야 하는 iOS 앱입니다. |
pushFiles[] | 테스트를 시작하기 전에 장치에 푸시할 파일 목록입니다. |
pullDirectories[] | 테스트가 끝나면 Cloud Storage에 업로드할 기기의 디렉터리 목록입니다. 디렉터리는 공유 디렉터리(예: /private/var/mobile/Media)에 있거나 번들 ID를 지정하여 앱 파일 시스템 내부의 액세스 가능한 디렉터리(예: /Documents) 내에 있어야 합니다. |
Ios장치파일
테스트가 시작되기 전에 장치에 설치할 파일 또는 디렉터리입니다.
JSON 표현 |
---|
{
"content": {
object ( |
필드 | |
---|---|
content | 소스 파일 |
bundleId | 이 파일이 있는 앱의 번들 ID입니다. iOS 앱은 자체 파일 시스템을 샌드박스하므로 앱 파일은 기기에 설치된 앱을 지정해야 합니다. |
devicePath | 앱의 샌드박스 파일 시스템 내 기기의 파일 위치 |
Android계측 테스트
일반적인 수명주기와 관계없이 Android 구성요소를 제어할 수 있는 Android 애플리케이션 테스트입니다. Android 계측 테스트는 가상 또는 실제 AndroidDevice의 동일한 프로세스 내에서 애플리케이션 APK와 테스트 APK를 실행합니다. 또한 선택한 특정 계측 프레임워크에 따라 달라질 수 있는 com.google.GoogleTestRunner와 같은 테스트 실행기 클래스를 지정합니다.
Android 테스트 유형에 대한 자세한 내용은 https://developer.android.com/training/testing/fundamentals를 참조하세요.
JSON 표현 |
---|
{ "testApk": { object ( |
필드 | |
---|---|
testApk | 필수의. 실행할 테스트 코드가 포함된 APK입니다. |
appPackageId | 테스트 중인 애플리케이션의 Java 패키지입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다. |
testPackageId | 테스트를 실행할 Java 패키지입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다. |
testRunnerClass | InstrumentationTestRunner 클래스입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다. |
testTargets[] | 각 대상은 다음 형식 중 하나로 패키지 이름이나 클래스 이름으로 정규화되어야 합니다.
비어 있으면 모듈의 모든 대상이 실행됩니다. |
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 | 여러 샤드에서 테스트를 병렬로 실행하는 옵션입니다. |
유니온 필드 app_under_test . 필수의. app_under_test 다음 중 하나일 수 있습니다. | |
appApk | 테스트 중인 애플리케이션의 APK입니다. |
appBundle | 테스트 중인 애플리케이션을 위한 다중 APK 앱 번들입니다. |
앱번들
BundleConfig.pb 파일, 기본 모듈 디렉터리, 0개 이상의 동적 기능 모듈 디렉터리를 포함하는 Android App Bundle 파일 형식입니다.
App Bundle 구축에 대한 지침은 https://developer.android.com/guide/app-bundle/build를 참조하세요.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
유니언 필드 bundle . 필수의. 번들 위치 정보. bundle 다음 중 하나만 가능합니다: | |
bundleLocation | 테스트 중인 앱 번들을 나타내는 .aab 파일입니다. |
Orchestrator옵션
테스트 실행 방법을 지정합니다.
열거형 | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED | 기본값: 서버가 모드를 선택합니다. 현재 테스트가 오케스트레이터 없이 실행된다는 것을 의미합니다. 앞으로는 모든 계측 테스트가 오케스트레이터를 통해 실행될 것입니다. 오케스트레이터가 제공하는 모든 이점 때문에 오케스트레이터를 사용하는 것이 좋습니다. |
USE_ORCHESTRATOR | Orchestrator를 사용하여 테스트를 실행합니다. ** AndroidJUnitRunner 버전 1.1 이상과만 호환됩니다! ** 추천합니다. |
DO_NOT_USE_ORCHESTRATOR | 오케스트레이터를 사용하지 않고 테스트를 실행합니다. |
샤딩옵션
샤딩 활성화 옵션.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
Union 필드 | |
uniformSharding | 총 샤드 수에 따라 테스트 케이스를 균일하게 샤딩합니다. |
manualSharding | 테스트 사례를 지정된 패키지, 클래스 및/또는 메서드 그룹으로 분할합니다. |
smartSharding | 이전 테스트 케이스 타이밍 기록을 기반으로 샤드 테스트를 수행합니다. |
균일샤딩
총 샤드 수에 따라 테스트 케이스를 균일하게 샤딩합니다.
계측 테스트의 경우 "-e numShard" 및 "-e shardIndex" AndroidJUnitRunner 인수로 변환됩니다. 균일 샤딩이 활성화된 경우 environmentVariables
통해 이러한 샤딩 인수 중 하나를 지정하는 것은 유효하지 않습니다.
AndroidJUnitRunner가 사용하는 샤딩 메커니즘에 따라 테스트 사례가 모든 샤드에 균일하게 배포된다는 보장은 없습니다.
JSON 표현 |
---|
{ "numShards": integer } |
필드 | |
---|---|
numShards | 필수의. 생성할 총 샤드 수입니다. 이는 항상 총 테스트 사례 수보다 크지 않은 양수여야 합니다. 하나 이상의 물리적 장치를 선택하는 경우 샤드 수는 <= 50이어야 합니다. 하나 이상의 ARM 가상 장치를 선택하는 경우 <= 200이어야 합니다. x86 가상 장치만 선택하는 경우 <= 500이어야 합니다. . |
수동샤딩
테스트 사례를 지정된 패키지, 클래스 및/또는 메서드 그룹으로 분할합니다.
수동 샤딩이 활성화된 경우 EnvironmentVariables 또는 InstrumentationTest를 통해 테스트 대상을 지정하는 것은 유효하지 않습니다.
JSON 표현 |
---|
{
"testTargetsForShard": [
{
object ( |
필드 | |
---|---|
testTargetsForShard[] | 필수의. 수동으로 생성된 각 샤드에 대해 실행될 패키지, 클래스 및/또는 테스트 방법의 그룹입니다. 이 필드가 있는 경우 샤드를 하나 이상 지정해야 합니다. 하나 이상의 물리적 장치를 선택하는 경우 반복되는 testTargetsForShard의 수는 <= 50이어야 합니다. 하나 이상의 ARM 가상 장치를 선택하는 경우 <= 200이어야 합니다. x86 가상 장치만 선택하는 경우 <=이어야 합니다. 500. |
TestTargetsForShard
샤드의 대상을 테스트합니다.
JSON 표현 |
---|
{ "testTargets": [ string ] } |
필드 | |
---|---|
testTargets[] | 각 샤드에 대해 실행될 패키지, 클래스 및/또는 테스트 방법의 그룹입니다. 대상은 AndroidJUnitRunner 인수 형식으로 지정되어야 합니다. 예를 들어 "패키지 com.my.packages" "클래스 com.my.package.MyClass"입니다. testTargets의 수는 0보다 커야 합니다. |
스마트샤딩
이전 테스트 케이스 타이밍 기록을 기반으로 샤드 테스트를 수행합니다.
JSON 표현 |
---|
{ "targetedShardDuration": string } |
필드 | |
---|---|
targetedShardDuration | 샤드 내에서 테스트하는 데 걸리는 시간입니다. 기본값: 300초(5분) 허용되는 최소값: 120초(2분) 샤드 수는 최대 샤드 한도(아래 설명)까지 시간을 기준으로 동적으로 설정됩니다. 각 샤드에 대해 최소 하나의 테스트 케이스를 보장하기 위해 샤드 수가 테스트 케이스 수를 초과하지 않습니다. 다음과 같은 경우 샤드 기간이 초과됩니다.
스마트 샤딩은 정확하지 않을 수 있는 테스트 사례 기록과 기본 기간을 사용하므로 샤드 기간이 보장되지 않습니다. 테스트 케이스 타이밍 레코드를 찾는 규칙은 다음과 같습니다.
실제 샤드 기간은 목표 샤드 기간을 초과할 수 있으므로 목표 값을 허용되는 최대 테스트 제한 시간(물리적 장치의 경우 45분, 가상 장치의 경우 60분)보다 최소 5분 작게 설정하거나 사용자 지정 사용자가 설정한 테스트 시간 초과 값입니다. 이 접근 방식을 사용하면 모든 테스트가 완료되기 전에 샤드가 취소되는 것을 방지할 수 있습니다. 최대 샤드 수에는 제한이 있습니다. 하나 이상의 물리적 장치를 선택하는 경우 샤드 수는 <= 50이어야 합니다. 하나 이상의 ARM 가상 장치를 선택하는 경우 <= 200이어야 합니다. x86 가상 장치만 선택하는 경우 <= 500이어야 합니다. .샤드당 최소 하나의 테스트 케이스를 보장하기 위해 샤드 수는 테스트 케이스 수를 초과하지 않습니다. 생성된 각 샤드는 일일 테스트 할당량에 포함됩니다. 최대 9자리의 소수 자릿수를 포함하는 초 단위 기간이며 ' |
AndroidRobo테스트
가상 또는 실제 Android 기기에서 애플리케이션을 탐색하여 범인과 충돌을 찾아내는 Android 애플리케이션 테스트입니다.
JSON 표현 |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
필드 | |
---|---|
appPackageId | 테스트 중인 애플리케이션의 Java 패키지입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다. |
appInitialActivity | 앱을 시작하는 데 사용해야 하는 초기 활동입니다. |
maxDepth | Robo가 탐색할 수 있는 순회 스택의 최대 깊이입니다. Robo가 첫 번째 활동 이후에 앱을 탐색하게 하려면 최소 2개 이상이어야 합니다. 기본값은 50입니다. |
maxSteps | Robo가 실행할 수 있는 최대 단계 수입니다. 기본값은 제한이 없습니다. |
roboDirectives[] | Robo가 크롤링 중에 적용해야 하는 일련의 지시문입니다. 이를 통해 사용자는 크롤링을 맞춤설정할 수 있습니다. 예를 들어 테스트 계정의 사용자 이름과 비밀번호를 제공할 수 있습니다. |
roboMode | Robo가 실행되어야 하는 모드입니다. 대부분의 클라이언트는 서버가 이 필드를 자동으로 채우도록 허용해야 합니다. |
roboScript | Robo가 크롤링을 위한 프롤로그로 수행해야 하는 일련의 작업이 포함된 JSON 파일입니다. |
startingIntents[] | 크롤링을 위해 앱을 실행하는 데 사용되는 인텐트입니다. 아무것도 제공되지 않으면 기본 실행 프로그램 활동이 시작됩니다. 일부가 제공되면 제공된 것만 실행됩니다(기본 실행 프로그램 활동은 명시적으로 제공되어야 함). |
유니온 필드 app_under_test . 필수의. app_under_test 다음 중 하나일 수 있습니다. | |
appApk | 테스트 중인 애플리케이션의 APK입니다. |
appBundle | 테스트 중인 애플리케이션을 위한 다중 APK 앱 번들입니다. |
Robo 지시어
크롤링 중에 특정 UI 요소가 발견되면 Robo가 해당 UI 요소와 상호작용하도록 지시합니다. 현재 Robo는 텍스트 입력이나 요소 클릭을 수행할 수 있습니다.
JSON 표현 |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
필드 | |
---|---|
resourceName | 필수의. 대상 UI 요소의 Android 리소스 이름입니다. 예를 들어 Java에서는: R.string.foo in xml: @string/foo "foo" 부분만 필요합니다. 참조 문서: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText | Robo가 설정하도록 지시하는 텍스트입니다. 비어 있는 경우 지시문은 자원 이름과 일치하는 요소에 대한 클릭으로 처리됩니다. |
actionType | 필수의. 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 |
필드 | |
---|---|
timeout | 각 인텐트의 시간 초과(초)입니다. 최대 9자리의 소수 자릿수를 포함하는 초 단위 기간이며 ' |
유니온 필드 starting_intent . 필수의. 활동을 시작하기 위한 인텐트 세부정보입니다. starting_intent 다음 중 하나만 가능합니다. | |
launcherActivity | 기본 런처 활동을 시작하는 인텐트입니다. |
startActivity | 특정 세부정보로 활동을 시작하는 인텐트입니다. |
LauncherActivityIntent
기본 실행 프로그램 활동을 시작하는 인텐트를 지정합니다.
StartActivityIntent
작업, URI 및 카테고리로 지정된 시작 인텐트입니다.
JSON 표현 |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
필드 | |
---|---|
action | 작업 이름. START_ACTIVITY에 필요합니다. |
uri | 작업의 URI입니다. |
categories[] | 인텐트에 설정할 인텐트 카테고리입니다. |
Android테스트루프
테스트 루프를 사용한 Android 애플리케이션 테스트입니다. 당분간 Games가 이 API의 유일한 사용자이므로 의도 <intent-name>이 암시적으로 추가됩니다.
JSON 표현 |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
필드 | |
---|---|
appPackageId | 테스트 중인 애플리케이션의 Java 패키지입니다. 기본값은 애플리케이션의 매니페스트를 검사하여 결정됩니다. |
scenarios[] | 테스트 중에 실행해야 하는 시나리오 목록입니다. 기본값은 애플리케이션의 매니페스트에서 파생된 모든 테스트 루프입니다. |
scenarioLabels[] | 테스트 중에 실행해야 하는 시나리오 레이블 목록입니다. 시나리오 레이블은 애플리케이션의 매니페스트에 정의된 레이블에 매핑되어야 합니다. 예를 들어, player_experience 및 com.google.test.loops.player_experience는 매니페스트에 com.google.test.loops.player_experience 이름으로 라벨이 지정된 모든 루프를 실행에 추가합니다. 시나리오 필드에서 시나리오를 지정할 수도 있습니다. |
유니온 필드 app_under_test . 필수의. 테스트할 Android 패키지입니다. app_under_test 다음 중 하나일 수 있습니다. | |
appApk | 테스트 중인 애플리케이션의 APK입니다. |
appBundle | 테스트 중인 애플리케이션을 위한 다중 APK 앱 번들입니다. |
IosXc테스트
XCTest 프레임워크를 사용하는 iOS 애플리케이션 테스트입니다. Xcode는 테스트 사양(인수, 테스트 방법 등)이 포함된 .xctestrun 파일을 생성하는 "테스트용 빌드" 옵션을 지원합니다. 이 테스트 유형은 .xctestrun 파일이 포함된 zip 파일과 테스트를 실행하는 데 필요한 모든 바이너리가 포함된 Build/Products 디렉터리의 해당 콘텐츠를 허용합니다.
JSON 표현 |
---|
{ "testsZip": { object ( |
필드 | |
---|---|
testsZip | 필수의. .xctestrun 파일과 DerivedData/Build/Products 디렉터리의 내용이 포함된 .zip입니다. xctestrun 필드가 지정된 경우 이 zip의 .xctestrun 파일은 무시됩니다. |
xctestrun | 테스트 zip의 .xctestrun 파일을 재정의하는 .xctestrun 파일입니다. .xctestrun 파일에는 실행 및/또는 무시할 테스트 메서드와 함께 환경 변수가 포함되어 있으므로 이는 샤딩 테스트에 유용할 수 있습니다. 기본값은 테스트 zip에서 가져옵니다. |
xcodeVersion | 테스트에 사용해야 하는 Xcode 버전입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. 기본값은 Firebase Test Lab이 지원하는 최신 Xcode 버전입니다. |
appBundleId | 출력만 가능합니다. 테스트 중인 애플리케이션의 번들 ID입니다. |
testSpecialEntitlements | 특수 앱 자격을 테스트하는 옵션입니다. 이를 설정하면 명시적인 애플리케이션 식별자를 사용하여 특별한 권한이 있는 앱에 다시 서명하게 됩니다. 현재 aps-environment 자격 테스트를 지원합니다. |
IosTestLoop
하나 이상의 게임 루프 시나리오를 구현하는 iOS 애플리케이션 테스트입니다. 이 테스트 유형은 보관된 애플리케이션(.ipa 파일)과 앱에서 순차적으로 실행될 정수 시나리오 목록을 허용합니다.
JSON 표현 |
---|
{
"appIpa": {
object ( |
필드 | |
---|---|
appIpa | 필수의. 테스트할 애플리케이션의 .ipa입니다. |
scenarios[] | 테스트 중에 실행해야 하는 시나리오 목록입니다. 지정되지 않은 경우 단일 시나리오의 기본값은 0입니다. |
appBundleId | 출력만 가능합니다. 테스트 중인 애플리케이션의 번들 ID입니다. |
환경 매트릭스
테스트가 실행될 환경의 매트릭스입니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
Union 필드 environment_matrix . 필수의. 환경 매트릭스. environment_matrix 다음 중 하나일 수 있습니다. | |
androidMatrix | Android 기기의 매트릭스입니다. |
androidDeviceList | Android 기기 목록 테스트는 지정된 장치에서만 실행됩니다. |
iosDeviceList | iOS 기기 목록입니다. |
안드로이드매트릭스
Android 기기 구성 순열 집합은 지정된 축의 외적으로 정의됩니다. 내부적으로 지정된 AndroidMatrix는 AndroidDevices 집합으로 확장됩니다.
지원되는 순열만 인스턴스화됩니다. 잘못된 순열(예: 호환되지 않는 모델/버전)은 무시됩니다.
JSON 표현 |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
필드 | |
---|---|
androidModelIds[] | 필수의. 사용할 Android 기기 세트의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
androidVersionIds[] | 필수의. 사용할 Android OS 버전 집합의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
locales[] | 필수의. 테스트 장치가 테스트를 위해 활성화할 로캘 집합입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
orientations[] | 필수의. 테스트할 방향 세트입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
AndroidDeviceList
테스트를 실행할 Android 기기 구성 목록입니다.
JSON 표현 |
---|
{
"androidDevices": [
{
object ( |
필드 | |
---|---|
androidDevices[] | 필수의. Android 기기 목록입니다. |
Android기기
단일 Android 기기.
JSON 표현 |
---|
{ "androidModelId": string, "androidVersionId": string, "locale": string, "orientation": string } |
필드 | |
---|---|
androidModelId | 필수의. 사용할 Android 기기의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
androidVersionId | 필수의. 사용할 Android OS 버전의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
locale | 필수의. 테스트에 사용된 테스트 장치의 로케일입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
orientation | 필수의. 테스트 중 장치의 방향을 지정하는 방법입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
IosDeviceList
테스트를 실행할 iOS 기기 구성 목록입니다.
JSON 표현 |
---|
{
"iosDevices": [
{
object ( |
필드 | |
---|---|
iosDevices[] | 필수의. iOS 기기 목록입니다. |
Ios장치
단일 iOS 기기.
JSON 표현 |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
필드 | |
---|---|
iosModelId | 필수의. 사용할 iOS 기기의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
iosVersionId | 필수의. 사용할 iOS 주요 소프트웨어 버전의 ID입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
locale | 필수의. 테스트에 사용된 테스트 장치의 로케일입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
orientation | 필수의. 테스트 중 장치의 방향을 지정하는 방법입니다. 지원되는 옵션을 얻으려면 TestEnvironmentDiscoveryService를 사용하세요. |
테스트실행
단일 환경에서 실행되는 단일 테스트입니다.
JSON 표현 |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
필드 | |
---|---|
id | 출력만 가능합니다. 서비스에서 설정한 고유 ID입니다. |
matrixId | 출력만 가능합니다. 포함된 TestMatrix의 ID입니다. |
projectId | 출력만 가능합니다. 테스트 실행을 소유한 클라우드 프로젝트입니다. |
testSpecification | 출력만 가능합니다. 테스트를 실행하는 방법. |
shard | 출력만 가능합니다. 샤드에 대한 세부정보입니다. |
environment | 출력만 가능합니다. 호스트 시스템이 구성되는 방법. |
state | 출력만 가능합니다. 테스트 실행의 현재 진행 상황을 나타냅니다(예: FINISHED). |
toolResultsStep | 출력만 가능합니다. 이 실행 결과가 기록되는 위치입니다. |
timestamp | 출력만 가능합니다. 이 테스트 실행이 처음 생성된 시간입니다. RFC3339 UTC "Zulu" 형식의 타임스탬프이며 해상도는 나노초이며 최대 9자리 소수 자릿수입니다. 예: |
testDetails | 출력만 가능합니다. 실행 중인 테스트에 대한 추가 세부정보입니다. |
사금파리
출력만 가능합니다. 샤드에 대한 세부정보입니다.
JSON 표현 |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
필드 | |
---|---|
shardIndex | 출력만 가능합니다. 모든 샤드 중 해당 샤드의 인덱스입니다. |
numShards | 출력만 가능합니다. 총 샤드 수입니다. |
testTargetsForShard | 출력만 가능합니다. 각 샤드의 대상을 테스트합니다. 수동 샤딩에만 설정됩니다. |
estimatedShardDuration | 출력만 가능합니다. 가능한 경우 이전 테스트 사례 타이밍 기록을 기반으로 한 예상 샤드 기간입니다. 최대 9자리의 소수 자릿수를 포함하는 초 단위 기간이며 ' |
환경
테스트가 실행되는 환경입니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
유니온 현장 environment . 필수의. 환경. environment 다음 중 하나만 될 수 있습니다. | |
androidDevice | Android 테스트와 함께 사용해야 하는 Android 기기입니다. |
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 | 출력만 가능합니다. 도구 결과 단계를 소유하는 클라우드 프로젝트입니다. |
historyId | 출력만 가능합니다. 도구 결과 기록 ID입니다. |
executionId | 출력만 가능합니다. 도구 결과 실행 ID입니다. |
stepId | 출력만 가능합니다. 도구 결과 단계 ID입니다. |
테스트 세부정보
실행 중인 테스트의 진행 상황에 대한 추가 세부정보입니다.
JSON 표현 |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
필드 | |
---|---|
progressMessages[] | 출력만 가능합니다. 테스트 진행 상황에 대한 사람이 읽을 수 있는 자세한 설명입니다. 예: "장치 프로비저닝", "테스트 시작". 실행 과정에서 ProgressMessage의 끝에 새로운 데이터가 추가될 수 있습니다. |
errorMessage | 출력만 가능합니다. TestState가 ERROR인 경우 이 문자열에는 사람이 읽을 수 있는 오류에 대한 세부 정보가 포함됩니다. |
결과저장
테스트 실행 결과가 저장되는 위치입니다.
JSON 표현 |
---|
{ "googleCloudStorage": { object ( |
필드 | |
---|---|
googleCloudStorage | 필수의. |
toolResultsHistory | 결과가 기록되는 도구 결과 실행이 포함된 도구 결과 기록입니다. 제공되지 않은 경우 서비스는 적절한 값을 선택합니다. |
toolResultsExecution | 출력만 가능합니다. 결과가 기록되는 도구 결과 실행입니다. |
resultsUrl | 출력만 가능합니다. Firebase 웹 콘솔 결과의 URL입니다. |
GoogleCloudStorage
Google 클라우드 저장소(GCS) 내의 저장소 위치입니다.
JSON 표현 |
---|
{ "gcsPath": string } |
필드 | |
---|---|
gcsPath | 필수의. 이 테스트의 결과가 최종적으로 포함될 GCS의 디렉터리 경로입니다. 요청하는 사용자에게는 제공된 경로의 버킷에 대한 쓰기 액세스 권한이 있어야 합니다. |
도구결과 기록
도구 결과 기록 리소스를 나타냅니다.
JSON 표현 |
---|
{ "projectId": string, "historyId": string } |
필드 | |
---|---|
projectId | 필수의. 도구 결과 기록을 소유한 클라우드 프로젝트입니다. |
historyId | 필수의. 도구 결과 기록 ID입니다. |
도구결과실행
도구 결과 실행 리소스를 나타냅니다.
이것은 TestMatrix의 결과입니다.
JSON 표현 |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
필드 | |
---|---|
projectId | 출력만 가능합니다. 도구 결과 실행을 소유한 클라우드 프로젝트입니다. |
historyId | 출력만 가능합니다. 도구 결과 기록 ID입니다. |
executionId | 출력만 가능합니다. 도구 결과 실행 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에는 사용자가 지정하거나 매니페스트 파일에 지정된 테스트 실행기 클래스가 포함되어 있지 않습니다. 이는 다음 이유 중 하나로 인해 발생할 수 있습니다.
|
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 | 테스트 매트릭스 실행이 성공했습니다. 예를 들면 다음과 같습니다.
|
FAILURE | 실행이 실패했습니다. 예를 들면 다음과 같습니다.
|
INCONCLUSIVE | 예상치 못한 일이 일어났습니다. 실행은 여전히 실패한 것으로 간주되어야하지만 이는 일시적인 문제 일 가능성이 높으며 테스트를 다시 실행하는 것이 성공할 수 있습니다. |
SKIPPED | 예를 들어 모든 테스트가 건너 뜁니다.
|
행동 양식 | |
---|---|
| 테스트 매트릭스에서 미완성 테스트 실행을 취소합니다. |
| 주어진 사양에 따라 테스트 행렬을 생성하고 실행합니다. |
| 테스트 매트릭스의 상태와 실행이 생성되면 실행을 확인합니다. |