BLOG
AWS Device Farm 사용 가이드
AWS Device Farm은 개발자가 AWS 클라우드에서 실제 Android 및 iOS 디바이스를 테스트하고 상호 작용함으로써 애플리케이션 품질, 출시에 걸리는 시간 및 고객 만족도를 개선할 수 있도록 해줍니다. 개발자는 앱을 업로드하고, 스크립트를 테스트하고, 수백 개의 실제 디바이스에서 자동화된 테스트를 병렬로 실행하고, 몇 분 만에 결과, 스크린샷, 동영상 및 성능 데이터를 얻을 수 있습니다. 또한, 웹 브라우저에서 디바이스를 쓸어넘기고, 동작하고, 상호 작용하는 방법으로 고객 문제를 디버깅하고 시뮬레이션을 할수 있는 서비스 입니다.
테스트 시 알아야 할 서비스 특징
앱의 유형
- Android, iOS
- PhoneGap, Titanium, Xamarin, Unity 등 지원
앱파일의 최대크기
최대 4GB 파일을 지원
지원하는 디바이스의 유형
- Android, iOS, Fire OS 디바이스
AWS Device Farm 특징
- 자동화된 테스트가 가능
- 원격 액세스를 통해서 Custom 테스트도 가능
- 고객이 사용하는 것과 같은 디바이스 사용
- 문제를 더 빠르게 재현하고 해결
- 실제 환경을 시뮬레이션
- 적합한 테스트를 선택가능 (Appium, Calabash, Espresso와 같은 오픈 소스 테스트 프레임워크에서 선택 가능)
- 개발 워크플로우와 통합
Device Farm 사용요금
- 분당 $ 0.17
- 무제한 액세스 (디바이스 슬롯당) 월 $250
사용가능 리전
- US Oregon
Device Farm 설정하기
US Oregon 리전으로 이동하여 [Get Started]를 클릭합니다. [Create a project]에서는 “Project name”을 입력합니다. 입력 후 [Create Project] 버튼을 클릭합니다.
[Automated Test]는 아마존이 제공하는 빌트인 테스트를 자동실행하거나 아니면 자신이 작성한 스크립트를 실행하여 테스트 할 수가 있습니다.
[Remote Access]는 테스트 할 기기를 선택한 후 해당 기기에서 시뮬레이션을 수동으로 테스트 해볼수가 있습니다.
아래 그림에서는 [Remote Access]를 설정하는 방법입니다. [Remote Access]를 클릭 후 [Start a new session]을 선택합니다.
스텝은 한가지 밖에 없습니다. 디바이스를 선택 하고 Remote access session 이름을 설정해 주면 됩니다. 테스트 할 기기와 안드로이드 버전을 확인 후 [Confirm and start session]을 클릭하면 됩니다.
세션 시작을 하면 다음과 같이 시뮬레이션 화면을 만들기 시작하고 약 2분정도 지나면 시뮬레이션 화면이 생성됩니다.
아래와 같이 갤럭시 장비의 시뮬레이션 화면이 나오며, 개발된 팩키지는 우측 화면에 나오는 [Install applications]를 클릭하여 팩키지를 PC에서 찾아서 Upload 하면 됩니다.
IMDB라는 팩키지를 선택하여 업로드 하고 진행중인 화면입니다. 업로드 후에는 [Select a recent Upload]에서 추가한 팩키지를 선택하면 해당 디바이스에 팩키지가 설치됩니다.
Imdb.mobile.6.1.3 버전이 설치되게 됩니다.
장비의 앱스 메뉴를 클릭해서 확인하면 됩니다.
잘 설치되었으며, 클릭하여 실행 후 테스트 하고자 하는 부분, 예를들면, 로긴하여 정상적으로 사용할수 있는지, 또는 검색 , 기타 여러가지 메뉴의 실행 여부를 확인하시면 됩니다.
IMDB를 실행 후 화면은 아래에서 참고하세요.
검색에서 Jason borne 을 검색한 화면입니다.
상단의 [Stop Session]을 클릭하면 테스트를 중단할수 있으며, 테스트시에 버그가 있거나 테스트한 화면에 대해서 스크린샷, 비디오, App의 시스템 로그를 확인 할 수가 있습니다.
위 메뉴에서 [Files]로 이동하면 로그, 스크린샷, 비디오를 확인할 수가 있습니다. 링크를 클릭하시면 됩니다. json포맷의 로그파일을 얻고 싶다면 위 화면의 우측상단 [Download logs]를 클릭하시면 됩니다.
이제는 [Automated Tests]를 테스트 하겠습니다.
[Automated Tests]로 이동 후 하단의 [Create a new run]을 클릭합니다.
클릭하면 아래와 같은 화면이 보입니다. 이미 [Remote Access]에서 업로드한 팩키지가 있으니 선택하면 됩니다. 아래와 같이 해당 App에 대한 정보를 출력합니다. 하단의 [Next Step]을 클릭.
다음은 테스트 방식입니다. 테스트 시나리오가 딱히 없다면 Built-in: Exporer나 Fuzz를 선택하면 알아서 랜덤하게 테스트하고 그 결과를 보여줍니다.
이제 [Next Step]을 누르면, 테스트 할 디바이스를 선택하게 됩니다. 100% 호환되는 디바이스가 출력되며, 이데로 [Next Step]을 눌러서 테스트 하면되지만, 별도로 디바이스를 지정하여 테스트를 할수도 있습니다. 상단의 [Create a new Device Pool]을 클릭하여 자신이 테스트 할 디바이스를 선택해도 됩니다. 이 디바이스 풀을 만들어 놓으면 App 업데이트 후 다시 테스트 할때도 용이하게 사용할 수가 있습니다. 저는 풀을 생성하여 아래와 같이 진행하겠습니다.
[Next Step]을 클릭합니다. 다음은 해당 앱의 설정파일을 업로드 할수 있습니다. 있다면 [Add extra data]를 클릭하고 업로드 하세요. 만약 다른 앱을 설치하고 싶다면 [Install other apps]에 해당 앱을 업로드하여 설치하세요. 기타, WiFi, Bluetooth, GPS, NFS 기능 중 사용해야 하는 기능을 On 하시면 됩니다. 테스트 시에 사용할 사용자의 위치를 위도/경도로 넣으시면 됩니다. 또한, 디바이스를 사용할 언어도 선택하시면 됩니다.
설정이 완료되면 [confirm and start run]을 클릭하시면 아래에 시뮬레이션 하는 디바이스들이 보입니다. 해당 디바이스들이 업로드한 앱을 구동하여 테스트를 진행하게 되며, 진행된 부분들은 로그나 스크린샷, 비디오로 확인이 가능합니다.
아래는 시뮬레이션이 끝난 장비 3개와 끝나지 않은 장비 2대가 보입니다. 우측 상단의 [Stop run]을 클릭하면 현재 진행중인 테스트 상태를 모두 정지시킵니다.
테스트가 끝난 위 3개중 하나를 클릭하면 아래와 같이 테스트에 대한 결과를 확인할 수가 있습니다.
Screenshots에는 테스트 한 모든 화면을 캡쳐한 그림이 보입니다. Files에는 로그 및 비디오 파일과 스크린샷을 확인할 수가 있습니다.
모든 디바이스가 테스트를 끝낸 화면을 확인할 수가 있습니다.
갤럭시 S6 Edge 장비이외에 장비는 모두 Allow 동의가 되지않아서 그이상의 테스트 진행이 안된 화면입니다.
위와같은 경우는 일부 윈도우 창이 떳을때 클릭 이벤트가 들어가야 하지만, 클릭하지 않아서 진행이 안되는 경우 입니다. 그래서, 가급적이면 [Remote Access]를 이용하여 테스트 하면 좋습니다.
이상으로 Device Farm의 개괄적인 사용법을 알아보았습니다.
읽어주셔서 감사합니다.