[원문] http://www.developer.com/ws/android/development-tools/android-app-performance-testing-an-end-to-end-approach.html
안드로이드 앱 성능 시험 : 종단간 접근법2012년 6월 1일 안드로이드 애플리케이션 성능 테스트는 포함된 각 구성요소의 다양한 모든 시나리오를 테스트하는 종단간 애플리케이션 전달 모델을 따라야 한다. 그 방법은, 안드로이드 앱 개발자는 안드로이드 앱이 최종 사용자가 자신을 인식하는 것과 같이 주어진 단말에서 동작하는 방법에 대한 진정한 이해를 할 수 있다. 최근 DevX 기사에서 우리는 이러한 모바일 애플리케이션 성능 테스트용 종단간 접근법을 제안했다. 이 글에서 안드로이드 개발자가 샘플 뱅킹 앱을 사용한 안드로이드 애플리케이션 성능 테스트를 다루는 방식이 적합한지 살펴본다. 안드로이드 앱 성능 테스트 구성요소안드로이드 앱 성능 테스트는 아래 구성요소와 도구를 포함한다. 안드로이드 애플리케이션샘플 안드로이드 앱은 뱅킹 트랜잭션을 처리하는 하이브리드 애플리케이션이다. 하이브리드 모바일 애플리케이션은 네이티브 모바일 앱처럼 모바일 단말에 설치되나 사용자는 설치된 앱이나 단말 브라우저를 통해서 접근할 수 있다. 그 의도는 이 애플리케이션의 성능을 테스트하고 색다른 성능 지점을 찾는 것이다. 서버 구성요소서버 구성요소(자세한 내용은 아래 참조)는 두꺼운/얇은 모바일 클라이언트나 데스크톱 웹 브라우저에서 초기화된 뱅킹 트랜잭션용 비즈니스 로직을 처리한다.
네트워크 에뮬레이터네트워크 에뮬레이터는 개발자가 광역망(WAN)이나 무선 랜, GPRS, 3G, 2G, IPoR, RoIP, 위성 혹은 MPLS망 같은 환경을 시뮬레이트할 수 있도록 대기 시간과 지터, 패킷 손실/오류/재정렬, 대역폭 제한 같은 폭넓은 네트워크 조건을 재생성한다. 네트워크 에뮬레이터는 색다른 네트워크 조건 하에서 애플리케이션이 생성한 트래픽 부하를 판단한다. 우리는 이 성능 테스트를 위해 인포시스 랩이 개발한 사내 도구인 인포시스 윈드터널을 사용했다. 부하 생성기부하 생성기 도구는 테스트 중인 애플리케이션에 부하를 유발하고 부하 시간를 측정한다. 이는 환경 설정이 부하를 늘리고 동시 사용자를 증가시키고 초당 트랜잭션을 증가시키고 URL를 전달인자로 표시하도록 활성화하고 각 URL에 이름을 줄 수 있도록 해준다. 우리는 JMeter를 사용해 샘플 애플리케이션에 다양한 전달 모드로 부하를 재생성했다. 안드로이드 단말우리는 성능이 다양해서 테스트에 하이 엔드와 로우 엔드 단말 둘 다 사용했고 동일한 플랫폼에서 다양한 단말 환경 설정의 중요성을 증명하고 싶었다. 성능 모니터Perfmon은 윈도와 매핑되는 성능 모니터링 도구다. 필요한 성능 카운터는 테스트를 실행하기 전에 설정돼 있다. 설정된 데이터 수집기 집합을 시작한 후 시나리오가 진행되는 동안 자동으로 결과 데이터를 수집한다. 안드로이드 디버그 브리지안드로이드 SDK와 함께 출시된 도구인 안드로이드 디버그 브리지(
Dalvik 디버그 모니터 서버DDMS는 포트 포워딩 서비스와 단말의 화면 갈무리, 단말의 스레드 및 힙 정보, 로그캣과 프로세스와 라디오 상태 정보, 수신 전화와 SMS 스푸핑(spoofing), 위치 데이터 스푸핑 등을 제공하는 안드로이드 디버깅 도구다. DDMS는 이클립스에 통합돼 있고 SDK의
대표적인 안드로이드 앱 성능 테스트 시나리오를 설정하려면 아래 개별 설정의 지침을 따르자. 작업 부하 유형
작업 부하 혼합
네트워크 유형
단말 유형
실제 성능 테스트를 하는 동안 테스트 애플리케이션의 컨텍스트에 적용할 모든 시나리오가 재생성되도록 보장하자. Android 앱 성능 테스트 실행안드로이드 앱 성능 테스트를 실제로 실행하기 위한 단계는 다음과 같다.
이 단계는 앞서 언급된 모든 테스트 시나리오를 다루기 위해 반복됐다. 아래 데이터는 기기에서
안드로이드 앱 성능 테스트 결과테스트로 얻을 수 있는 샘플 결과가 몇 개 있다. 이 결과가 우리가 할 수 있는 종단간 성능 테스트라는 빙산의 일각에 불과함을 염두에 두자. 기기 성능아래 도표는 두꺼운 클라이언트와 얇은 클라이언트의 성능 비교아래 도표는 두꺼운 클라이언트와 얇은 클라이언트 사이의 차이를 보여준다. 이는 응답 렌더링이 최종 사용자의 관점에서 성능에 어떻게 영향을 주는지 우리가 이해할 수 있게 한다. 네트워크 성능 비교아래 도표는 3G와 4G 네트워크의 망속도를 나타낸다. 부하는 로드 러너 도구를 통해 생성된다. 우리는 부하를 늘리자마자 3G 응답 시간보다 2G 응답 시간이 더 길어짐을 관찰했다. 보다시피 모바일 애플리케이션 전달에 관련된 다양한 구성요소로 활용 가능한 종단간 데이터를 가지고 확장 분석을 수행할 수 있다. 그런 분석은 기기가 서버/네트워크 조건에 대한 제어권 없이 고립돼 테스트됐다면 불가능했다. 결론이 문서는 샘플 안드로이드 앱을 사용해 종단간 모바일 애플리케이션 성능 테스트 개념을 증명한 내용을 제시했다. 이는 테스트 방법 뿐만 아니라 관련된 도전 등 테스트에 필요한 모든 구성요소를 자세히 설명했다. 이 접근법을 채택한다면 우리의 안드로이드 애플리케이션 성능 테스트는 아래 조건으로 수행돼야 한다.
|
댓글 남기기