Appium: Mobile App Automation Made Awesome.
Appium Philosophy Appium is built on the idea that testing native apps shouldn't require including an SDK or recompiling your app. And that you should be able to use your preferred test practices, frameworks, and tools. Appium is an open source project and
appium.io
1. Appium이란?
"앱피움(Appium)"은 모바일 애플리케이션 자동화 도구입니다. 앱피움은 크로스 플랫폼 자동화를 지원하며, iOS, Android, Windows 등의 다양한 플랫폼에서 작동하는 애플리케이션을 테스트하고 자동화할 수 있습니다. 앱피움은 Selenium WebDriver 프로토콜을 사용하여 모바일 애플리케이션을 자동화하며, 다양한 프로그래밍 언어를 지원합니다. 또한, 앱피움은 다양한 모바일 앱 테스트 프레임워크와 통합이 가능하며, 유닛 테스트와 같은 다양한 테스트 방법을 지원합니다.
2. 설치 목록들
- Java Development Kit (JDK) > 환경변수 설정 > CMD : java -version 확인
https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html - Android Studio
https://developer.android.com/studio - Node.js
https://nodejs.org/en/download/ - Appium
https://github.com/appium/appium-desktop/releases/tag/v1.22.0 - Appium-Client
- pip install Appium-Python-Client - Appium Inspector
https://github.com/appium/appium-inspector/releases
3. 환경변수
안드로이드 스튜디오 경로

시스템 변수



4. 설치확인
CMD 창 확인
1) java
2) adb
3) aapt
5. Element 확인
5-1. UI Automator Viewer를 이용하여 Element의 정보를 확인

uiautomatoriviewer.bat 실행하면 xpath 를 얻을 수 있다.

5-2. Appium Inspector 실행 후 세팅

세팅이 완료되었다면 앱 피움 서버를 실행 하고 Inspector 의 Start Session을 실행하자. (다소 오래걸리니 참고..)


Inspector 연결되었다면, 실행되고 있는 앱 첫 화면을 읽어서 보여준다.
왼쪽 UI 요소 마우스로 클릭하면 xpath, class, id 값 등 확인할 수 있다.

Recoder를 실행 후 Selected Element 영역 Tab 버튼을 누르면 설정한 언어의 스크립트를 작성해준다.
예) 신세계몰 앱에 카테고리 메뉴 버튼을 각각 클릭 해보자.
1. 홈 메뉴 클릭
2. 명품관 메뉴 클릭
3. 해피라운지 클릭
4. 베스트 클릭
5. 백화점 클릭
6. 브랜드 클릭
el5 = driver.find_element(by=AppiumBy.XPATH, value="//android.widget.LinearLayout[@content-desc=\"명품관\"]/android.widget.RelativeLayout/android.widget.TextView")
el5.click()
el6 = driver.find_element(by=AppiumBy.XPATH, value="//android.widget.LinearLayout[@content-desc=\"해피라운지\"]/android.widget.RelativeLayout/android.widget.TextView")
el6.click()
el7 = driver.find_element(by=AppiumBy.XPATH, value="//android.widget.LinearLayout[@content-desc=\"베스트\"]/android.widget.RelativeLayout/android.widget.TextView")
el7.click()
el8 = driver.find_element(by=AppiumBy.XPATH, value="//android.widget.LinearLayout[@content-desc=\"백화점\"]/android.widget.RelativeLayout/android.widget.TextView")
el8.click()
el9 = driver.find_element(by=AppiumBy.XPATH, value="//android.widget.LinearLayout[@content-desc=\"브랜드\"]/android.widget.RelativeLayout/android.widget.TextView")
el9.click()

※ 테스트 코드 실행 후 Inspector 재실행