Test Automation/Katalon

Katalon Studio Android 앱 자동화 테스트 with Appium #1

블로그 닉네임 입력 제한 수는 몇 자인가요? 2025. 4. 11. 15:15

Katalon Studio는
Selenium 및 Appium 프레임워크가 내장되어 있습니다.
기본 제공하는 Appium 서버를 띄워 Android 앱을 테스트해보겠습니다!

1. Node.js 설치
https://nodejs.org/ko

Node.js는 자바스크립트를 브라우저 외에서도 실행 가능하게 해주는 런타임 환경입니다.
Appium은 Node.js 위에서 실행이 되는 구조입니다.
그래서 Katalon Studio 내 Appium 서버 구동을 위해 설치가 필요합니다.

Node.js 홈페이지


2. ADB 버전 및 기기 연결 확인
 ADB 명령어 사용을 위해선 Android SDK 설치가 필요한데, 이것도 Katalon Studio에서 기본 제공해줍니다!
PC 터미널을 열어서 명령어를 입력해주세요.

// 1. ADB 버전 및 설치 경로 확인
$ adb version
// 2. Android 기기 연결 확인
$ adb devices

ADB 경로가 Katalon 내에 있는걸 확인 가능합니다.

 

3. 기기 내 권한 및 설정

설정 → 휴대전화 정보 소프트웨어 정보 빌드번호 7번 터치
개발자 모드에 진입하여 USB 디버깅을 활성화합니다.

개발자 모드 진입!
개발자 옵션 내 USB 디버깅 활성화

 

4. Katalon Studio에서 Object Spy
Katalon Studio에서 안드로이드 테스트 시 크게 2가지 기능을 사용할 수 있습니다.

Object Spy - 테스트 앱 내부의 특정 UI 객체를 Object Repository에 저장
Recording - 테스트 앱을 조작한 결과를 스크립트로 자동 생성 & Object Spy 기능도 사용 가능

Object Spy

Object Spy > Android Devices 클릭

 

환경 세팅
연결한 Device Name 정보

Application File / ID 선택이 가능합니다.

Application File - 테스트 앱 APK파일을 가지고 있는 경우 경로 설정
Application ID - 테스트 앱 패키지명을 입력. 외부에서 앱을 설치하여 APK 파일이 없을 때 사용
예를 들어 com.test.test, 패키지명 추출 시 adb shell pm list packages | findstr 테스트 앱 명
혹은 adb pull로 apk 추출해서 하셔도 됩니다.

Mobile Object Spy 화면

 

START 버튼 클릭!
하면 기기에서 테스트 앱이 자동 실행됩니다.
그리고 테스트 앱 화면 내 Object 추출 결과를 볼 수 있습니다.

단, 현재 기기 내 화면 UI를 기반으로 Object를 추출합니다.
UI Automator를 통해 현재 표시 중인 레이아웃 트리만 캡쳐 가능하기 때문입니다.

좌측엔 Object 목록, 가운데는 저장할 Object 목록, 우측엔 테스트 앱 화면입니다.

탐지가 어려울 때!
주요 요소(id, content-desc 등)에 고유 ID를 부여해주면

자동화 시 탐지가 원활해지므로
해당 부분을 프론트 개발자에게 전달하시면 도움이 됩니다.

특정 화면에 대한 요소를 추출한 xml 파일 생성 방법

// 1. 기기 연결 확인
adb devices
// 2. 현재 기기에 나타나는 화면에 대한 요소를 XML 파일로 추출
adb shell uiautomator dump /sdcard/view.xml
// 3. 로컬 경로로 해당 XML 파일 이동
adb pull /sdcard/view.xml

 

Object Repository 내 객체 저장

1) All OBJECTS 내 저장할 객체 선택
2) Highlight 버튼을 클릭하여 해당 영역이 맞는지 확인, 우측에 초록색으로 표시됩니다.
3) OBJECT PROPERTIES 내 Object Name 부여, 한글로 하셔도 됩니다.
4) Add to Object Repository 클릭

Object Repository 내 저장 경로 선택

Merge changes into existing objects - 기존 객체가 존재하고, 속성만 병합해서 저장
Create duplicate objects - 동일 객체 존재하더라도 신규로 저장
Replace existing objects - 기존 객체 덮어씀

Tests Explorer > Object Repository 내 저장된 것을 확인할 수 있습니다!

 

테스트 케이스 스크립트 작성할 때

Object Repository 내 저장한 객체를
간단하게 가져와서 사용하실 수 있습니다.


다음 편에서 레코딩하는 방법도 작성해보겠습니다.