
Android 앱 UI 자동화 테스트를 위한 Appium + Python 환경을 처음부터 구축하는 방법을 정리했습니다. (Windows / Mac 모두 지원)
| 구성 요소 | 역할 |
|---|---|
| Python | 테스트 스크립트 작성 언어 |
| Appium | 모바일 앱 자동화 서버 (WebDriver 프로토콜 지원) |
| UiAutomator2 | Android 디바이스 제어 드라이버 |
| ADB | Android 디바이스와 PC 간 통신 |
| pytest | Python 테스트 프레임워크 |
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Python Test │────▶│ Appium Server │────▶│ Android Device │
│ (pytest) │ │ (Node.js) │ │ (UiAutomator2) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
└───────────────── ADB ─────────────────────────┘
테스트 스크립트를 작성하고 실행하는 데 사용합니다.
"Add Python to PATH" 반드시 체크!
설치 후 확인:
python --version
# 출력 예: Python 3.10.x
Appium은 Node.js 기반으로 동작합니다.
설치 후 확인:
node --version
# 출력 예: v18.x.x
npm --version
# 출력 예: 9.x.x
Android 빌드 도구와 UiAutomator2가 Java를 필요로 합니다.
Windows:
1. 시스템 환경변수에 JAVA_HOME 추가:
JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-11.x.x
Path에 추가:%JAVA_HOME%\bin
Mac:
1. ~/.zshrc (또는 ~/.bash_profile)에 추가:
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
source ~/.zshrc
설치 후 확인:
java -version
# 출력 예: openjdk version "11.x.x"
ADB(Android Debug Bridge)는 PC와 Android 디바이스 간 통신을 담당합니다.
sdkmanager로 필요한 도구 설치Windows:
1. 시스템 환경변수에 ANDROID_HOME 추가:
ANDROID_HOME = C:\Users\{사용자명}\AppData\Local\Android\Sdk
Path에 추가:%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
Mac:
1. ~/.zshrc (또는 ~/.bash_profile)에 추가:
export ANDROID_HOME=~/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH
source ~/.zshrc
설치 후 확인:
adb version
# 출력 예: Android Debug Bridge version 1.0.xx
Appium은 모바일 앱 자동화를 위한 오픈소스 서버입니다.
# Appium 전역 설치
npm install -g appium
# UiAutomator2 드라이버 설치 (Android용)
appium driver install uiautomator2
설치 후 확인:
appium --version
# 출력 예: 2.x.x
appium driver list --installed
# 출력 예: uiautomator2
mkdir my-appium-project
cd my-appium-project
가상환경을 사용하면 프로젝트별로 패키지를 독립적으로 관리할 수 있습니다.
# 가상환경 생성
python -m venv .venv
# 가상환경 활성화 (Windows)
.venv\Scripts\activate
# 가상환경 활성화 (Mac/Linux)
source .venv/bin/activate
requirements.txt 파일 생성:
Appium-Python-Client==2.10.0
pytest
pytest-html
패키지 설치:
pip install -r requirements.txt
개발자 옵션 활성화
USB 디버깅 활성화
USB 연결 후 권한 허용
adb devices
정상 출력 예시:
List of devices attached
R5CR21BQGFY device
"unauthorized" 상태인 경우: 디바이스에서 USB 디버깅 권한을 허용해야 합니다.
# 디바이스 모델명 확인
adb shell getprop ro.product.model
# Android 버전 확인
adb shell getprop ro.build.version.release
# 설치된 앱 패키지 목록 확인
# Windows
adb shell pm list packages | findstr {앱이름}
# Mac / Linux
adb shell pm list packages | grep {앱이름}
모든 설치가 완료되면 아래 명령어로 확인합니다:
| 명령어 | 예상 결과 |
|---|---|
python --version | Python 3.10+ |
node --version | v18+ |
java -version | 11+ |
adb version | 설치 확인 |
appium --version | 2.x.x |
adb devices | 연결된 디바이스 표시 |
| 문제 | 원인 | 해결 방법 |
|---|---|---|
adb devices 결과 없음 | USB 드라이버 미설치 | 디바이스 제조사 USB 드라이버 설치 |
| "unauthorized" 상태 | USB 디버깅 미허용 | 디바이스에서 팝업 허용 |
| Appium 서버 시작 실패 | 포트 충돌 | 다른 포트 사용 (--port 4724) |
| 한글 깨짐 (Windows) | 인코딩 문제 | 터미널에서 chcp 65001 실행 |
| 문제 | 원인 | 해결 방법 |
|---|---|---|
adb 명령어 미인식 | PATH 미설정 | ~/.zshrc에 PATH 추가 후 source ~/.zshrc |
java 명령어 미인식 | JDK 미설치 또는 PATH 미설정 | Adoptium JDK 설치 후 JAVA_HOME 설정 |
| 디바이스 인식 안됨 | ADB 서버 문제 | adb kill-server && adb start-server |
| 변수명 | 값 |
|---|---|
JAVA_HOME | C:\Program Files\Eclipse Adoptium\jdk-11.x.x |
ANDROID_HOME | C:\Users\{사용자명}\AppData\Local\Android\Sdk |
Path에 추가:
%JAVA_HOME%\bin
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
~/.zshrc에 추가:
export JAVA_HOME=$(/usr/libexec/java_home)
export ANDROID_HOME=~/Library/Android/sdk
export PATH=$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH
설정 적용:
source ~/.zshrc
이번 글에서는 Appium + Python 자동화 테스트를 위한 기본 환경을 구축했습니다.
다음 글에서는 Appium Inspector를 사용해서 앱의 UI 요소를 찾는 방법을 알아보겠습니다.