CI 환경에서 Firebase Test Lab for iOS의 실제 기계 테스트 자동화

CI 환경에서 iOS 버전 Firebase Test Lab을 자동화하는 절차를 정리했습니다.
Bitrise 전제로 작성하고 있지만 gcloud 명령을 사용하고 있으므로 모든 CI 환경에서 응용할 수 있습니다.

【전제】Test Lab for iOS로 할 수 있는 일



Google 데이터 센터에서 호스팅되는 기기에서 실제 기기 Unit Test, UI Test가 가능합니다.
Android에서 지원되는 Robo 테스트은 iOS에서는 지원되지 않지만 수동으로 힘든 여러 기기 테스트를 클라우드에서 할 수있는 것만으로도 편리합니다.



동영상으로 테스트 실행 내용을 확인 가능



이해를 돕기 위해 공식 참조에 나와 있습니다.
  • XCTest .zip 파일을 콘솔에 올리는 방법으로 시도
  • gcloud 명령으로 테스트 실행
  • CI에서 gcloud 명령으로 테스트 실행

  • 의 순서로 진행하면 좋다

    gcloud 명령으로 테스트 자동화



    CLI에서 테스트를 실행하려면 GCP 명령줄 도구gcloud 명령 사용

    절차


  • gcloud 명령 설치 (사전 설치된 환경에서는 필요하지 않음)
  • gcloud auth 명령으로 GCP 서비스 계정 키를 사용하여 인증하기
  • gcloud config 명령으로 Firebase project id 연결
  • 테스트 실행

  • Script 전체는 이런 느낌
    #!/bin/bash
    set -ex
    
    # install gcloud
    curl https://sdk.cloud.google.com | bash 
    source $HOME/google-cloud-sdk/path.bash.inc
    
    # setup project
    curl -o /tmp/sacc_key.json $BITRISEIO_SERVICE_ACCOUNT_KEY_URL
    gcloud auth activate-service-account -q --key-file /tmp/sacc_key.json
    gcloud config set project $FIREBASE_PROJECT_ID
    
    # run test
    gcloud firebase test ios run --test "${BITRISE_TEST_BUNDLE_ZIP_PATH}" \
      --device model=iphone8,version=11.4,locale=ja_JP \
      --device model=iphonex,version=12.0,locale=ja_JP \
      --device model=iphonexsmax,version=12.1,locale=ja_JP \
      --device model=iphonese,version=11.4,locale=ja_JP
    

    보충 1: 인증



    Firebase 문서에 작성되었습니다. Google 계정을 사용한 OAuth 인증 외에도 GCP 서비스 계정 키를 사용한 인증도 가능합니다.
    curl -o /tmp/sacc_key.json $BITRISEIO_SERVICE_ACCOUNT_KEY_URLGCP 서비스 계정 키 (JSON 파일)를 Bitrise에 업로드하고 해당 URL에서 키를 DL하여 인증합니다.
    Bitrise의 경우 [Code Signing] > [GENERIC FILE STORAGE]タブ에서 업로드 가능. URL을 나타내는 환경 변수가 생성됨
    ※Code Signing 탭의 보안에 대해서는 여기

    보충 2: 테스트 실행


    "${BITRISE_TEST_BUNDLE_ZIP_PATH}"Bitrise 단계 [BETA] Xcode Build for testing for iOS를 사용하여 생성 된 테스트 .zip 파일의 경로를 지정합니다.

    Bitrise를 사용하는 경우


    iOS Device Testing 스텝을 사용하면 쉽게 Test Lab을 사용한 테스트 실행과 확인이 가능 (전부 구현이 끝난 후에 알았다.)
    htps : //에서 v 선 r. 가자. 이오 / 테 s 친g

    test-results

    참고 URL



    htps : // ぢs 쿳 s. 가자. 이오 / t / 호 w - 토 룬 - 안 d 로이 d - sts
    htps : // 수 t. 그래. 코m/엔트리/2018/12/02/000000

    좋은 웹페이지 즐겨찾기