이 가이드에서는
gcloud beta device-run CLI를 사용하여 Android 계측 테스트를 실행하고 Google Cloud 콘솔에서 결과를 찾는 방법을 설명합니다. 계정 Google Cloud 및 프로젝트가 있다고 가정합니다.
이 Google Cloud CLI를 사용하려면 Google Cloud 프로젝트 ID를 제공해야 합니다.
시작하기 전에
이 단계에서는 이미 Google Cloud 프로젝트를 만들고 개발자 기기 플랫폼
빠른 시작 가이드의 설정 단계를 완료했으며 터미널에서 gcloud로 인증했다고 가정합니다.
또한 실행할 준비가 된 Android 계측 테스트가 있어야 합니다. 안내는 계측 테스트 빌드를 참고하세요.
또한 워크로드를 실행할 기기 ID를 식별해야 합니다. 안내는 기기 카탈로그를 참고하세요.
테스트 실행
이제 앱 테스트에 사용할 수 있는 기기의 ID를 알았으므로
gcloud beta device-run sessions submit
instrumentation 명령어와 --device 플래그를 사용하여 기기를 지정하고 계측 테스트를 실행할 수 있습니다.
테스트를 실행하려면 다음과 유사한 명령어를 실행하되 자체 기기 ID와 테스트 경로를 사용하세요.
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
작업의 결과 보고서 폴더는
gs://<your_project_id>/automation/sessions/session-id/와 같은 Cloud Storage 경로에서 찾을 수 있습니다. https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/와 유사한 링크는 테스트 출력을 참고하세요.
테스트 실행 구성
이제 테스트를 실행했으므로 몇 가지 구성 옵션을 살펴보세요.
- 여러 기기에서 동일한 테스트를 실행하려면
--device플래그 를 여러 번 제공합니다(예:--device shiba-34 --device tokay-36). - 선택적으로
--apps=path1,path2,...,path_n플래그를 사용하여 테스트를 실행하기 전에 설치할 APK를 하나 이상 지정할 수 있습니다. 지정하는 순서대로 이러한 앱이 설치됩니다. --test플래그로 테스트 APK를 지정해야 합니다.--apps또는--test플래그로 로컬 경로를 지정하면 Google Cloud CLI CLI는 명령어를 실행할 때마다gs://my-project-id/automation/inputs/date_time_four_chars_suffix/아래의 Cloud Storage 버킷에 자동으로 복사합니다.- 대용량 APK를 업로드하는 데 시간이 오래 걸릴 수 있으므로 Cloud Storage
gs://경로를 사용하여 APK를 직접 참조하여 업로드 시간을 절약할 수 있습니다.
sessions submit instrumentation 명령어는 기본적으로 세션 결과를 차단합니다. 즉, 테스트 실행이 완료될 때까지 기다리고 다음과 유사한 결과를 출력합니다.
Using the default Cloud Storage bucket [gs://<my-project-id>] for input and result files. Will create the bucket if it does not exist.
Uploading [app.apk].
Uploading [test.apk].
Initiated long-running operation [operation-number] to create session.
Creating session [session-id] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/<my-project-id>/automation/sessions/session-id/].
Waiting for session [session-id] to complete....done.
Session [session-id] finished with result [FAILED].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
명령어를 비동기식으로 실행하려면 --async 플래그를 포함합니다. 이렇게 하면 Cloud Storage에 파일을 업로드하고 작업 ID와 세션 ID를 출력한 후 명령어가 즉시 종료될 수 있습니다. operations wait 명령어와 작업 ID를 사용하여 실행을 기다릴 수 있습니다. 작업이 완료될 때까지 차단됩니다.
gcloud beta device-run operations wait your_operation_id
샤딩 사용
지속적 통합 및 지속적 배포(CI/CD) 워크플로에 개발자 기기 플랫폼을 포함하려면 테스트를 샤딩하는 것이 좋습니다. 테스트 샤딩 시 격리되어 개별적으로 실행되는 하위 그룹 (샤드)으로 테스트 집합이 분할됩니다. 개발자 기기 플랫폼은 여러 기기를 사용하여 각 샤드를 자동으로 병렬로 실행하고 더 짧은 시간에 전체 테스트 집합을 완료합니다.
샤딩 옵션
작업에 테스트 사례가 몇 개만 있거나 모든 테스트 사례의 총 실행 시간이 길지 않은 경우 샤딩을 사용할 필요가 없습니다. 테스트 사례가 많거나 모든 테스트 사례의 총 실행 시간이 긴 경우 샤딩을 사용하는 것이 좋습니다.
개발자 기기 플랫폼은 스마트 샤딩과 균일 샤딩을 모두 지원합니다. 테스트를 샤딩하는 방법을 결정할 때는 다음 옵션을 고려하세요.
모든 테스트 사례에 비슷한 시간이 걸리는 경우 모든 테스트 사례를
n샤드로 나누어 균일 샤딩을 사용합니다.테스트 사례마다 실행 시간이 크게 다른 경우 스마트 샤딩을 사용합니다. 개발자 기기 플랫폼은 이전 테스트 실행 시간을 사용하여 여러 샤드를 만들고 비슷한 기간에 모든 샤드를 완료하려고 시도합니다.
균일 샤딩
균일 샤딩으로 테스트를 샤딩하려면 다음과 같이 sessions submit instrumentation 명령어에 --sharding-option=uniform 및 --uniform-sharding-count= 플래그를 포함합니다.
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34 \
--device tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Job status: 2 running을 나타내는 출력이 표시됩니다. 이 서비스는 기기당 하나씩 두 개의 작업을 만듭니다. 두 작업의 입력이 동일하므로 서비스는 유효성 검사를 중앙 집중화하여 한 번만 실행합니다.
완료되면 명령어의 최종 출력에 두 작업이 별도로 표시됩니다.
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
스마트 샤딩
스마트 샤딩으로 테스트를 샤딩하려면 다음과 같이 sessions
submit instrumentation 명령어에 --sharding-option=smart,
--smart-sharding-max-shard-count=, --smart-sharding-target-duration= (분 또는 1시간), --smart-sharding-record-name= 플래그를 포함합니다.
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34 \
--device shiba-35 \
--device tokay-36 \
--sharding-option=smart \
--smart-sharding-max-shard-count=3 \
--smart-sharding-target-duration=5m \
--smart-sharding-record-name=test.yaml
세 개의 작업이 실행되었음을 나타내는 최종 출력이 표시됩니다.
Session [session-3cd0564a] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
job-002 execution-000 PASSED
다음은 여기에서 사용되는 스마트 샤딩 플래그를 요약한 것입니다.
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT- 스마트 샤딩을 위해 만들 샤드의 최대 개수를 지정합니다. 설정되지 않았거나 0으로 설정된 경우 시스템 정의 최대 한도가 사용됩니다. 유효 범위는 실제 기기의 경우 0~20, 가상 기기의 경우 0~200입니다.--smart-sharding-max-shard-count: 만들 샤드의 최대 개수를 지정합니다.--device플래그에 지정된 기기 수는 이 값보다 작거나 같아야 합니다.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION- 스마트 샤딩을 위해 샤드당 타겟 실행 시간 (예: 2분, 10분, 1시간)을 지정합니다. 유효 범위는 2분~1시간입니다.--sharding-option=smart인 경우 필수입니다.--smart-sharding-record-name=SMART_SHARDING_RECORD_NAME- 파일 확장자를 제외한 스마트 샤딩 레코드 파일의 이름을 지정합니다. --sharding-option=smart인 경우 필수입니다. 이 YAML 파일은smart-sharding/디렉터리 아래--bucket-name으로 지정된 Google Cloud Storage 버킷에 있습니다. 파일이 없으면 자동으로 생성됩니다. 그렇지 않으면 세션이 완료될 때 콘텐츠가 업데이트됩니다.
테스트 실행 탐색 및 관리
sessions submit instrumentation 명령어의 비동기 및 동기 모드 모두에서 sessions describe 명령어를 사용하여 실행 중에 작업 상태를 쿼리하거나 완료된 후 결과를 가져올 수 있습니다.
gcloud beta device-run sessions describe <session_id>
출력은 테스트 결과를 요약하고 Google Cloud 콘솔의 결과에 연결합니다. 예를 들면 다음과 같습니다.
Session [session-id] finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/your_project_id-devicerun/automation/sessions/session-id/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
다음 명령어를 사용하여 실행 중인 세션과 완료된 세션을 모두 나열합니다.
gcloud beta device-run sessions list
다음과 유사한 프로젝트의 세션 목록이 포함된 출력을 수신합니다.
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
실행 중인 세션을 취소하려면 세션 ID로 이 명령어를 실행합니다.
gcloud beta device-run sessions cancel your_session_id
다음 단계
다음으로 로그를 찾고 분석합니다.