Skip to content
coooldoggy.dev

Android App 테스트- txt파일을 이용한 테스트

Android1 min read

컴파일 오류는 찾기 쉽지만, 실행오류는 찾기 힘들다. 그래서 앱 출시 전 항상 검수과정을 거치는데, 일일히 기능을 체크하고 정해진 순서로 누르면 시간도 오래걸리고, 사람이 하는 테스트는 아무래도 루틴이 정해져 있기 때문에 예측불가능한 상황을 만들기 어렵다.

좋은회사라면 QA가 있어 이런 고민들을 할 필요가 없지만... QA가 따로 없는 회사에서는 개발자가 테스트를 하기도 한다.

아무튼 앱을 테스트하는 방법은 여러가지가 있다.

1.txt파일을 밀어넣어서 스크립트대로 동작하게하기 2.adb 명령어를 통한 랜덤테스트 3.Junit 테스트를 작성하여 실행

먼저 텍스트파일을 이용해서 스크립트를 짜면 원하는 화면좌표를 클릭할 수 있고, 로그인이 필요한 경우라면 텍스트 입력도 가능하다. 텍스트파일을 이용하는 것도 adb명령어를 통해 이루어지기 때문에 먼저 Android sdk가 설치된 경로로 이동해야한다.

1cd /Users/usr/Library/Android/sdk

adb 명령 실행시 command line not found 가 나오면 환경 변수 설정이 필요하다.

1//환경변수 file 생성
2touch ~/.bash_profile
3
4//file opne
5open -e ~/.bash_profile
6
7//새로고침
8source ~/.bash_profile
9
10//환경변수 제대로 설정됬는지 확인
11adb version

bash_profile path 예시 : 환경변수에 SDK 경로를 입력한다.

1export PATH=${PATH}:/Users/usr/Library/Android/sdk/tools:${PATH}:/Users/usr/Library/Android/sdk/platform-tools

다음으로 스크립트를 작성한다. 사용가능한 명령어는 다음과 같다

1//click event
2
3DispatchPointer(0, 0, 0, 831,1243, 0,0,0,0,0,0,0) //push
4DispatchPointer(0, 0, 1, 831,1243, 0,0,0,0,0,0,0) //release
5
6UserWait(3000) // sleep
7
8//keycode event
9DispatchPress(KEYCODE_Y)
10
11//종료
12quit
13
14/*
15* 사용가능한 명령어들
16*
17
18DispatchPointer(long downTime, long eventTime, int action,
19 float x, float y, float pressure, float size, int metaState,
20 float xPrecision, float yPrecision, int device, int edgeFlags)
21
22DispatchTrackball same as DispatchPointer
23
24DispatchKey(long downTime, long eventTime, int action, int code,
25 int repeat, int metaState, int device, int scancode)
26
27DispatchFlip(boolean keyboardOpen)
28
29DispatchPress(int keyCode)
30
31LaunchActivity(String pkg_name, String cl_name)
32
33UserWait(long sleeptime)
34
35LongPress()
36
37*
38*/

DispatchPress(KEYCODE_Y)로 키보드 값을 입력할 수 있는데 키코드 값은 안드로이드페이지에서 자세히 설명하고 있다.

keycode값

위에서 만든 파일을 txt 파일로 저장하고 adb가 있는 폴더로 이동한다

1cd /Users/usr/Library/Android/sdk

그리고 핸드폰에 이 script 파일을 복사한다.

1adb push /스크립트 경로/script.txt /sdcard/

마지막으로 script를 실행하여 결과를 확인한다.

1adb shell monkey -f /sdcard/script.txt 1

마지막의 1은 실행횟수를 말한다.