Appium Inspector는 모바일 애플리케이션 테스트를 효율적으로 수행할 수 있는 매우 강력한 도구입니다. 이를 통해 iOS와 Android 기기의 UI 요소를 탐색하고, XPath 또는 다른 위치 지정자를 얻어 자동화 스크립트를 구성하는 데 도움을 줄 수 있습니다. 이번 포스팅에서는 실무에서 자주 사용되는 Appium Inspector의 주요 기능과 샘플 코드를 소개해 드리겠습니다.
1. Appium Inspector 시작하기
Appium Inspector를 사용하기 위해서는 Appium 서버가 설치되어 있어야 합니다. 설치 후 Appium Inspector를 통해 애플리케이션의 UI를 탐색하고 테스트할 기기와 연결할 수 있습니다. 기기 연결 설정은 간단히 로컬 기기와 원격 기기를 모두 지원하며, IP 주소 또는 클라우드 기기 서비스와 연동하여 사용할 수 있습니다.
2. 요소 탐색 및 XPath 찾기
Appium Inspector를 실행한 후에는 애플리케이션의 화면을 탐색하면서 UI 요소의 속성을 확인할 수 있습니다. 요소의 위치를 지정할 때 id, name, class, XPath 등을 활용할 수 있는데, 이 중 XPath는 유연하게 요소를 찾아낼 수 있어 많이 사용됩니다.
- XPath로 요소 찾기 예제:
# 특정 요소를 XPath로 찾기
search_button = driver.find_element(By.XPATH, "//android.widget.Button[@content-desc='Search']")
search_button.click()
3. 실무에서 자주 사용하는 자동화 예제
예제 1: 로그인 자동화 스크립트
많은 애플리케이션에서 로그인을 수행해야 하기 때문에, 이를 자동화하는 예제를 많이 사용합니다. 사용자 이름과 비밀번호를 입력한 후 로그인 버튼을 클릭하는 스크립트를 작성할 수 있습니다.
from appium import webdriver
from selenium.webdriver.common.by import By
# WebDriver 설정
desired_caps = {
"platformName": "Android",
"deviceName": "emulator-5554",
"appPackage": "com.example.app",
"appActivity": "com.example.app.MainActivity"
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
# 로그인 프로세스 자동화
username_field = driver.find_element(By.ID, "com.example.app:id/username")
password_field = driver.find_element(By.ID, "com.example.app:id/password")
login_button = driver.find_element(By.ID, "com.example.app:id/login_button")
username_field.send_keys("testuser")
password_field.send_keys("password123")
login_button.click()
# 로그인 확인
assert driver.find_element(By.XPATH, "//android.widget.TextView[@text='Welcome']")
driver.quit()
예제 2: 특정 화면 내 요소 조작 예제
Appium Inspector를 통해 애플리케이션의 다양한 화면을 탐색하다 보면, 특정 화면에서 여러 요소를 조작해야 하는 경우가 많습니다. 아래는 특정 화면 내에서 여러 버튼을 클릭하고 텍스트를 확인하는 예제입니다.
# 화면에서 버튼과 텍스트 요소 탐색
menu_button = driver.find_element(By.XPATH, "//android.widget.ImageButton[@content-desc='Menu']")
menu_button.click()
settings_option = driver.find_element(By.XPATH, "//android.widget.TextView[@text='Settings']")
settings_option.click()
# 설정 화면에서 텍스트 확인
assert driver.find_element(By.XPATH, "//android.widget.TextView[@text='Settings']")
4. Appium Inspector 활용 팁
- XPath 최적화: XPath를 사용할 때, 너무 복잡한 경로보다는 간결한 경로를 사용하면 성능이 향상됩니다.
- 캡처와 로그 사용: 테스트가 실패할 경우를 대비해, Appium Inspector를 통해 스크린샷을 저장하고 로깅 기능을 활용하여 문제를 추적할 수 있습니다.
- 조건부 대기: 모바일 애플리케이션은 네트워크 상태나 성능에 따라 응답 속도가 달라질 수 있으므로, WebDriverWait을 사용해 특정 요소가 나타날 때까지 대기하는 방법을 추천합니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
Appium과 CI/CD 파이프라인 통합: Jenkins와 AWS Device Farm을 활용한 테스트 자동화 (0) | 2024.11.12 |
---|---|
C#과 Appium으로 안드로이드 폰 제어하기: Chrome 실행과 웹 크롤링 (0) | 2024.11.12 |
ADB를 이용하여 크롬 제어하기 with C# (0) | 2024.11.12 |
7. ADB 명령어 스크립팅 및 자동화 (0) | 2024.11.12 |
6. 개발 및 테스트 도구로서의 ADB 활용 (0) | 2024.11.12 |