Appium 을 사용하여 통합 테스트 자동화를 구축해보려고 한다. 1탄 환경설정하기!
1. 목표
- Appium 이 무엇인지 알아본다.
- Appium 을 사용하기 위하여 사전에 무엇을 설정해야 하는지 확인한다.
2. 이유
- 개발자들은 신규 Feature 를 개발하는 경우, 본인이 작업한 코드에 대해서 테스트를 한다.
- 보통 Feature 개발과 함께 Unit Test 를 작성하지만, 자신이 작성한 코드에 불안감은 완전히 해소되지 않는다.
- 개발한 Feature 에 대해서 통합 테스트를 자동으로 수행시킨다면 개발자의 불안감을 해소시킬 수 있지 않을까? 하는 의문에서 Appium 작업을 시작하게 되었다.
3. 실행
Appium 이란?
Appium은 selenium 기반의 오픈 소스 모바일 애플리케이션 테스트 자동화 프레임워크로, iOS와 Android 앱을 자동으로 테스트할 수 있도록 도와주는 도구입니다.
특징
- 크로스 플랫폼 지원
- iOS, Android 네이티브 앱, 하이브리드 앱, 웹 앱 테스트 가능
- 하나의 코드로 여러 플랫폼에서 테스트 가능
- 다양한 언어 지원
- Java, Python, JavaScript, Swift 등 다양한 프로그래밍 언어 지원
- 실제 기기와 에뮬레이터 모두 지원
Appium 과 Python 관련 라이브러리 버전 정보
- Appium 테스트 코드 작성시 python 을 사용하려고 한다.

개발 환경설정 관련 항목
- node 설치
- npm 설치
- appium 설치
- appium test driver 설치
- Appium-Python-Client 설치
- idb/adb 설치
- Appium Inspector 설치
- WebDriverAgent 설치 ( iOS 전용 )
상세한 내용이 보고 싶지 않으신 분들을 위하여
installer.sh스크립트를 만들어 두었습니다. 최하단을 확인해주세요~
1. node 설치
$ brew install node
2. npm 설치
$ install npm
3. appium 설치
$ sudo npm install -g appium
4. 프로젝트에 appium 로컬 설정
- .env > export PATH={appium project}/node_modules/.bin:$PATH 항목 추가
$ source .env
5. (iOS/Android) appium test driver 설치
- (iOS)
$ appium driver install xcuitest - (Android)
$ appium driver install uiautomator2 - appium 을 통해 테스트를 위한 도구가 설치되어 있는지 확인 가능
```shell
% appium driver list –installed
✔ Listing installed drivers
- xcuitest@7.32.0 [installed (npm)]
- uiautomator2@3.9.1 [installed (npm)] ```
6. Appium-Python-Client 설치
- python 스크립트를 통해 Appium 수행 도구
$ pip install Appium-Python-Client
7. (iOS) idb 설치
- iOS UITest 를 위한 디바이스 설정 도구
$ pip3 install fb-idbNo such file or directory: '/usr/local/bin/idb_companion’ 오류 발생시 idb_companion 가 설치되지 않은 것으로 확인 idb_companion 설치 idb-companion 안 fb-idb 와 달리 독립적인 binary 파일 이므로 따로 설치해야함$ brew tap facebook/fb$ brew install idb-companion$ idb_companion --version ( 정상 설치 체크 )% idb list-targets iPad (10th generation) | 48709A02-58B4-41F9-B1E0-8CB07773A4C4 | Shutdown | simulator | iOS 17.5 | x86_64 | No Companion Connected iPad Air 11-inch (M2) | 18745CCA-13CD-4D0E-B3BD-886EF78B0A82 | Shutdown | simulator | iOS 17.4 | x86_64 | No Companion Connected ...
8. (Android) adb 설치 및 확인
- Android Studio 와 Emulator 가설치되어 있다면, 보통 바로 사용가능함.
- 만약 adb 명령어가 동작하지 않는다면 환경변수 추가할 것
export ANDROID_HOME=/.../Android/sdk export ANDROID_SDK_ROOT=/.../Android/sdk export PATH=$ANDROID_HOME/platform-tools:$PATH export PATH=$ANDROID_HOME/tools:$PATH
9. appium-inspector 설치
- appium-inspector 는 UI Client 로 직접 앱의 구성요소를 하나하나 확인하며 테스트를 해볼 수 있습니다.
- Appium Inspector - git
- 해당 프로젝트에서 나의 환경에 맞는 파일 설치
10. (iOS) WebDriverAgent 설치 및 세팅
- iOS 전용 어플 모니터링 도구
- xcode project 이며, 테스트 할 디바이스에 설치 및 실행 시켜야 한다.
- WebDriverAgent 관련 자료
4. 결과
위의 절차를 모두 수행했다면, Appium 을 사용할 수 있는 준비를 완료하였습니다.
이후에는 Python 으로 테스트 코드를 작성하여 통합 테스트 자동화를 구축할 수 있습니다.
실행 방법
- appium 실행
$ appium
- WebDriverAgent 실행
- 테스트 할 디바이스에 실행
- python 스크립트 or Appium Inspector 실행
- python 스크립트 ```python from appium import webdriver from appium.options.ios import XCUITestOptions
team_id = “team_id”
options = { “platformName”: “iOS”, ‘platformVersion’: ‘15.7.3’, # 디바이스의 iOS 버전 조정 “automationName”: “XCUITest”, “deviceName”: “iPhone”, # 사용하는 디바이스 이름에 맞춰 조정 “udid”: “”, # 디바이스의 UDID 기입 “xcodeOrgId”: f”{team_id}” # 애플 개발자 Team ID 기입 }
server_url = “http://127.0.0.1:4723”
driver = webdriver.Remote(server_url, options=XCUITestOptions().load_capabilities(options)) print(f”deviceName: {driver.caps[‘deviceName’]}”) ``` - Appium Inspector
- Inspector 설정 값 입력

- Session Start
