mobile application performance testing guide
모바일 애플리케이션의 성능 테스트 가이드 :
이것에 명시 적 범위의 성능 테스트 자습서, 우리는 개념을 탐구했습니다 클라우드 성능 테스트 지난 튜토리얼에서.
여기에서는 모바일 애플리케이션이 무엇인지, 모바일 애플리케이션 유형, 성능 테스트 모바일 애플리케이션 접근 방식, 모바일 애플리케이션 성능 테스트 환경을 설정하는 방법, 모바일 애플리케이션의 성능 문제를 해결하는 방법, 관련 과제 및 사용 가능한 도구 등을 학습합니다. 자세하게.
=> 전체 성능 테스트 자습서 시리즈를 보려면 여기를 클릭하십시오.
학습 내용 :
- 개요
- 모바일 애플리케이션이란 무엇입니까?
- 모바일 애플리케이션의 아키텍처
- 모바일 애플리케이션 성능 테스트 접근 방식
- 모바일 애플리케이션 성능 전략
- 모바일 애플리케이션 성능 테스트 환경
- 모바일 애플리케이션 성능 테스트 과제
- 모바일 애플리케이션의 성능 문제 해결
- 모바일 애플리케이션 성능 테스트 도구
- 결론
- 추천 도서
개요
오늘날의 기술 세계에서 모바일 애플리케이션은 일반 데스크톱 애플리케이션보다 널리 사용됩니다. 데스크톱이나 노트북을 사용하는 것보다 대부분의 애플리케이션에 액세스하기 위해 스마트 폰을 사용하는 사용자 수가 급격히 증가하고 있습니다.
또한 최종 사용자는 응용 프로그램을 사용할 때 응용 프로그램에서 좋은 응답을 기대하게됩니다. 따라서 모바일 애플리케이션을 빌드하는 개발자는 애플리케이션을 개발하는 동안이를 염두에 두어야합니다.
이제 성능 테스트는 일반 웹 응용 프로그램이든 모바일 장치의 응용 프로그램이든 중요합니다. 응용 프로그램이 성능 테스트를 거치지 않고 실행되고 최종 사용자가 느린 응답과 같은 성능 문제에 직면하면 더 나은 성능을 발휘할 다른 더 나은 응용 프로그램을 찾으려고 노력할 것입니다.
성능 테스트는 비용이 많이 들고 시간도 더 걸립니다. 따라서 많은 클라이언트가 성능 테스트를 피하지만 프로덕션 문제에 많은 도움이 될 것입니다. 따라서 최종 사용자가 사용할 수있게되기 전에 모든 애플리케이션을 철저히 테스트해야합니다.
모바일 애플리케이션이란 무엇입니까?
모바일 애플리케이션은 스마트 폰, 태블릿 및 기타 피처 폰과 같은 모바일 장치에서 작동하도록 설계된 미리 정의 된 기능 집합입니다. 모든 모바일 애플리케이션이 동일한 것은 아닙니다. 모바일 애플리케이션에는 세 가지 유형이 있으며 이러한 애플리케이션을 개발하는 데 사용 된 기술을 기반으로합니다.
3 가지 유형의 모바일 애플리케이션은 다음과 같습니다.
병합 정렬 구현 C ++
- 네이티브 모바일 애플리케이션
- 웹 기반 모바일 애플리케이션
- 하이브리드 애플리케이션
# 1) 네이티브 모바일 애플리케이션 :
기본 모바일 애플리케이션은 자신의 스마트 폰 또는 태블릿에서 실행되는 애플리케이션으로, 모바일 장치의 운영 체제에서 실행됩니다. 그들은 고성능을 제공하고 매우 신뢰할 수 있습니다. 이러한 유형의 응용 프로그램은 사진, 주소록 등과 같은 스마트 폰 장치의 다른 응용 프로그램에도 액세스합니다.
기본 애플리케이션은 모바일 애플리케이션 스토어에서 사용할 수 있습니다. Android의 경우 Play 스토어가 있고 iPhone의 경우 iTunes가 있습니다. 따라서 이러한 응용 프로그램은 해당 상점에서 다운로드되어 모바일 장치에 설치됩니다.
예 기본 응용 프로그램 중에는 계산기, 달력, Facebook 응용 프로그램 등이 있습니다.
# 2) 웹 기반 모바일 애플리케이션 :
웹 기반 모바일 애플리케이션은 브라우저에서 직접 실행되며 모바일 장치에는 설치되지 않습니다.
예 웹 기반 모바일 애플리케이션 중 온라인 게임, 소셜 네트워킹 사이트 등이 있습니다.
# 3) 하이브리드 애플리케이션 :
하이브리드 애플리케이션은 네이티브 애플리케이션과 유사하며 네이티브 컨테이너 내에서 실행되며 두 애플리케이션이 혼합되어 있으며 실제 브라우저가 아닌 디바이스 브라우저를 사용하여 애플리케이션 웹 페이지를 렌더링합니다.
예 하이브리드 응용 프로그램은 Instagram, Yelp 등입니다.
모바일 애플리케이션의 아키텍처
위 그림에서 , 스마트 폰과 태블릿은 클라이언트 측 아래에 있습니다. 여기에는 스마트 폰, 태블릿, 3G, 4G 등과 같은 네트워크와 같이 우리가 일반적으로 사용하는 장치가 포함됩니다. Android, ios, Windows 등과 같은 장치의 운영 체제입니다.
모바일 셀 네트워크 , 무선, 인터넷 및 방화벽은 네트워크 아래에 있습니다. 셀 네트워크의 경우 신호 강도, 네트워크 혼잡, 드롭 아웃 등이 표시됩니다. 무선 네트워크의 경우 신호 강도, 속도 등이 표시됩니다.
웹, 앱 및 DB는 대부분의 작업이 수행되는 서버 측에서 제공됩니다.
모바일 애플리케이션 성능 테스트 접근 방식
모바일 애플리케이션 성능 테스트는 웹 애플리케이션 성능 테스트와 다릅니다. 웹 응용 프로그램에 액세스하는 데 사용되는 랩톱 또는 데스크톱은 패킷 손실 또는 대기 시간과 같은 열악한 네트워크 상태로 인해 큰 어려움을 겪지 않습니다.
반면 모바일 애플리케이션 네트워크 상태에서는 패킷 손실, 지연 시간, 스마트 폰이나 스마트 기기처럼 사용하는 기기 유형 및 대역폭이 모두 중요하므로 모바일 애플리케이션의 성능 테스트를 고려하면서 이러한 모든 요소를 무시해서는 안됩니다.
성능 전략을 개발하기 전에 모바일 장치에서 실행중인 응용 프로그램 유형을 이해해야합니다.
응용 프로그램에는 세 가지 유형이 있습니다.
- 브라우저 기반 애플리케이션
- 기본 애플리케이션
- 하이브리드 애플리케이션
# 1) 브라우저 기반 애플리케이션 :
이러한 유형의 애플리케이션은 모바일 브라우저를 통해 직접 액세스 할 수 있으며 기기에 추가 소프트웨어를 다운로드하거나 설치할 필요가 없습니다.
가볍고 Android, iPhone 등과 같은 모든 유형의 장치에서 동일한 스택에 구축됩니다. 또한 반응 형 웹 디자인 이동을 통해 애플리케이션을 다양한 화면 크기로 렌더링 할 수 있으므로 다중 브라우저 기반 애플리케이션을 훨씬 더 쉽게 만들 수 있습니다.
이러한 유형의 애플리케이션은 인터넷 연결 없이는 액세스 할 수없고 기기에 모든 기능이 내장되어 있지 않으며 사용자에게 느리게 나타나는 경향이 있다는 단점이 있습니다.
그래서. 이러한 유형의 애플리케이션 성능을 테스트하는 동안 모바일 브라우저에서 사용자로드를 복제하는 것이 중요하며 대상 장치에서 웹 페이지 렌더링을 테스트하는 것도 중요합니다.
# 2) 기본 애플리케이션 :
이러한 유형의 응용 프로그램은 장치에 직접 설치된 소프트웨어를 사용하여 특정 플랫폼에 구축됩니다.
기본 응용 프로그램은 장치에 로컬로 구축되므로 더 빠르고 응답 성이 뛰어납니다. iPhone, Android 등 각 기기의 코드가 다르기 때문에 성능 테스트를 진행하는 동안 각 플랫폼에 대한 테스트를 고려해야합니다.
# 3) 하이브리드 애플리케이션 :
하이브리드 애플리케이션은 브라우저 및 기본 애플리케이션의 조합입니다. 빠른 통합 경험을 제공하는 네이티브 셸로 구성됩니다.
성능 테스트는 서버 측에서 이러한 하이브리드 애플리케이션 사용자가 생성 한 부하를 대상으로하고 최종 사용자 관점에서 온 디바이스 애플리케이션 성능을 측정합니다.
그렇다면 이러한 모바일 애플리케이션을 어떻게 테스트할까요?
이러한 모바일 애플리케이션을 테스트하려면 에뮬레이터와 실제 장치로 환경을 구축해야합니다. 모바일 에뮬레이터는 모바일 애플리케이션 또는 모바일 플랫폼을 모방하는 노트북 또는 데스크톱에 설치해야하는 소프트웨어입니다.
따라서 이러한 에뮬레이터를 사용하여 부하 테스트를 위해 상당한 양의 부하를 생성 할 수 있습니다.
다른 방법은 실제 장치를 사용하는 것입니다. 여기서 우리는 장치를 물리적으로 가지고 있으며 각 장치에서 응용 프로그램이 어떻게 작동하는지 볼 수 있습니다. 실제 장치를 사용하면 주요 목표 인 부하를 생성 할 수있는 옵션이 없지만 그렇게하려면 실제 장치가 여러 개 있어야합니다.
그러나 특정 장치에서 애플리케이션의 동작을 테스트하려면 실제 장치를 사용할 수 있지만 부하를 생성하려면 에뮬레이터를 사용해야합니다.
모바일 애플리케이션을 테스트하는 동안 주목할 다음 사항은 최종 사용자의 액세스 위치를 아는 것입니다. 사용자가 같은 도시, 같은 국가에서 액세스하는지 또는 전 세계에 퍼져 있는지 등을 아는 것이 매우 중요합니다.이를 고려하지 않고 테스트 또는 환경을 계획하면 테스트가 잘못 될 수 있습니다.
스마트 폰 또는 스마트 장치와 같은 모바일 응용 프로그램의 응용 프로그램 성능은 일반적으로 장치 성능, 서버 / API 성능 및 네트워크 성능 측면에서 측정됩니다.
각 공연에서 다음 사항을 확인해야합니다.
장치 성능 :
인터뷰에서 요구되는 기본 자바 프로그램
- 응용 프로그램 시작 시간
- 응용 프로그램을 사용하는 동안 배터리 시간
- 메모리 소비
- 하드웨어 및 소프트웨어 변형
- 다른 응용 프로그램과 함께 사용
- 백그라운드에서 실행되는 애플리케이션
서버 / API 성능 :
- 서버와주고받는 데이터.
- 생성 된 API 호출
- 서버 다운 타임
네트워크 성능 :
- 패킷 손실
- 네트워크 속도
따라서 모바일 애플리케이션 성능 테스트를위한 접근 방식을 작성하는 동안 위의 모든 사항을 고려하고 프로젝트 범위 및 요구 사항을 일치시켜야합니다.
모바일 애플리케이션 성능 전략
성능 테스트 접근 방식은 모바일 애플리케이션 유형마다 다릅니다. 각 응용 프로그램이 다른 구성 요소로 개발되고 처리 메커니즘이 각각 다르기 때문에 접근 방식은 응용 프로그램마다 다릅니다.
브라우저 기반 모바일 애플리케이션은 일반 웹 브라우저 애플리케이션과 다르게 작동합니다. 이 동작은 최종 사용자가 사용중인 데이터 요금제의 대역폭 때문이며 모바일 장치의 구성에 따라 다릅니다.
이러한 유형의 브라우저 기반 응용 프로그램을 개발하는 데 드는 비용은 모바일 장치에서 사용할 수있는 브라우저와의 호환성을 확인하는 것이므로 개발 작업이 더 적습니다.
따라서 모바일 브라우저 기반 애플리케이션과 같은 성능 테스트를 위해 브라우저에서 사용자 부하를 복제해야합니다. 에뮬레이터 또는 기타 추가 구성 요소를 사용하여이를 수행 할 수 있습니다. 모바일 브라우저의 사용자로드 외에도 장치에서 웹 페이지 렌더링을 테스트해야합니다.
네이티브 모바일 애플리케이션의 개발 비용은 더 많습니다. 응용 프로그램은 사용자 경험을 향상시키는 장치에 직접 설치되지만 응용 프로그램은 플랫폼에 따라 다릅니다.
따라서 이러한 유형의 애플리케이션에서 성능을 테스트하려면 Android, ios, windows 등과 같은 모바일 장치의 모든 플랫폼과 스마트 폰, 태블릿 등과 같은 모든 유형의 장치를 테스트해야합니다.
하이브리드 모바일 애플리케이션은 브라우저 기반 모바일 애플리케이션과 네이티브 모바일 애플리케이션의 조합이므로 여기서는 서버의 사용자 부하를 테스트해야하며 모든 모바일 장치 및 플랫폼에서 전체 확장 성능 테스트를 수행해야합니다.
모바일 장치의 모든 응용 프로그램에는 최종 사용자의 성능에 영향을 미치는 두 가지 주요 요소가 있습니다.
- 모바일 장치에서 요청
- 모바일 장치에서 렌더링하는 페이지
# 1) 모바일 장치에 대한 요청 :
이를 통해 요청이 서버로 전달되고 수신 된 요청에 따라 서버 응답이 생성됩니다. 서버에서 응답이 생성되면이 응답은 초기 요청을 보낸 모바일 장치로 다시 전송됩니다.
여기서 살펴 봐야 할 매개 변수는 서버 부하, 3G, 4G 등과 같은 다양한 네트워크 유형, 각 네트워크 및 기타 구성 요소의 부하입니다.
에뮬레이터를 사용하여이를 테스트 할 수 있습니다. 즉, 스크립트를 생성하고 에뮬레이터를 사용하여 서버의 사용자 부하를 모방 할 수 있습니다.
# 2) 모바일 장치에서 페이지 렌더링 :
모바일 장치에서 페이지 렌더링은 모바일 응용 프로그램에서 보낸 요청에 대해 서버에서받은 응답에 불과합니다.
여기에서 살펴 봐야 할 매개 변수는 장치의 운영 체제, 모바일 장치의 구성 설정 등입니다. 실제로 모바일 장치에 로그인하고 모니터링하여이를 테스트 할 수 있습니다.
ddos 공격을 보내는 방법
이제 위 그림에서 언급 한 각 단계를 자세히 살펴 보겠습니다.
a) 실시간 사용자 시나리오 생성 :
일반 웹 브라우저 애플리케이션과 마찬가지로 서버에서 예상되는 시나리오 또는 조건을 실시간으로 식별해야합니다. 테스트 할 시나리오가 많이 있습니다.
데스크톱과 모바일 장치 모두에서 사용할 수있는 웹 응용 프로그램이 있고 Android 및 iOS 장치에서도 기본적으로 제공되는 웹 응용 프로그램이있는 조건을 가정 해 보겠습니다. 여기에서는 애플리케이션 액세스 유형을 기반으로 테스트 스크립트를 개발해야합니다. 따라서 각 장치에서 별도로 테스트해야합니다.
또한 해당 시나리오에 대한 워크로드 패턴을 고려해야합니다. 즉, 각 장치에로드가 분산되는 방식을 이해해야합니다. 예를 들어, 500 명의 사용자가 웹을 통해 애플리케이션에 액세스하고, 약 100 명은 iOS 기기에서 기본 애플리케이션을 사용하고, 또 다른 200 명은 Android 애플리케이션의 기본 기기에서 애플리케이션에 액세스합니다.
서버 부하의 지리적 위치도 고려해야합니다. 예를 들어, 사용자의 30 %는 미국에서, 50 %는 인도에서, 나머지 20 %는 다른 지역에서 액세스하고 있습니다. 서버에 매우 큰 영향을 미치기 때문에 다른 사용자 위치를 모방하는 것은 필수입니다.
단일 위치에서 모든 100 %를 테스트하면 잘못된 결과가 생성됩니다. 따라서 다른 위치를 지정하여 서버의 부하를 테스트하는 것이 좋습니다. 클라우드 솔루션은 다양한 지리적 위치를 모방하는 데 사용할 수 있습니다.
b) 실시간 네트워크 조건 생성 :
여기에서 우리는 3G 네트워크, 2G 네트워크, Wi-Fi와 같은 다른 네트워크 조건과 최고의 속도, 평균 속도 및 저속의 네트워크 품질을 만들어야합니다. 네트워크 조건을 만들기 위해 네트워크 에뮬레이션을 수행해야합니다.
또한 50 % 대역폭 조건을 제공하여 성능을 테스트해야합니다. 네트워크 에뮬레이션을 수행하여이를 달성 할 수 있습니다. Wind Tunnel, Shunra 등과 같은 도구를 사용할 수 있습니다.
또한 방갈로르의 3G 네트워크와 같은 다른 지역과 관련하여 네트워크를 테스트합니다. Hyderabad 등의 4G. 여기에서도 적절한 도구를 사용하여 네트워크 에뮬레이션을 수행해야합니다.
c) 실시간 장치 조건 생성 :
이것은 씬 클라이언트 애플리케이션인지 씩 클라이언트 애플리케이션인지 여부, 모바일 디바이스의 운영 체제, iPhone, Nokia 등과 같은 디바이스 유형 및 기타 애플리케이션과 같은 모바일 디바이스의 애플리케이션 유형에 불과합니다. 이 특정 응용 프로그램 등을 사용하는 동안 병렬로 실행되는 것도 시나리오의 일부로 테스트해야합니다.
d) 각 구성 요소의 성능을 테스트합니다.
위의 모든 시나리오를 만든 후에는 모든 소프트웨어 및 하드웨어를 포함하여 애플리케이션의 성능을 테스트해야합니다. 이제 부하 테스트 중에 필요한 모든 측정 항목을 수집합니다.
수집해야하는 서버 측 메트릭 중 일부는 CPU 사용량, CPU로드, 처리 시간, 사용 가능한 총 바이트, 보낸 패킷, 수신 된 패킷 등입니다.
수집해야하는 네트워크 메트릭 중 일부는 네트워크를 통해 전송 된 패킷 및 바이트, 네트워크를 통해 수신 된 패킷 및 바이트, 삭제 된 패킷 및 총 평균 지연입니다.
수집 할 장치 메트릭은 CPU, 메모리 사용률, 응답 시간 등이며 모든 트랜잭션 응답 시간 및 처리량을 측정합니다.
모바일 애플리케이션 성능 테스트 환경
모바일 애플리케이션에 대한 성능 테스트 환경을 설정하기 전에 테스트 할 모바일 애플리케이션이 무엇인지, 테스트 할 모든 운영 체제 또는 장치와 다른 지리적 위치도 이해해야합니다.
따라서 먼저 에뮬레이터와 실제 장치로 구성된 환경을 만들어야합니다. 그렇다면 에뮬레이터는 무엇입니까? 에뮬레이터는 랩톱 또는 데스크톱 컴퓨터에 설치할 수있는 소프트웨어로, 모바일 장치로 작동합니다. 이러한 에뮬레이터를 사용하여 엄청난 부하를 생성 할 수 있으므로 모든 모바일 애플리케이션의 부하 테스트에 사용하는 것이 가장 좋습니다.
반면에 실제 장치는 물리적 모바일 장치입니다. 따라서 각 장치와 각 네트워크에서 애플리케이션 동작을 확인해야합니다. 그러나 여러 장치가 동일한 네트워크에 연결되어 있고 동일한 애플리케이션에 액세스하는 경우 대역폭, 패킷 손실 등을 테스트 할 수 없습니다.
다음으로 고려해야 할 사항은 애플리케이션 장치의 지리적 위치입니다. 이것은 고려해야 할 필수적이고 매우 중요한 측면입니다. 그렇지 않으면 테스트 결과가 실제 시나리오에서 발생하는 것과 같지 않습니다.
따라서 위의 모든 사항을 분석 한 후에는 각각의 부하 테스트 도구를 선택하여 성능 테스트를 수행하십시오.
모바일 애플리케이션 성능 테스트 과제
모바일 애플리케이션 성능 테스트 중에 직면 한 과제는 다음과 같습니다.
- 다른 모바일 장치에서 응용 프로그램을 테스트해야 할 때 IOS, Android, Windows 등과 같은 모든 장치를 구성해야합니다.
- 네트워크 시뮬레이션은 우리가 직면하게 될 또 다른 문제입니다. 즉, 3G, 2G, 4G 및 Wi-Fi 네트워크와 같은 네트워크를 시뮬레이션해야합니다.
- 테스트 실행을 처리하기 위해 모바일 장치에서 사용 가능한 메모리입니다.
- 모바일 장치의 배터리 수명.
모바일 애플리케이션의 성능 문제 해결
테스트 실행이 완료된 후 테스트 실행 중에 식별 된 성능 병목 현상을 수집 할 시간입니다. 문제가 통합되면 문제의 근본 원인을 파악하고 해결해야합니다.
모바일 애플리케이션의 몇 가지 성능 문제를 살펴 보겠습니다.
- 모바일 애플리케이션의 응답 지연 : 이 지연은 일반적으로 메모리 또는 캐싱으로 인해 발생합니다. 이러한 경우 캐시를 지우고 테스트를 다시 실행하는 것이 좋습니다.
- 응용 프로그램이 얼마 동안 다시 시작되거나 중단되거나 멈 춥니 다. 이러한 경우 업데이트가 필요한 것처럼 소프트웨어를 확인하고, 최적화를 위해 응용 프로그램 코드를 확인하고, 캐싱 처리는 조사해야 할 몇 가지 영역입니다.
모바일 애플리케이션 성능 테스트 도구
도구는 장치 및 플랫폼 유형에 따라 다를 수 있습니다.
가장 일반적으로 사용되는 도구는 다음과 같습니다.
Android 장치의 경우 :
로봇 : 이 도구를 사용하여 테스트를 수행하기위한 여러 단계를 기록하고 재생할 수 있습니다. 딸깍 하는 소리 여기 Robotium 튜토리얼을 보려면 .
몽키 러너 : 이 도구를 사용하여 데스크톱에 연결하여 장치에서 테스트를 실행할 수 있습니다. 도구의 인터페이스를 사용하여 스마트 폰에 액세스 할 수 있습니다.
iOS 장치의 경우 :
자동화 : 이 도구를 사용하여 워크 플로를 끌어서 놓아 자동화 할 수 있습니다.
결론
이 유익한 자습서를 통해 모바일 응용 프로그램에 대해 더 많이 배우고 모바일 응용 프로그램에 대한 부하 테스트를 완벽한 방식으로 수행하는 방법을 배우 셨을 것입니다.
다가오는 자습서에서는 간단한 용어로 수동 성능 테스트를 수행하는 방법에 대해 간략히 설명합니다.
=> 완전한 성능 테스트 자습서 시리즈를 보려면 여기를 방문하십시오.