Nocca
english / korean

INTRODUCTION

Nocca를 통해 사용자 action을 recording하여 Appium 기반의 Test Script를 손쉽게 생성할 수 있습니다.


Nocca로 사용자의 Action을 Recording한 후 바로 Replay 하거나 Appium Script로 export 할 수 있으며, 차후 공개될 apptest.ai 서비스(Mobile Test Device Farm)에 upload하여 여러 Device에서 실행해 볼 수 있습니다.

Nocca는 사용자 Action을 정교하게 기록하기 위해 안드로이드 접근성(Accessibility) 서비스와 Input Event을 함께 사용합니다.
따라서 접근성 서비스 사용 권한을 허용하는 것 외에 Nocca가 Device의 Input event에 접근할 수 있도록 루팅된 Phone에서는 루트 권한을 허용해야 하고, 루팅되지 않은 Phone에서는 USB로 연결된 PC에서 별도의 Input Event Daemon을 실행시켜야 합니다.

* 안내
- 사용자가 지정한 앱 외에서 발생하는 어떠한 이벤트도 기록하지 않습니다. 사용자가 요청한 Export & Upload 데이터 외에 어떤한 정보도 단말기 밖으로 내보애지 않습니다.
- 패스워드는 기록되지 않으며 Replay 시에 패스워드 입력이 필요한 경우는 사용자에게 입력을 요청합니다.

* 필수 권한
- 접근성 권한은 기록을 위해 Accessibility Event를 받는 용도로 사용합니다.
- 다른 앱 위에 그리기 권한은 기록하는 중간에 사용자에게 정보를 제공하는 용도로 사용합니다.
- Media Projection 권한은 화면을 캡춰하는 용도로 사용합니다.
- 외부 저장소 읽기/쓰기 권한은 캡춰 화면, 화면 XML, Appium Script 내보내기에 사용합니다.
- 인터넷 연결 권한은 apptest.ai 서비스로 기록을 upload 하는 경우에만 사용됩니다.


btn_google_down

DOCUMENTATION


1. Input Event Daemon 사용

Android SDK가 설치되어 있고, 바로 adb 명령을 사용할 수 있는 환경이라고 가정하여 작성하였습니다.

(adb 명령은 단말기와 PC가 연결되어 있어야 사용할 수 있습니다)

Shell script를 실행하기 위해서 Linux 환경을 가정하여 작성하였습니다.


1) Input Event Daemon 다운로드

Download : event_daemon.zip


2) 압축 해제

apptest_ai_recorder_ied_1


3) 설치 및 실행

apptest_ai_recorder_ied_2

설치 및 실행이 완료되면 adb shell "ps | grep event_daemon" 명령으로 확인할 수 있습니다.
* 단말이 재부팅 되면 Input Event Daemon을 다시 실행해야 합니다.



2. 레코딩

1) 권한 부여

- 접근성 권한은 기록을 위해 Accessibility Event를 받는 용도로 사용합니다.
- 다른 앱 위에 그리기 권한은 기록하는 중간에 사용자에게 정보를 제공하는 용도로 사용합니다.
- Media Projection 권한은 화면을 캡춰하는 용도로 사용합니다.

apptest_ai_recorder_record_1
apptest_ai_recorder_record_2
apptest_ai_recorder_record_3
apptest_ai_recorder_record_4
apptest_ai_recorder_record_5
apptest_ai_recorder_record_6
apptest_ai_recorder_record_7


2) 레코딩 대상 앱 실행 선택 및 실행

apptest_ai_recorder_record_8
apptest_ai_recorder_record_9
apptest_ai_recorder_record_10
apptest_ai_recorder_record_11


3) 레코딩 종료

레코딩 중에 레코딩을 종료하려면 Volume UP 또는 Volume DOWN 버튼을 누르세요.

apptest_ai_recorder_record_12
apptest_ai_recorder_record_13
apptest_ai_recorder_record_14


3. Replay

Replay 중에 버튼(Back, Home 등)을 누르면 Replay가 중지됩니다.

apptest_ai_recorder_replay_1
apptest_ai_recorder_record_2
apptest_ai_recorder_record_3


4. Export 및 Appium Script 실행

1) Export

캡춰 화면, 화면 XML, Appium Script를 외부 저장소로 내보내기 할 수 있습니다.

외부 저장소 읽기/쓰기 권한은 캡춰 화면, 화면 XML, Appium Script 내보내기에 사용합니다.

apptest_ai_recorder_export_1
apptest_ai_recorder_export_2
apptest_ai_recorder_export_3
apptest_ai_recorder_export_4


2) Export한 파일을 PC로 전송하기 위한 설정

외부 저장소에 내보내기가 완료된 파일을 PC로 가져오려면 단말기와 PC가 연결되어 있어야하며, 파일 전송(MTP) 상태로 변경해야 합니다.

apptest_ai_recorder_export_mtp_1
apptest_ai_recorder_export_mtp_2
apptest_ai_recorder_export_mtp_3
apptest_ai_recorder_export_mtp_4


3) 파일 전송(MTP) 상태로 변경되면 PC에서 단말기의 외부 저장소에 접근할 수 있습니다.

apptest_ai_recorder_export_mtp_5


4) 외부 저장소에 들어가면 Download 디렉토리를 확인할 수 있습니다.

apptest_ai_recorder_export_mtp_6


5) Download 디렉토리에 들어가면 Export한 폴더를 확인할 수 있습니다.

apptest_ai_recorder_export_mtp_7


6) Export한 폴더에 들어가면 캡춰 화면, 화면 XML, Appium Script를 볼 수 있습니다.

apptest_ai_recorder_export_mtp_8


7) 외부 저장소에서 Appium Script를 가져와서 내용을 확인해 보면 다음과 같은 형태로 되어있습니다.

기록시에 패스워드 입력이 있었다면 스크립트 상단의 PASSWORD 변수의 값을 원하는 값으로 변경하세요.

apptest_ai_recorder_export_script_1

apptest_ai_recorder_export_script_2


8) Replay를 위한 Appium Script 실행

이제 Appium을 실행시킨 후에, 터미널에서 Appium Script를 실행하면 Appium을 통한 Replay가 동작합니다.

apptest_ai_recorder_export_script_3