Appium으로 Android 에뮬레이터에서 로그인 버튼 클릭 같은 간단한 예제 테스트 코드를 실행해본다.
1단계: 필수 프로그램 설치
- Node.js 설치(Appium 실행에 필요): Nodejs 설치 후 확인하는 코드 'node -v', 'npm -v'
- Appium 설치: 'npm install -g appium', 확인: 'appium -v'
- Appium Inspector 설치(GUI 도구, 선택): Appium Inspector GitHub에서 최신 버전 설치
- Anroid Studio 설치(Android SDK 포함): 설치 후 Android SDK, SDK Tools, Android Virtual Device(AVD) 꼭 설치
2단계: Android 에뮬레이터 준비
Anroid Studio에서
- AVD Manager 열기
- 디바이스 생성(Pixel 4, Android 11 등 선택)
- 에뮬레이터 실행
3단계: 테스트 대상 앱 준비
간단한 .apk 파일이 필요하다. 직접 만든 앱이나 API Demos 앱을 사용한다.
4단계: 테스트 코드 작성
- Python 설치 - 이미 설치되어 있으므로 생략.
- Appium용 Python 라이브러리 설치: 'pip install Appium-Python-Client'
- 테스트 코드 작성
test_appium.py
from appium import webdriver
from time import sleep
desired_caps = {
"platformName": "Android",
"platformVersion": "11", # 에뮬레이터에 맞게 조정
"deviceName": "emulator-5554", # adb devices로 확인 가능
"app": "C:/경로/ApiDemos-debug.apk",
"automationName": "UiAutomator2"
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
sleep(5)
el = driver.find_element(by='accessibility id', value='App')
el.click()
sleep(2)
driver.quit()
5단계: 테스트 실행
- 에뮬레이터 실행
- Appium 서버 실행(CLI): 'appium --log level info'
- Python 스크립트 실행: python test_appium.py
- 앱이 열리고 App 메뉴를 클릭하는 동작을 확인
6단계: 문제 해결 팁
- Appium 서버 연결 실패: appium 서버가 정상적으로 실행되었는지 확인
- 디바이스 인식이 안됨: adb devices로 확인, 에뮬레이터 실행 여부 확인
- 앱 설치 실패: APK 경로, 플랫폼 버전이 맞는지 확인
- element 못찾음: Appium Inspector로 accessibility id 확인
실행 단계에서 테스트 코드가 실행되지 않은 케이스
케이스 1 - Unsupported engine
- 문제: Nodejs 버전이 하위 버전이라서 Appium이랑 호환되지 않음
- 해결: Nodejs를 재설치해서 해결
케이스2 - ConnectionRefusedError: {WinError 10061} 127.0.0.1:4723 에 연결을 시도했지만 거부됨
- 문제: Appium 서버가 켜져있지 않아서 Python 코드 실행이 실패함
- 해결: Appium 서버 실행
케이스3 - No drivers have been installed
- 문제: 자동으로 사용할 드라이버(예: uiautomator2 등)이 설치되어 있지 않아서 디바이스나 에뮬레이터를 제어할 수 없음
- 해결: 사용할 드라이버 설치하기: '- appium driver install uiautomator2', 설치 확인: '- appium driver list --installed'
케이스4 - Unable to find an active device or emulator with OS 15.0. The following are available: emulator-5554 (16)
- 문제: 테스트 스크립트에서 platformVersion을 "15.0"으로 지정을 했는데, 실제 연결된 에뮬레이터는 "16" 버전이라서 일치하는 기기를 찾지 못함
- 해결: desired_capabilities (또는 options)에서 platformVersion을 실제 에뮬레이터 버전(16)으로 수정
케이스5 - INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 19
- 문제: 에뮬레이터는 최소 SDK 24 이상을 요구하고 있는데 현재 APK는 targetSdkVersion 19로 빌드되어 있어서 설치에 실패
- 해결: targetSdkVesion 24 이상인 APK로 교체
'QA 테스트 자동화' 카테고리의 다른 글
파이썬 Selenium으로 웹 반복 작업 자동화 엑셀 기반 환불 요청 입력 사례 (0) | 2025.06.15 |
---|---|
selenium webdriver 원하는 검색어 입력 후 검색 결과 엑셀 파일로 저장하기 (0) | 2025.06.08 |
Appium 테스트 자동화 디바이스 드라이버 UIAutomator2, XCUITest 작동 원리 (0) | 2025.05.23 |
Appium이란? 모바일 자동화 테스트의 작동 과정 및 원리 (0) | 2025.05.21 |
playwright doc 정독하기 #2 - codgen을 사용하여 자동으로 테스트 코드 생성하기 (0) | 2025.05.19 |