- 인쇄
- 어두운빛
Autify의 가장 큰 장점 중 하나는 풀사이즈 PC 브라우저 외에도 다양한 모바일 기기에서 테스트를 실행할 수 있다는 점입니다.
Autify를 사용하여 실제 모바일 기기에서 자동화된 테스트를 실행하면 다음과 같은 이점이 있습니다:
모바일 디바이스를 직접 소싱할 필요가 없습니다.
에뮬레이터에서는 볼 수 없는 실제 디바이스 고유의 동작을 확인할 수 있습니다.
자동화된 테스트를 반복적으로 실행할 수 있습니다.
하지만 실제 모바일 환경에는 고유한 특징과 한계가 있습니다. 따라서 성공적인 모바일 테스트의 핵심은 이러한 한계를 이해하고 테스트를 구축할 때 에뮬레이터 사용을 고려하는 것입니다.
이 문서에서는 실제 모바일 기기에서 테스트하는 방법과 일반적인 문제 및 해결 방법에 대한 팁과 요령을 확인할 수 있습니다.
1. Autify로 테스트할 수 있는 모바일 기기
Autify는 iOS 또는 Android 운영 체제에서 실행되는 다양한 스마트폰 및 태블릿을 지원합니다. 자세한 내용은 다음 문서를 참조하세요:
2. 모바일 디바이스와 에뮬레이터에서의 테스트의 차이점
실제 기기와 에뮬레이터(Chrome의 기기 모드)에서 테스트를 실행할 때 렌더링 엔진으로 인해 동작에 약간의 차이가 있습니다. 다음은 몇 가지 주요 차이점입니다:
- 에뮬레이터에서의 테스트는 빠르고 쉽습니다. 하지만 사용자 환경에 따라 약간의 차이가 있을 수 있습니다.
- 실제 기기에서 테스트하면 실행 속도가 느려지지만 렌더링은 사용자 환경과 일치합니다.
에뮬레이터에서 **[시나리오]**를 생성하거나 안정성을 확인할 때는 에뮬레이터를 사용하고, 에뮬레이터에서 실행 시 문제가 없음을 확인한 후 실제 기기를 사용하는 것이 좋습니다.
3. Autify로 실제 모바일 기기 테스트를 자동화하는 방법
다음은 Autify로 모바일 기기 테스트를 실행하는 권장 순서입니다:
- 모바일 크기의 창 크기로 [시나리오] 를 생성합니다.
- 실제 모바일 기기에서 테스트 실행
각 단계를 더 자세히 살펴보겠습니다.
3.1. 모바일 크기의 창 크기로 [시나리오]를 기록합니다.
이 작업을 용이하게 하는 방법에 대한 자세한 지침은 아래 문서에서 확인할 수 있습니다.
Chrome의 기기 모드에서 [시나리오] 를 녹화하고 사용자가 볼 것으로 예상되는 화면 크기를 선택하세요.
실제 기기에서 테스트를 실행할 때 중요한 것은 먼저 모바일 에뮬레이터에서 테스트가 일관되게 성공하는지 확인하는 것입니다. 에뮬레이터에서의 테스트는 빠른 프로세스이므로 테스트를 반복적으로 실행하여 [시나리오] 를 완벽하게 만들 수 있습니다.
3.2. 실제 모바일 기기에서 테스트 실행
모바일 에뮬레이터에서 테스트가 안정적으로 실행되면 실제 기기에서 테스트를 실행할 준비가 된 것입니다. 실제 기기 테스트를 위해 [테스트 계획] 을 준비합니다. 디바이스 드롭다운 메뉴의 오른쪽에 있는 스마트폰 및 태블릿 목록에서 적절한 디바이스를 선택하세요.
실제 iOS 기기
실제 안드로이드 기기
일부 이전 버전의 실제 기기 환경에서는 선택한 기기(버전)가 지원되지 않는다는 알림이 표시됩니다. 해당 환경에서도 테스트를 실행할 수 있지만 테스트 결과는 지원되지 않습니다.
4. 실제 모바일 디바이스와 에뮬레이터 중에서 선택하는 방법
실제 기기에서의 테스트와 에뮬레이터에서의 테스트는 모두 고유한 특성이 있습니다. 실제 모바일 기기에서 테스트가 원활하게 실행된 후에도 에뮬레이터를 활용하는 것이 좋습니다.
다음 두 가지 사항을 염두에 두세요.
4.1. 필요한 빈도와 시간에 따라 테스트 실행 계획 세우기
일반적으로 실제 모바일 기기에서 테스트하면 실행 속도가 더 빨라집니다. 실제 모바일 기기 테스트는 일반적으로 Autify 클라우드 환경의 모바일 에뮬레이터에서 테스트하는 것보다 10배 이상 실행 속도가 더 빠릅니다. 따라서 목적에 따라 에뮬레이터와 실제 디바이스에서 테스트하는 것이 좋습니다. 예를 들어 자주 실행해야 하는 테스트에는 에뮬레이터를 사용하고 주말에는 실제 모바일 기기에서 테스트를 실행하는 것이 좋습니다.
위 그림과 같이 실제 디바이스 테스트는 기본적으로 한 번에 하나씩 실행됩니다. 옵션으로 동시 테스트 실행 횟수를 늘릴 수 있습니다. 자세한 내용은 페이지 맨 아래에 있는 '실제 기기에서 여러 테스트를 동시에 실행하는 방법' 섹션을 참조하세요.
4.2. 실제 기기에서 지원되지 않는 기능을 사용할 때 에뮬레이터 활용하기
일부 기능은 실제 모바일 기기에서 테스트할 수 없으므로 에뮬레이터에서 테스트해야 합니다. 다음은 대표적인 예입니다:
- 파일 업로드
- 실제 iOS 디바이스에서 창 전환하기
위와 같은 테스트를 실행할 때는 에뮬레이터를 사용하여 기능을 테스트하세요.
5. 실제 모바일 기기에서 테스트할 때 발생하는 문제
모바일 기기 환경에서도 편안하게 테스트할 수 있도록 Autify를 개선하기 위해 지속적으로 노력하고 있지만, 모바일 기기 테스트는 기술적 어려움이 많은 영역입니다. 아래에서 실제 모바일 기기에서 테스트할 때 알려진 문제 목록을 확인할 수 있습니다.
5.1. 실행 속도
- 실제 모바일 기기에서의 테스트 실행 속도는 [외부 디바이스 팜 환경] 에 따라 달라지며, [Autify 클라우드 환경] 에서 테스트를 실행하는 것보다 훨씬 느립니다.
5.2. 디바이스별 동작
경우에 따라 PC의 녹화 환경에 존재하지 않는 요소가 테스트 안정성에 영향을 미칠 수 있습니다.
예: OS에서 표시되는 확인 대화 상자
5.3. 클릭 단계 구현
- 요소에 클릭 단계를 기록하면 대부분의 경우 탭 대신 클릭이 실행됩니다. 웹 페이지가 TouchEvent를 예상하고 수신하는 경우 클릭 단계가 이벤트를 트리거하지 않아 시나리오의 후속 단계가 실패할 수 있습니다. 웹페이지가 클릭을 포함한 MouseEvent를 수신하도록 업데이트하거나, 요소에 대한 JS 단계를 적용하여 프로그래밍 방식으로 터치 이벤트를 발송하세요. (이 동작은 에뮬레이터에서도 동일합니다.)
- 경우에 따라 테스트 실행 엔진이 클릭/탭이 실행되어야 하는 정확한 좌표를 획득하지 못해 잘못된 위치에서 클릭/탭이 실행되는 경우가 있습니다. 실행된 클릭/탭 단계의 좌표가 잘못 정렬된 것으로 의심되는 경우 지원팀에 문의하세요.
5.4. 타이밍 문제에 대한 민감성
- 실제 모바일 기기에서는 다른 환경보다 타이밍 문제가 더 자주 발생하는 경향이 있습니다. 이러한 문제는 페이지를 표시하는 데 걸리는 시간과 테스트를 실행하는 데 걸리는 시간 간의 불일치에서 비롯됩니다. 예시는 "버튼/링크를 클릭한 후 페이지가 전환되지 않는 경우가 있습니다" 섹션을 참조하세요.
5.5. 일시적인 문제
- 외부 디바이스 팜의 디바이스 상태에 따라 알 수 없는 오류 또는 중단이 발생할 수 있습니다. 대부분의 경우 테스트를 다시 실행하면 문제를 해결할 수 있습니다. 그러나 오류가 반복적으로 발생하는 경우 주저하지 마시고 문의해 주세요.
6. 실제 디바이스에서 테스트할 때의 문제 해결
6.1. 버튼/링크를 클릭한 후 페이지가 전환되지 않는 경우
다음 예시를 살펴보세요:
- 3단계: '데모 요청' 버튼을 클릭하면 페이지가 전환됩니다.
- 4단계: 페이지 전환 후 화면에 표시되는 텍스트를 확인합니다.
아래에서 실제 iPhone에서 위 단계를 실행한 결과 예시를 확인할 수 있습니다. 4단계에서 페이지가 전환되지 않았습니다.
이 문제는 페이지 표시 타이밍과 테스트 실행 타이밍이 일치하지 않아 발생할 수 있습니다. 실제 디바이스 환경에서 더 자주 발생하는 경향이 있습니다.
실제 디바이스에서만 페이지 전환이 실패하고 다른 환경에서는 실패하는 경우 페이지 전환을 유발하는 작업 뒤에 [URL Should be] 어설션을 추가하면 해결될 수 있습니다.
비슷한 문제가 발생하면 이 방법을 시도해 보세요.
6.2. 테스트 실행 환경마다 다른 사용자 계정을 사용하는 방법(모바일 기기에 국한되지 않음)
실제 기기를 포함한 다양한 환경에서 테스트를 병렬로 실행해야 할 때 테스트 실행마다 다른 계정을 사용하고 싶다는 사용자의 문의를 종종 받습니다. 이 경우 다음 예시와 같이 [JS Step]을 준비하여 이후 단계에서 반환된 값을 사용하는 것을 권장합니다.
/* 실행 환경에 따라 다른 사용자 계정이 반환되는 예제 *//
var userAgent = window.navigator.userAgent;
if (userAgent.indexOf('Android') >= 0) {
return ‘Android user’;
}
else if (userAgent.indexOf('iPhone') >= 0) {
return ‘iPhone user’;
}
else if (userAgent.indexOf('iPad') >= 0) {
return 'iPad user';
}
else {
return ‘Default user’;
}
6.3. 아이폰 [테스트 계획] 내에서 아이폰 테스트를 순차적으로 실행하는 방법과 안드로이드 [테스트 계획] 내에서 안드로이드 테스트를 순차적으로 실행하는 방법.
테스트가 [테스트 계획] 내에서 실행되는 순서를 지정할 수 있는 새로운 기능이 곧 출시될 예정입니다!
6.4. 실제 기기에서 여러 테스트를 동시에 실행하는 방법
기본적으로 실제 기기 환경에서는 한 번에 하나의 테스트만 실행할 수 있습니다. 선택적으로 두 개 이상으로 늘릴 수 있습니다! 실제 기기에서 여러 테스트를 동시에 실행하면 전체 테스트 시간을 줄일 수 있습니다.