송민준의 개발노트

Appium을 이용한 QA 자동화 본문

서비스안정화/QA자동화

Appium을 이용한 QA 자동화

송민준 2024. 5. 15. 18:15

QA 자동화를 하는 이유

이번에 회사에서 조직개편이 되면서 새로운 프로젝트를 맡았는데 QA팀의 지원을 받을 수가 없다.

내가 QA까지 해야하는데 TC 개수가... 너무 많아 자동화를 생각하게 됨!

 

Appium ?

Appium은 모바일 애플리케이션의 자동화 테스트를 위한 오픈 소스 도구이다. Appium은 네이티브, 하이브리드, 모바일 웹 애플리케이션을 테스트할 수 있다. 이는 Selenium의 철학을 모바일 환경에 적용한 것으로, 다양한 플랫폼에서 일관된 API를 제공하여 테스트를 자동화할 수 있게 한다.

 

Appium 특징

  1. 크로스 플랫폼 지원: Appium은 iOS와 Android 모두를 지원합니다.
  2. 언어 독립적: 다양한 프로그래밍 언어로 작성된 테스트를 지원합니다. Java, JavaScript, Python, Ruby, C#, PHP 등 Selenium WebDriver와 호환되는 모든 언어를 사용할 수 있습니다.
  3. 웹드라이버 프로토콜: Selenium WebDriver 프로토콜을 사용하여 모바일 애플리케이션을 제어합니다.
  4. 코드 수정 불필요: 애플리케이션의 소스 코드를 수정하지 않고도 테스트를 수행할 수 있습니다.

 

사전 설치 SDK

- Android SDK (ANDROID_HOME 환경변수)

- Java SDK (JAVA_HOME 환경변수)

- Node (LTS 18이상 권장)

- NPM 8버전 이상

- 파이썬

 

Appium 설치

npm i -g appium

 

Appium 실행

appium --allow-insecure chromedriver_autodownload
// 뒤에 드라이버 옵션이 붙어야 adb 상 크롬드라이버가 자동으로 세팅됨

위와 같은 버전이 결과로 나옴

 

UIautomator2 설치

appium driver install uiautomator2

 

Appium Doctor 설치

npm install appium-doctor -g


// Doctor 기능확인
appium-doctor -h

// 버전확인 및 appium 진단
appium-doctor --android

 

Appium-inspector 설치

https://github.com/appium/appium-inspector/releases 에서 각 OS에 맞는 것 다운 후 설치

 

 

테스트 개발 언어는 파이썬

pip install Appium-Python-Client

 

혹시나 권한 관련 오류가 난다면 아래와 같이 해주자( java.lang.SecurityException)

더보기

adb shell pm list users

0번 유저 외에 user가 있다면 삭제를 해주면 된다.(그 유저는 권한이 없을 것)

adb shell pm remove-user 150 (150번일 경우)

사용자 전환 해주면 끝

adb shell am switch-user 0

 

다음으로 테스트결과에 대한 리포트를 보여주는 패키지 설치가 필요하다.

(powershell)

// 정책변경(보안문제로)
Set-ExecutionPolicy RemoteSigned -scope CurrentUser

// apt 같은 패키지 도구 scoop 설치
iwr -useb get.scoop.sh | iex

// allure 설치
scoop install allure

 

환경변수 설정

// 아래경로 환경 변수 Path 에 추가
C:\Users\유저명\scoop\apps\allure\current\bin