2013-06-09

[Android] 몽키 스크립트 - 간접 실행



몽키 스크립트를 이용하여 자동화 테스트를 하고자 하는 이유는 무료라는 점이며, 단순한 반복 테스트의 경우는 스크립트로 쉽게 만들어 테스트가 가능하다는 잇점이 있으며, 구글에서 조차 랜덤 및 스트레스 테스트로 몽키의 사용을 권장하고 있습니다.


몽키 스크립트를 이용한 테스트 방법은 2가지의 경우로 나눌수 있습니다.

여기서는 Simple Protocol for Automated Network Control을 이용하여, 네트웍 소켓프로그램으로  실행하는 법을 설명하고자 합니다. 이는 소켓 프로그램이 가능한 언어로 다른 형태의 테스트 프로그램을 작성 가능하게 해 주는 것으로, 몽키를 이용한 또 다른 활용의 방법을 제시 해 주고 있습니다.

SIMPLE PROTOCOL FOR AUTOMATED NETWORK CONTROL

The Simple Protocol for Automated Network Control was designed to be a low-level way to programmability inject KeyEvents and MotionEvents into the input system. The idea is that a process will run on a host computer that will support higher-level operations (like conditionals, etc.) and will talk (via TCP over ADB) to the device in Simple Protocol for Automated Network Control. For security reasons, the Monkey only binds to localhost, so you will need to use adb to setup port forwarding to actually talk to the device.

먼저 python이 설치 되어 있다는 가정하에, 간접 실행의 경우 아래 예제를 보면 보다 쉽게 이해 가능합니다. python의 설치는 이전 포스트에 설명 되어 있습니다.

  • 예제 : monkeyscript.py 
    [ monkeyscript.py ]


  • 문법 : monkey 소스에 포함되어 있는 example_script.txt에 의하면 아래와 같습니다. 
문제는 이 스크립을 직접 실행과 같이 adb push로 바로 실행 할 수 없다는 점입니다. 이를 위해서는 위와 같이 소켓 프로그램을 이용하여 포트에 써 주어야 하는 것이며, 각 커맨드의 구분은 '\n'의 개행 문자로 되어야 하는 부분입니다.

# Touch the android
touch down 160 200
touch up 160 200
sleep 1000

# Hit Next
touch down 300 450
touch up 300 450
sleep 1000

# Hit Next
touch down 300 450
touch up 300 450
sleep 1000

# Hit Next
touch down 300 450
touch up 300 450
sleep 1000

# Go down and select the account username
key down dpad_down
key up dpad_down
key down dpad_down
key up dpad_down
key down dpad_center
key up dpad_center

# account name: bill
key down b
key up b
key down i
key up i
key down l
key up l
key down l
key up l

# Go down to the password field
key down dpad_down
key up dpad_down

# password: bill
key down b
key up b
key down i
key up i
key down l
key up l
key down l
key up l

# Select next
touch down 300 450
touch up 300 450

# quit
quit

  • 실행 방법 : 
실행은 2개의 커맨드 창이 필요하며, 아래와 같이 adb port를 설정후 다른 커맨드 창에서 python을 이용하여 스크립트를 실행해 주면 됩니다. 중요한 것은 스크립트로 코딩한 포트와 동일하게 맞추어 주어야 합니다. 스크립트 종료시 Ctrl+Break 로 종료 가능합니다.

[adb tcp port 설정]

[python monkeyscript.py 실행] 

참조 : http://dustingram.com/articles/2010/06/18/automated-control-of-an-android-device-with-python/

끝.

댓글 없음:

댓글 쓰기

추천 게시물

목차

  Ⅰ. 산업안전관리론 1. 산업안전의 기본이론     1. 산업재해의 원인(★★★★☆) 5     2. 하인리히(Heinrich) 도미노 이론(★★★★★) 8     3. 프랭크 버드(Frank Bird) 신도미노 이론(★★★☆☆) 11 2. 안전관...