요약
- Appium의 영향을 받은 것으로 보임
- 클라우드나 서버 환경은 아니고 개별 테스트 엔지니어가 사용할 수 있는 툴을 배포
- 로컬 PC에 안드로이드폰을 ADB로 연결하여 컨트롤 하는 구조
- 테스트 리포트는 로컬PC에 HTML파일로 Generate
- Remote로 ADB를 연결할 수도 있기는 하나 테스트 스케줄링이나 병렬 수행 등이 간단하지는 않아 보임
- 난이도
- 프로그래밍이 능숙한 사람에게는 난이도가 높지 않음
- 다만, 최초로 테스트를 한 번 돌려보기 까지 과정을 수행하려면 가이드를 세밀히 볼 필요가 있음
- Python 언어를 알고 있다면 더욱 좋을 듯
- 완성도
- IDE나 UI 적인 완성도는 높은 수준
- 호환성이나 안정성 적인 측면에서는 마무리가 덜 된 부분이 있음
- IDE 자체 Crash 자주 발생
- 미러링 해상도 문제 때문에 스크립팅 불가
- 테스팅 개념
- 기능의 최소 단위가 액션(tap, swipe,...)과 검증(assert)
- 별도의 test case 라는 개념은 없음
- 리포트는 하나의 전체 스크립트에서 발생한 모든 액션과 검증을 쭉 나열한 형태
- 테스트 데이터 검증
- 이미지 인식
- SDK로 게임 오브젝트 인식 기능 제공
- 유니티 에디터와 연동
- Airtest에서는 자체 IDE에 Unity Editor의 Game view window를 Embedding 시킬 수가 있음
- Unity로 게임 개발 과정 중에 개발자 테스트를 작성하기 좋음
- SDK
- Airtest가 Unity Object 를 탐색하는 방법에 좀 더 많은 함수를 제공
AirTest client side 강점/약점
강점
- Windows API를 사용해 다른 툴과의 Communication이 가능함 (ex. Unity Editor등)
- 로컬 장비 및 Remote 장비를 이용한 ADB 베이스의 명령어 수행으로 안정성이 높음
- UiAutomator2 Process(Bootstrap)에 dependency가 없음
- WebServer 베이스가 아니므로, 터치 조작에 대한 미려한 반영이 가능(Drag & Drop, Circular Touch Event등)
- 참조하고 있는 library의 Android API Dependency가 없으므로, 디바이스 확장에 유리 (Android 버전)
- 대신 상대좌표 베이스 특성상 Display WxH ratio에는 Dependency가 있음
약점
- 아직은 Host IDE의 안정성이 낮음
- 잦은 크래시, 불친절한 UX
- 영상 스트림의 FPS가 낮음
- Effect가 현란한 게임, 영상등에 약점
- 개별 개발자 Test에서는 유용할 것으로 보이나, 팜 개념에서는 약점
- Remote Device 대여 등
- Display Manager등의 서비스에 Customizing이 들어간 케이스에서는 IDE에서 정상 지원하지 못함
- 삼성 폰 해상도 조절등