1. Ui Automator
android에서 앱을 자동으로 테스트 할 수 있게 만들어놓은 테스트 Framework 입니다.
크게 Espresso 테스트 프레임워크, UI Automator 테스트 프레임워크가 있는데
그 중에 Ui Automator는 사용자 플로우가 다른 앱이나 시스템 UI로 넘어갈 수 있도록 제공되고 있습니다.
https://developer.android.com/training/testing/ui-testing/uiautomator-testing?hl=ko
단점으로는 apk 형태로 자동화하려는 코드를 직접 만들어야 합니다.
2. openatx, uiautomator2
안드로이드 기반의 Ui Automator 기반의 외부 실행 자동화 프로그램입니다. 안드로이드 Ui Automator 는 안드로이드 app을 컴파일하고 빌드해서 원하는 자동화를 만들어야하지만, 전체적인 테스트 세트를 미리 준비하여 외부에서 안드로이드 테스트 app에 명령을 줘서 동작시키는 원리(http rpc)입니다.
uiautomator2 라고 하는 이유는 github에 이미 uiautomator가 존재하여 fork한 후 이름을 2를 붙였다고 합니다.
python wrapper : https://pypi.org/project/uiautomator2/
python에서는 uiautomator2 를 pip로 설치만 하면 간단하게 사용이 가능합니다.
아래는 단말을 개발자 모드 adb로 enable된 상태에서 connect 명령을 내린 상태
>>> import uiautomator2 as u2 >>> d = u2.connect() [W 220403 22:00:13 __init__:218] [pid:12328] atx-agent has something wrong, auto recovering [D 220403 22:00:13 __init__:322] [pid:12328] [xxxxxx] device xxxxxx is online [I 220403 22:00:14 init:156] uiautomator2 version: 2.16.14 [D 220403 22:00:14 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--stop') [I 220403 22:00:14 init:346] Install atx-agent 0.10.0 [D 220403 22:00:14 init:62] Download https://tool.appetizer.io/openatx/atx-agent/releases/download/0.10.0/atx-agent_0.10.0_linux_armv7.tar.gz atx-agent_0.10.0_linux_armv7.tar.gz |⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿| 4.1 MB/4.1 MB [D 220403 22:00:15 init:238] Push to /data/local/tmp/atx-agent:0755 [D 220403 22:00:16 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--nouia', '-d', '--addr', '127.0.0.1:7912') [I 220403 22:00:16 init:350] Check atx-agent version [D 220403 22:00:16 init:359] Forward: local:tcp:57410 -> remote:tcp:7912 [D 220403 22:00:16 init:359] Forward: local:tcp:57410 -> remote:tcp:7912 [D 220403 22:00:16 init:362] atx-agent version 0.10.0 [D 220403 22:00:16 init:365] device wlan ip: 192.168.0.xx
단말은 ADB로 연결한 상태에서 connect()메소드를 사용하면 atx-agent를 자동으로 다운로드 하여 단말에 설치하게 됩니다.
atx-agent는 단말에 설치하는 전체적인 테스트 세트라고 생각하면 됩니다.
python에서 여러가지 기능들이 준비가 되어있어서 쉽게 android 단말을 제어 가능합니다.
홈페이지 : https://github.com/openatx/uiautomator2
3. appium
uiautomator2와 동작 원리는 같습니다. 좀더 덩치가 크고 여러가지 언어를 이용해서 test 코드(자동화)를 만들 수 있다. 특히 javascript 를 이용한 예제 코드가 많이 보입니다.
홈페이지 : http://appium.io/
4. 끝으로
JavaScript가 편하다면 appium을 python이 편하다면 uiautomator2 를 추천합니다.
댓글 없음:
댓글 쓰기