[Appium] AVD(가상 단말기)에 Appium사용해 자동화 구현 실습

비비빅·2024년 4월 26일
post-thumbnail

AVD를 사용해 특정 앱에 자동화 적용해보기

사용 도구

  • JAVA
  • Appium
  • Android Studio AVD

실습) 구글앱(googlequicksearchbox)사용해 검색 하는 동작 자동화 구현

실행

1. AVD 생성 및 실행

AVD 선택 후 RUN

2. Appium 설정

Appium Server GUI > Start Server버튼

3. JAVA실행

4. 스크립트

1. Appium 서버의 URL 설정

URL serverUrl = new URL("http://127.0.0.1:4723/wd/hub");

2. Appium으로 제어할 AVD의 설정

DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "emulator-5554"); // AVD의 디바이스 이름
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("appPackage", "패키지명"); // 테스트할 앱의 패키지 이름
        capabilities.setCapability("appActivity", "액티비티명"); // 테스트할 앱의 액티비티 이름

3. Appium 서버에 연결하여 드라이버 생성

AndroidDriver driver = new AndroidDriver<>(serverUrl, capabilities);

4. 앱이 실행될 때까지 대기

 Thread.sleep(대기시간);

5. 앱에서 특정 요소 클릭

//클릭
AndroidElement element = (AndroidElement) driver.findElementById("요소");
element.click();

//입력
String serchelement = "입력하고자 하는것";
AndroidElement element = (AndroidElement) driver.findElementById("요소");
element.click();
element.sendKeys(serchelement);      

6. 드라이버 종료

driver.quit();

마주한 오류

1. 오류: Exception in thread "main" org.openqa.selenium.WebDriverException: Connection refused: connect

원인: Appium 서버가 실행되고 있지 않음
해결: Appium Server GUI로 Appium서버 실행

2. 오류: Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command.

원인: Appium이 Android 디바이스를 찾지 못했기 때문
해결: AVD를 켜줘야 함

3. 오류: 요소를 못찾는 에러

원인: 키보드가 올라와 있어 요소 찾는데 방해
해결: 여러가지 방법이 있겠지만, 키보드를 내리는것으로 해결

driver.pressKey(new KeyEvent(AndroidKey.BACK));

0개의 댓글