Appium을 이용해 안드로이드 테스트 자동화 환경 구축하기
Appium이란?
Appium은 모바일 앱 자동화 도구로, 여러가지 모바일 플랫폼에서 앱을 테스트하고 자동화 할 수 있는 소프트웨어 프레임워크이다.
IOS 및 안드로이드 플랫폼에서 실행되며 다양한 프로그래밍 언어를 지원하여 개발자 및 QA엔지니어가 UI요소와 상호작용하며 앱의 기능을 테스트 하는 스크립트를 작성할 수 있도록 도와준다.
Appium Server?
Appium Server는 Appium 프레임워크의 핵심 구성 요소 중 하나로, 자동화를 관리하고 제어하는 중심적인 역할을 수행한다.
주요 역할로는 다음6가지 정도가 존재한다.
1. 통신 다리 역할
클라이언트 애플리케이션(Appium Inspector, Test Script 등)과 모바일 디바이스 또는 에뮬레이터 사이에서 중개자 역할을 한다.
2. 디바이스 연결 관리
3. 세션 관리
새로운 테스트 세션을 생성하고 관리하며, 각 세션에 대한 명령어를 수신하고 결과를 반환한다.
4. 디바이스 컨트롤
터치, 스와이프, 탭, 키 이벤트 등을 생성하고 앱의 화면에서 작업을 수행한다. 이를 통해 자동화 테스트가 실제 사용자와 유사한 상호작용을 시뮬레이트 할 수 있다.
5. 요소 식별 및 상호 작용
앱 내의 요소를 식별하고, 지정한 조건에 따라 해당 요소와 상호작용한다. 이를 통해 테스트 스크립트는 앱의 UI를 조작하고 결과확인 등을 할 수 있다.
6. 로그 및 오류 관리
작동방식
자동화 환경 세팅
개발환경 - MacOS Sonoma M1 Chip
1. JDK 설치 및 환경변수 설정
JDK가 설치되어 있지 않다면 Oracle 페이지에 들어가서 설치를 한다.
https://www.oracle.com/kr/java/technologies/downloads/
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
www.oracle.com
설치가 되어있거나 설치 후 Terminal에서 java - version 명령어를 사용해 확인한다.
환경변수는 설정해줘야 한다.
2. Android Studio 설치
Android Studio Iguana | 2023.2.1 Canary 5 를 사용중이다.
또한 Java환경 변수 설정처럼 Android 또한 환경변수 설정을 해준다.
3. Appium설치
https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4
Release v1.22.3-4 · appium/appium-desktop
!! Warning !! Appium Desktop is unsupported, no longer maintained, and has known security vulnerabilities. It is advised not to use it at all. See the README for more information. Use at your own r...
github.com
설치 후 실행하면 다음과 같은 화면이 나와야 된다.
4. Node.js 설치
homeBrew를 이용해 node.js를 다운 받은 후
해당 명령어를 순차적으로 실행시킨다.
만약 권한 관련 Error 발생 시
sudo npm install -g appium
sudo npm install wd
appium &
appium & 까지 작성한 다음
sudo npm install -g appium-doctor 를 실행한다.
sudo npm install -g appium-doctor
appium-doctor
다음 appium-docor 명령어를 실행한다.
5. appium GUI 실행
appium GUI를 실행시켜 Edit Configurations를 클릭 해 환경변수를 기입해준다.
6. appium inspector 실행 및 설정
homeBrew로 Inspector을 다운받는다.
brew install --cask appium-inspector
설치 후 실행을 시키고 다음과 같이 작성해준다.
JSON Representation은 각자 본인의 해당사항에 맞게 작성해준다.
- platformName : 사용하는 플랫폼의 이름
- platformVersion : 모바일 OS 버전
- deviceName : 모바일 디바이스 또는 에뮬레이터의 종류
- app : apk 파일 경로
- browserName : 자동화할 모바일 웹 브라우저 이름.앱을 자동화하는 경우 빈 문자열
- avd : 실행할 avd 이름
JSON 파일을 저장하고 Start Session을 클릭 한다면 정상적으로 실행되는 것을 확인할 수 있다.
여기까지가 appium을 이용한 자동화 테스트 환경 구축 #1 이다.