Appium에서 Flutter 앱 테스트 자동화 환경 구축

모바일 앱의 UI 테스트를 자동화하기 위한 도구인 Appium을 도입하게 되었기 때문에 비망록으로 남겨 둡니다.

전제 조건


  • OS가 macOS임
  • Homebrew가 설치되었습니다
  • npm (Node.js)이 이미 설치되어 있어야합니다.
  • Flutter 환경 및 지식이 있음

  • Appium 설치


    $ npm install -g appium
    $ npm install -g appium-doctor
    $ npm install -g wd
    

    Appium 환경 설정



    ANDROID_HOME과 JAVA_HOME을 경로로 통과시켜야합니다.
    .bash_profile에 다음을 추가하십시오.

    .bash_profile
    # ANDROID_HOMEの設定
    export ANDROID_HOME=/Users/Hitoshi/Library/Android/sdk
    export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
    # JAVA_HOMEの設定
    export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
    export PATH=${PATH}:$JAVA_HOME/bin
    
    appium-doctor --android 를 실행하고 "### Diagnostic for necessary dependencies starting ###"아래의 항목에 모두 체크 마크가 들어 있으면 OK입니다.
    "### Diagnostic for optional dependencies starting ###"아래의 항목은 임의이므로 무시해도 괜찮을까 생각합니다.
    Hitoshi-no-Air:~$ appium-doctor --android
    info AppiumDoctor Appium Doctor v.1.11.1
    info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
    info AppiumDoctor  ✔ The Node.js binary was found at: /Users/Hitoshi/.nodebrew/current/bin/node
    info AppiumDoctor  ✔ Node version is 10.13.0
    info AppiumDoctor  ✔ ANDROID_HOME is set to: /Users/Hitoshi/Library/Android/sdk
    info AppiumDoctor  ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home
    info AppiumDoctor  ✔ adb exists at: /Users/Hitoshi/Library/Android/sdk/platform-tools/adb
    info AppiumDoctor  ✔ android exists at: /Users/Hitoshi/Library/Android/sdk/tools/android
    info AppiumDoctor  ✔ emulator exists at: /Users/Hitoshi/Library/Android/sdk/tools/emulator
    info AppiumDoctor  ✔ Bin directory of $JAVA_HOME is set
    info AppiumDoctor ### Diagnostic for necessary dependencies completed, no fix needed. ###
    info AppiumDoctor 
    info AppiumDoctor ### Diagnostic for optional dependencies starting ###
    WARN AppiumDoctor  ✖ opencv4nodejs cannot be found.
    info AppiumDoctor  ✔ ffmpeg is installed at: /usr/local/bin/ffmpeg. ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
    WARN AppiumDoctor  ✖ mjpeg-consumer cannot be found.
    WARN AppiumDoctor  ✖ bundletool.jar cannot be found
    info AppiumDoctor ### Diagnostic for optional dependencies completed, 3 fixes possible. ###
    info AppiumDoctor 
    info AppiumDoctor ### Optional Manual Fixes ###
    info AppiumDoctor The configuration can install optionally. Please do the following manually:
    WARN AppiumDoctor  ➜ Why opencv4nodejs is needed and how to install it: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/image-comparison.md
    WARN AppiumDoctor  ➜ mjpeg-consumer module is required to use MJPEG-over-HTTP features. Please install it with 'npm i -g mjpeg-consumer'.
    WARN AppiumDoctor  ➜ bundletool.jar is used to handle Android App Bundle. Please read http://appium.io/docs/en/writing-running-appium/android/android-appbundle/ to install it
    info AppiumDoctor 
    info AppiumDoctor ###
    info AppiumDoctor 
    info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
    info AppiumDoctor
    

    Appium Desktop 설치



    아래에서 다운로드합니다.
    htps : // 기주 b. 코 m / 아피 m / 아 피 m에서 sk와 p / Repease s
    버전: v1.13.0
    파일 이름: Appium-mac-1.13.0.dmg

    dmg 파일을 열고 app 파일을 응용 프로그램 폴더로 이동합니다.

    실제 기계와 연결



    안드로이드



    앱을 실행하면 다음 화면이 표시됩니다.
    그대로 Start Server v1.13.0을 클릭합니다.



    그러면 다음 화면이 시작됩니다.
    화면 오른쪽 상단의 돋보기 버튼을 클릭합니다.



    Automatic Server에서 Desired Capabilities를 선택하고 오른쪽 하단의 JSON Representation에서 연필 마크를 클릭합니다.
    덧붙여서, 직접 JSON을 입력하지 않아도 왼쪽에서 'Name'과 'Value'를 각각 입력할 수도 있습니다.



    그러면 편집 가능한 상태가 되므로 다음과 같이 편집합니다.
    {
      "platformName": "Android",
      "deviceName": "adb devicesコマンドで得られた値",
      "platformVersion": "実機のAndroid OSバージョン",
      "automationName": "Appium",
      "app": "ローカルPC上のAPKのパス"
    }
    

    "adb devices 명령으로 얻은 값"은 "List of devices attached"아래에 나오는 "xxxxxxxxxxxxxx"입니다.
    $ adb devices
    List of devices attached
    xxxxxxxxxxxxxx  device
    

    입력한 후 저장 버튼을 클릭하여 내용을 반영합니다.



    반영 후 Start Session을 클릭하여 세션을 시작합니다.
    이 때 실제 기계 쪽이 절전 상태가 아닌지 확인하십시오.



    세션을 시작한 후 성공하면 다음 화면이 시작됩니다.



    이번은 여기까지로 합니다.

    추가



    계속해서 실천편을 투고했습니다.
    - Appium에서 Flutter 앱 테스트 자동화 실천 - Qiita

    좋은 웹페이지 즐겨찾기