최근 검토한 자동화 도구 Airtest에 대한 간략한 내용을 기재합니다.
NetEase games에서 개발한 OpenCV를 활용한 자동화 프레임워크이다. (중국)
IOS, Andriod 모두 사용 가능하고 web또한 자동화가 가능하다.
자동화 코드는 python 언어로 작성하며, Airtest IDE를 제공하기에 IDE에서 손쉽게 스크립트 작성이 가능하다.
또한 IDE에서 테스트 실행 및 테스트 보고서도 제공된다.
🧐 Poco ?
Poco는 Appium과 유사한 게임 자동화 프레임워크로, Unity3D및 Cocos2dx와 같은 게임엔진을 지원한다. (단 Poco-SDK를 프로젝트와 연결이 필요하다.)
🧐 OpenCV?
Open CV는 Open Source Computer Vision의 약자로 영상 처리에 사용할 수 있는 오픈 소스 라이브러리이다.1999년 인텔사에서 초기 개발을 시작했으며 2006년도에 처음 사용 가능한 1.0버전이 출시되었다.
기본적으로 각 메뉴에 마우스 오버 시 사용 방법에 대해 안내를 해주고 있다.touch : 이미지 등 클릭 동작, 화면에서 이미지 영역을
wait : 이미지가 나타날 때 까지 대기,
swipe : 스와이프 동작, 스와이프 코드가 실행되면 이미지를 찾아 아래로 스와이프 한다.
exists : 이미지가 존재하는지 확인, True False 를 반환한다.
text : 텍스트를 입력
keyevent : home, back, 전원 버튼 등을 입력한다. adb shell input keyevent KEYNAME 와 동일하다
snapshot : 스크린 샷
sleep : 일정 시간 대기
( assertion )
assert_exists : (touch와 기능 같음) 이미지 존재 여부 확인. (텍스트의 경우 리포트에 남길 텍스트 기재)
assert_not_exist : (touch와 기능 같음) 이미지가 존재하지 않는 것 확인.
assert_equal : 같은지 확인.
assert_not_equal : 같지 않은지 확인.
📍 devices를 PC와 연결한다.
📍 정상적으로 연결됐다면 Airtest의 Devices 창에 연결된 디바이스가 노출되고, connect 를 누르면 디바이스 화면이 노출된다.
📍 Airtest 보조창을 이용해 테스트 하고자 하는 케이스 스크립트를 작성한다.
🙋 현재 맡고있는 프로젝트이기에 일부 블러 처리를 하였다.
(1) 앱 실행
(2) 로그인 씬이 모두 로드됨을 체크,
(3) A 버튼이 활성 상태일 경우 A 버튼을, 아닐 경우 B 버튼을 클릭
(4) 메인로비가 활성된 경우 (C버튼이 find 될 경우) C버튼 클릭
📍 작성이 완료된 후 테스트를 실행한다
📍 테스트 실행 후 생성된 리포트
📍 Airtest 프로젝트 파일 내부를보면 아래와 같이 Python 파일과 이미지가 저장되어 있다.
저장된 python 파일 내부 구조
# -*- encoding=utf8 -*-
__author__ = "SB"
from airtest.core.api import *
auto_setup(__file__)
start_app("com.**********")
wait(Template(r"tpl1663662808413.png", record_pos=(-0.425, -0.168), resolution=(2280, 1080)))
sleep(2)
loadBtnExst = exists(Template(r"tpl1663659090457.png", record_pos=(-0.003, 0.096), resolution=(2280, 1080)))
if loadBtnExst:
touch(loadBtnExst)
else :
touch(Template(r"tpl1663662908791.png", record_pos=(0.001, 0.044), resolution=(2280, 1080)))
wait(Template(r"tpl1663666884830.png", record_pos=(-0.462, -0.121), resolution=(2280, 1080)))
touch(Template(r"tpl1663666884830.png", record_pos=(-0.462, -0.121), resolution=(2280, 1080)))
리포트는 스크립트가 실행된 후, 생성이 가능하다.
리포트는 자동으로 생성되지 않고 최초에는 log 파일만 생성된 상태이다.
log 파일 경로 (메뉴 > Options > Settings > Default Log Path)
Airtest IDE > 메뉴 > Run > View Report 를 선택하면 log 파일을 기준으로 리포트가 생성된다.
생성경로 : file:///C:/Users/{user}/AppData/Local/Temp/AirtestIDE/scripts/
안녕하세요. 궁금한 사항이 있어 문의 남깁니다.
해당 프로그램이 모바일 앱에만 적용가능한 툴일까요..? 컴퓨터 프로그램에도 응용해서 사용이 가능할까요?