Amazon Device Farm / Appium Java TestNG 기반 테스트 자동화 (with AWS 콘솔)

Q·2025년 3월 22일

Test Automation

목록 보기
1/2

개발 환경

Step 1

: 초기 테스트 환경 구성은 Java + Appium + Simulator(혹은 실단말) 로 API와 Mobile APP 테스트를 진행하는 것입니다.

  • Java (+TestNG) / Eclipse
  • Appium (+Node)
  • Test Application (Flutter, Oracle Cloud)

Step 2

: 테스트 환경을 구성하면서 확인해보니, Amazon Device Farm 환경을 구축하고 테스트를 진행해보는 것도 좋을 것 같아, 해당 환경에서 테스트를 진행해보았습니다.

  • Amazon Device Farm

개발 목적

  • 범용적인 테스트 자동화 프로젝트 제작 (다른 어플리케이션에 쉽제 적용 가능한 테스트 자동화 샘플)
  • API 테스트 자동화 & UI 테스트 자동화 동시에 진행
  • Amazon Device Farm을 활용한 테스트

테스트 타겟

: 많이 사용하는 기본 어플리케이션(구글, 유투브 등..)의 테스트 자동화 프로젝트를 진행하려 했으나, 그럴 경우 API 자동화를 진행하지 못해 샘플 어플리케이션(주소록 어플리케이션)을 제작하여 해당 어플리케이션의 테스트 자동화를 진행하였습니다.

  • 주소록 어플리케이션(Link): iOS, Android Mobile APP


프로젝트 구조

  • Control:
    • 드라이버 등 기본 환경 세팅 클래스
    • 클릭, 스크롤 등의 사용자 정의 함수 클래스.
  • Business: 테스트 중 특정 페이지에서만 사용되는 별도의 함수가 필요할 경우 존재하는 클래스들
  • Test: 테스트 클래스들

Amazon Device Farm

Amazon Device Farm의 공식 문서(링크) 에는 굉장히 친절하게 테스트를 구동하는 방법이 나와 있지만... 여러 오류들 때문에 많은 시행착오를 했습니다.
주 원인은 프로젝트 구조가 testng.xml 파일을 시작으로 테스트를 수행하는 구조여서 maven으로 테스트에 필요한 압축 파일을 빌드하는 데 많은 시행착오를 겪었습니다(*아래 별첨 참고).

아래는 Android 테스트 결과 비디오(*아래 별첨)와 테스트 성공 로그입니다. 주소록 어플리케이션의 검색 기능 중 아래 사항의 테스트 3개를 Pass했습니다. (iOS 테스트 결과도 아래와 유사하게 나왔습니다)

  • 특정 검색어 API 응답 결과 확인
  • 특정 검색어 어플리케이션 UI 결과 확인
  • 위의 API/UI 결과 비교

Amazon Device Farm 장점

  • 동영상 녹화 등 테스트 실행 시 설정할 수 있는 옵션이 있어, 자동으로 동영상 녹화를 해줍니다
    : 해당 기능은 로컬 환경에서 테스트를 진행할 때 라이브러리를 사용하여 구현할 수 있지만, 테스트 시간과 용량 때문에 대체로 많이 사용하지 않았었는데, 클라우드 환경에서는 간편하게 사용이 가능했습니다.
  • 여러 단말을 한꺼번에 테스트 진행할 수 있다.
    : 이 부분도 로컬 환경에서도 구축 가능하지만, 로컬 환경에서는 테스트 타겟과 무관한 이슈들이 있을 수 있는데 - 네트워크 이슈, 특정 설정 등 - 이러한 단점들을 클라우드 환경은 여러모로 보완해주고 있었습니다.
  • Fuzz Test 를 지원하여, 테스트 수트를 구성하지 않았다면 임의로 테스트를 진행해볼 수 있다.
  • Java, Python, Instrumentation.. 등 다양한 테스트 수트를 실행 가능합니다.

프로젝트 완료 후 아쉬운 점

  • 샘플 어플리케이션의 아쉬움: Flutter로 AI를 사용해 엉성하게 만들었기 때문에 여러 기능이나 실제 어플리케이션처럼 데이터가 많지 않아 테스트를 폭넓게 진행하지 못했습니다. 기초적인 뼈대를 만들었다는 데에 의의가 있는 테스트 진행이었습니다.

  • Amazon Device Farm 운용: 다양한 기능이 있는데, 일부 기능만을 사용하여 아쉬움이 남았습니다.



참고사항

** 위에 잠깐 언급했던, testng.xml 파일로(혹은 여러 xml파일들로) TestNG 테스트들을 실행해온 경우 아래와 같은 문제들이 있었습니다.

  1. 프로젝트가 Java Application에서 구동된 적이 없어, maven 으로 빌드 불가능 (이 부분은 TestNG나 JUnit으로 테스트 클래스만을 실행하는 프로젝트들의 공통 문제일 것으로 생각됩니다.)
  2. testng.xml 파일이 maven으로 빌드한 압축파일에 추가되지 않음 ➔ 이로 인해서 testng.xml로 작동하는 테스트 클래스들(모든 테스트 클래스들..)이 maven으로 빌드한 압축파일에 추가되지 않음

위 문제들은 아래와 같이 해결했습니다.
  1. testng.xml 파일을 실행하는 main 클래스를 생성하여 Java Application으로 실행 후 maven 빌드

  2. src/test/resourcetestng.xml 를 추가 후 pom.xml의 경로에 해당 파일 추가

** 테스트 실행 비디오
용량 등을 고려하지 않고 테스트 실행 영상이 녹화되는 것은 Amazon Device Farm의 장점 중 하나라고 생각합니다.

0개의 댓글