CircleCI에서 Firebase Test Lab 로봇 테스트 자동화
apk
를 빌드할 때 Firebase Test Lab에 테스트를 던지고 싶을 때의 방법입니다.대부분은 CircleCI 공식 페이지의 h tps : // / rc ぇ시. 이 m / 두 cs / 2.0 / ㅁ ㅁㅜㅜㅜㅜㅜㅜㅜ에 실려 있는 흐름입니다.
개요
apk
를 gcloud
명령을 사용하여 던져라는 흐름이 됩니다.
CircleCI의 Android 빌드용 이미지에는 Test Lab을 실행하는 데 필요한
gcloud
명령이 포함되어 있으므로이것을 사용하고 있는 경우는 다른 이미지를 사용하거나 할 필요는 없습니다. 일반 빌드에서 사용하고 있습니다
config.yml
Test Lab에 보낼 작업을 추가하면 괜찮습니다.전제
먼저 릴리스 빌드를 수행하는 작업이 다음과 같이 보입니다.
.circleci/config.yml
jobs:
buildRelease:
<<: *defaults
steps:
- attach_workspace:
at: ~/code
- deploy:
name: Build Release Apk
command: ./gradlew :app:assembleRelease
- store_artifacts:
path: app/build/outputs/apk/
- persist_to_workspace:
root: ~/code
paths:
- app/build/outputs/apk
나중에 다른 작업에서 Test Lab에
apk
를 보낼 수 있도록여기서
persist_to_workspace
를 해서 빌드한 apk 를 작업공간에서 공통으로 참조할 수 있도록 해 두는 것이 필요합니다.Test Lab 작업 추가
그런 다음 Test Lab에서 테스트할 작업을 추가합니다.
.circleci/config.yml
jobs:
runRoboTest:
<<: *defaults
steps:
- attach_workspace:
at: ~/code
- run:
name: Authorize with gcloud
command: |
echo ${GCLOUD_SERVICE_KEY} | sudo gcloud auth activate-service-account --key-file=-
sudo gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
- run:
name: Invoke Robo Test on Firebase Test Lab
command: >
sudo gcloud firebase test android run \
--app app/build/outputs/apk/release/app-release.apk \
--type robo \
--device model=hwALE-H,version=21,locale=ja,orientation=portrait \
--device model=j1acevelte,version=22,locale=ja,orientation=portrait \
--device model=shamu,version=23,locale=ja,orientation=portrait \
--device model=lucye,version=24,locale=ja,orientation=portrait \
--device model=sailfish,version=25,locale=ja,orientation=portrait \
--device model=sailfish,version=26,locale=ja,orientation=portrait \
--device model=walleye,version=27,locale=ja,orientation=portrait \
--device model=walleye,version=28,locale=ja,orientation=portrait \
--results-bucket cloud-test-${GOOGLE_PROJECT_ID} \
--timeout 5m
- run:
name: Collect Artifacts
command: |
sudo pip install -U crcmod
sudo mkdir test_lab_results
sudo gsutil \
-m cp \
-r -U `sudo gsutil ls gs://cloud-test-${GOOGLE_PROJECT_ID} | tail -1` test_lab_results/ \
| true
- store_artifacts:
path: test_lab_results/
인증하고 테스트를 실행하고 결과를 Artifacts로 저장하는 작업입니다.
여기서
${GCLOUD_SERVICE_KEY}
야라 ${GOOGLE_PROJECT_ID}
그렇다면 수수께끼의 환경 변수가 등장하고 있네요.이는 사전에 자격 증명으로 Firebase 인증 키 JSON 및 Google Cloud Platform 프로젝트 ID를
CircleCI 프로젝트 환경 변수를 콘솔에서 설정해야합니다.
GOOGLE_PROJECT_ID
는 GCP의 프로젝트 ID를, GCLOUD_SERVICE_KEY
에는 자격 증명의 JSON을 넣습니다.그런 다음 Google Developer Console에서
Cloud Testing API
및 Cloud Tools Results API
를 활성화하십시오.결과
일단 설정이 끝나면 빌드를 실행하십시오 :
인증 후 Test Lab을 실행하는 작업이 실행 중인지 확인할 수 있습니다.
실행 중에도 작업 로그에 나열된 Firebase Test Lab 세부 정보 페이지에서 확인할 수 있습니다.
(
Test results will be streamed to [...]
로 표시된 URL입니다).테스트 종료 후 결과는 세부 정보 페이지 외에도 Artifacts로 저장됩니다.
주의점
Test Lab의 작업 명령 중
--device model=<MODEL_ID>,... --device model=<MODEL_ID>,...
의 부분으로 테스트 대상의 디바이스를 복수 지정할 수 있습니다만, 여기의
MODEL_ID
의 확인 방법은 gcloud firebase test android models list
커멘드로 취득할 수 있는 MODEL_ID
입니다.예를 들어 Pixel 2에서도 물리적 장치의
MODEL_ID
는 walleye
이고 가상 장치는 Pixel2
이거나 합니다. Pixel2
그렇다고 결정해 가면, 이 커멘드의 결과를 보지 않으면 절대 모르기 때문에 주의입니다.gcloud
주위의 사용법에 대해서는 htps : // 푹 빠져라. 오, ぇ. 코 m / 드 cs / st-b / an d-roi d / goman d-u 를 참조하는 것이 좋을 것입니다.테스트에 시간이 걸리거나 수수께끼에 실패하는 단말기도 있으므로, 여기는 한 번 시험해 시행착오할 필요가 있을 것 같습니다.
Reference
이 문제에 관하여(CircleCI에서 Firebase Test Lab 로봇 테스트 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mangano-ito/items/208976a3331dcef5be47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)