mobile application performance testing guide
Przewodnik po testowaniu wydajności aplikacji mobilnych:
W tym Wyraźny zakres samouczków dotyczących testowania wydajności, zbadaliśmy koncepcję Testowanie wydajności w chmurze w naszym ostatnim samouczku.
Tutaj dowiesz się, czym jest aplikacja mobilna, rodzaje aplikacji mobilnych, podejście do testowania wydajności aplikacji mobilnych, jak skonfigurować środowisko testowania wydajności aplikacji mobilnych, jak rozwiązywać problemy z wydajnością aplikacji mobilnych, związane z nimi wyzwania i dostępne narzędzia itp. szczegółowo.
jaki jest najlepszy kompilator C ++
=> Kliknij tutaj, aby uzyskać pełną serię samouczków dotyczących testowania wydajności
Czego się nauczysz:
- Przegląd
- Co to jest aplikacja mobilna?
- Architektura aplikacji mobilnych
- Podejście do testowania wydajności aplikacji mobilnych
- Strategia wydajności aplikacji mobilnych
- Środowisko testowania wydajności aplikacji mobilnych
- Wyzwania związane z testowaniem wydajności aplikacji mobilnych
- Rozwiązywanie problemów z wydajnością aplikacji mobilnych
- Narzędzia do testowania wydajności aplikacji mobilnych
- Wniosek
- rekomendowane lektury
Przegląd
W dzisiejszym świecie technologii aplikacje mobilne są szeroko stosowane niż zwykłe aplikacje komputerowe. Liczba użytkowników, którzy używają smartfonów do uzyskiwania dostępu do większości swoich aplikacji niż przy użyciu komputera stacjonarnego lub laptopa, wzrosła drastycznie.
Ponadto użytkownik końcowy będzie oczekiwał dobrej odpowiedzi ze strony aplikacji, gdy z niej korzysta. Dlatego deweloper, który tworzy aplikacje mobilne, musi o tym pamiętać podczas tworzenia aplikacji.
Testowanie wydajności jest teraz krytyczne, czy to zwykła aplikacja internetowa, czy aplikacja na urządzenie mobilne. Jeśli aplikacja zostanie uruchomiona bez testowania wydajności i jeśli użytkownik końcowy napotka problemy z wydajnością, takie jak powolna odpowiedź itp., Wówczas spróbuje znaleźć inną lepszą aplikację, która będzie działać w lepszy sposób.
Testowanie wydajności jest kosztowne i zajmuje więcej czasu. Dlatego wielu klientów unika chodzenia na testy wydajności, ale to bardzo pomoże w problemach w produkcji. Dlatego każda aplikacja musi zostać dokładnie przetestowana, zanim zostanie udostępniona użytkownikowi końcowemu.
Co to jest aplikacja mobilna?
Aplikacje mobilne to zestaw predefiniowanych funkcji, które są przeznaczone do pracy na urządzeniach mobilnych, takich jak smartfony, tablety i inne telefony z funkcjami. Nie wszystkie aplikacje mobilne są takie same. Istnieją trzy różne typy aplikacji mobilnych, oparte na technologii, która została wykorzystana do ich opracowania.
Trzy rodzaje aplikacji mobilnych obejmują:
- Natywne aplikacje mobilne
- Internetowe aplikacje mobilne
- Aplikacje hybrydowe
1) Natywne aplikacje mobilne:
Natywne aplikacje mobilne to te aplikacje, które działają na własnych smartfonach lub tabletach, działają w systemie operacyjnym urządzeń mobilnych. Zapewniają wysoką wydajność i są również bardzo niezawodne. Tego typu aplikacje uzyskują również dostęp do innych aplikacji na smartfonie, takich jak zdjęcia, książka adresowa itp.
Aplikacje natywne są dostępne w sklepie z aplikacjami mobilnymi. W przypadku Androida mamy sklep Play, a na iPhone'a mamy iTunes. Dlatego te aplikacje są pobierane z odpowiednich sklepów i instalowane na urządzeniach mobilnych.
Przykłady aplikacji natywnych to kalkulator, kalendarz, aplikacja Facebook itp.
# 2) Internetowe aplikacje mobilne:
Aplikacje mobilne oparte na sieci Web działają bezpośrednio z przeglądarki, nie są instalowane na urządzeniu mobilnym.
Przykłady internetowych aplikacji mobilnych to gry online, portale społecznościowe itp.
# 3) Aplikacje hybrydowe:
Aplikacje hybrydowe są podobne do aplikacji natywnych i działają wewnątrz kontenera natywnego, stanowią mieszankę obu aplikacji i używają przeglądarki urządzenia, a nie rzeczywistej przeglądarki do renderowania stron internetowych aplikacji.
Przykłady aplikacji hybrydowej to Instagram, Yelp itp.
Architektura aplikacji mobilnych
Na powyższym rysunku , smartfony i tablety znajdują się po stronie klienta. Obejmują one urządzenia, z których zwykle korzystamy, takie jak smartfony, tablety, ich sieci, takie jak 3G, 4G itp. System operacyjny urządzeń, takich jak Android, iOS, Windows itp.
Sieć komórkowa , Sieć bezprzewodowa, Internet i Zapora sieciowa znajdują się w sekcji Sieć. W przypadku sieci komórkowej widzimy siłę sygnału, przeciążenie sieci, zaniki itp. W przypadku sieci bezprzewodowej widzimy siłę sygnału, prędkość itp.
Sieć, aplikacja i baza danych znajdują się po stronie serwera, gdzie wykonywana jest większość pracy.
Podejście do testowania wydajności aplikacji mobilnych
Testowanie wydajności aplikacji mobilnych różni się od testowania wydajności aplikacji internetowych. Laptopy lub komputery stacjonarne używane do uzyskiwania dostępu do aplikacji internetowych nie cierpią zbytnio z powodu złych warunków sieciowych, w tym utraty pakietów lub opóźnień.
Podczas gdy w aplikacjach mobilnych warunki sieciowe, utrata pakietów, opóźnienia, rodzaj używanego urządzenia, takiego jak smartfon lub urządzenie inteligentne, i przepustowość mają znaczenie, i nie powinniśmy ignorować wszystkich tych czynników, rozważając testowanie wydajności aplikacji mobilnych.
Zanim opracujesz swoją strategię wydajności, powinieneś zrozumieć, jakiego typu aplikacji używasz na swoim urządzeniu mobilnym.
Istnieją trzy rodzaje aplikacji:
- Aplikacje oparte na przeglądarce
- Aplikacje natywne
- Aplikacje hybrydowe
# 1) Aplikacje oparte na przeglądarce:
Do tego typu aplikacji można uzyskać bezpośredni dostęp przez przeglądarkę mobilną i nie wymagają one pobierania ani instalowania dodatkowego oprogramowania na urządzeniu.
Są lekkie i zbudowane na tym samym stosie we wszystkich typach urządzeń, takich jak Android, iPhone itp. Ponadto responsywne projektowanie stron internetowych Moving jeszcze bardziej ułatwia tworzenie aplikacji opartej na wielu przeglądarkach, ponieważ można renderować aplikację na ekranach o różnych rozmiarach.
Aplikacje tego typu mają wady polegające na tym, że nie można uzyskać do nich dostępu bez połączenia z Internetem, nie mają wszystkich funkcji wbudowanych w urządzenie, a także wydają się wolniejsze dla użytkowników.
Więc. Podczas testowania wydajności tego typu aplikacji ważne jest, aby replikować obciążenie użytkownika z przeglądarki mobilnej, a także przetestować renderowanie strony internetowej na urządzeniach docelowych.
# 2) Aplikacje natywne:
Tego typu aplikacje są budowane na określonej platformie przy użyciu oprogramowania, które jest instalowane bezpośrednio na urządzeniu.
Aplikacje natywne są szybsze i bardziej responsywne, ponieważ są tworzone lokalnie na urządzeniu. Ponieważ kod na każdym urządzeniu jest inny, np. Dla iPhone'a, Androida itp., Podczas testów wydajnościowych musimy rozważyć testowanie na każdej platformie.
# 3) Aplikacje hybrydowe:
Aplikacje hybrydowe to połączenie aplikacji przeglądarkowych i natywnych. Składają się z natywnej powłoki, która zapewnia szybką integrację.
Podczas gdy testowanie wydajności jest ukierunkowane na obciążenie generowane przez użytkowników takiej aplikacji hybrydowej po stronie serwera, a także mierzy wydajność aplikacji na urządzeniu z perspektywy użytkownika końcowego.
Jak więc testujemy te aplikacje mobilne?
Aby przetestować takie aplikacje mobilne, musimy zbudować środowisko z emulatorami i prawdziwymi urządzeniami. Emulatory urządzeń mobilnych to programy, które należy zainstalować na naszych laptopach lub komputerach stacjonarnych, które będą imitować aplikację mobilną lub platformę mobilną.
W związku z tym za pomocą tych emulatorów możemy wygenerować znaczną ilość obciążenia dla naszych testów obciążenia.
Drugą metodą jest użycie prawdziwych urządzeń, tutaj mamy urządzenie fizycznie i możemy zobaczyć, jak aplikacja działa na każdym urządzeniu. Korzystając z prawdziwych urządzeń, nie mamy możliwości generowania obciążenia, co jest naszym głównym celem, ale aby to zrobić, musimy mieć wiele rzeczywistych urządzeń.
Jeśli jednak chcesz przetestować zachowanie aplikacji na konkretnym urządzeniu, możesz skorzystać z urządzenia rzeczywistego, ale do generowania obciążenia potrzebujemy emulatorów.
Następną kwestią, na którą należy zwrócić uwagę podczas testowania aplikacji mobilnej, jest poznanie lokalizacji dostępu użytkownika końcowego. Bardzo ważne jest, aby wiedzieć, czy użytkownicy uzyskują dostęp z tego samego miasta, tego samego kraju, czy są rozproszeni po całym świecie itp. Jeśli planujemy nasze testy lub środowisko bez uwzględnienia tego, nasze testy będą błędne.
Wydajność aplikacji w aplikacji mobilnej, takiej jak smartfon lub urządzenie inteligentne, jest zwykle mierzona jako wydajność urządzenia, wydajność serwera / interfejsu API i wydajność sieci.
Musimy sprawdzić, co następuje w każdym przedstawieniu.
Wydajność urządzenia:
- Czas uruchamiania aplikacji
- Czas pracy baterii podczas korzystania z aplikacji
- Zużycie pamięci
- Odmiana sprzętu i oprogramowania
- Wykorzystanie z innymi aplikacjami
- Aplikacja działająca w tle
Wydajność serwera / API:
- Dane do iz serwera.
- Wygenerowane wywołania API
- Przestój serwera
Wydajność sieci:
- Utrata pakietów
- Szybkość sieci
Dlatego pisząc podejście do testowania wydajności aplikacji mobilnych, należy wziąć pod uwagę wszystkie powyższe punkty i dopasować zakres i wymagania projektu.
Strategia wydajności aplikacji mobilnych
Podejście do testu wydajności różni się dla każdego typu aplikacji mobilnej. Podejście różni się w zależności od aplikacji, ponieważ każda aplikacja składa się z różnych komponentów, a mechanizm przetwarzania jest inny dla każdego.
Aplikacje mobilne oparte na przeglądarce działają inaczej niż zwykłe aplikacje przeglądarki internetowej. To zachowanie wynika z przepustowości planu danych używanego przez użytkownika końcowego i zależy również od konfiguracji na urządzeniach mobilnych.
Koszt opracowania tego typu aplikacji opartej na przeglądarce będzie mniejszy, ponieważ prace rozwojowe polegałyby na sprawdzeniu jej zgodności z przeglądarkami dostępnymi na urządzeniach mobilnych.
Dlatego w przypadku testów wydajności, takich jak aplikacje oparte na przeglądarkach mobilnych, musimy replikować obciążenie przeglądarki przez użytkownika. Możemy to zrobić za pomocą emulatorów lub innych dodatkowych komponentów. Oprócz obciążenia użytkowników w przeglądarkach mobilnych musimy również przetestować renderowanie strony internetowej na urządzeniach.
Koszt rozwoju natywnych aplikacji mobilnych jest wyższy. Aplikacje są instalowane bezpośrednio na urządzeniu, co poprawia komfort użytkowania, ale aplikacja jest zależna od platformy.
Jeśli więc chcemy przetestować wydajność w tego typu aplikacjach, musimy przetestować wszystkie platformy urządzeń mobilnych, takich jak Android, iOS, Windows itp., A także na wszystkich typach urządzeń, takich jak smartfony, tablety itp.
Hybrydowe aplikacje mobilne są połączeniem zarówno aplikacji mobilnych opartych na przeglądarce, jak i natywnych aplikacji mobilnych, dlatego tutaj musimy przetestować obciążenie użytkownika na serwerze, a także musimy przeprowadzić pełne testy wydajności rozciągane na wszystkich urządzeniach mobilnych i platformach.
W przypadku każdej aplikacji na urządzenie mobilne istnieją dwa główne czynniki, które wpływają na wydajność użytkownika końcowego:
jak otworzyć plik json w systemie Android
- Żądanie na urządzeniu mobilnym
- Renderowanie strony na urządzeniu mobilnym
# 1) Żądanie na urządzeniu mobilnym:
W ramach tego żądanie jest dostarczane do serwera, a odpowiedź serwera jest generowana na podstawie otrzymanego żądania. Po wygenerowaniu odpowiedzi na serwerze, odpowiedź jest odsyłana z powrotem do urządzenia mobilnego, które wysłało początkowe żądanie.
Tutaj parametry, które należy sprawdzić, to obciążenie serwera, różne typy sieci, takie jak 3G, 4G itp., Obciążenie każdej sieci i wszelkie inne komponenty.
Możemy je przetestować za pomocą emulatorów, tj. Możemy generować skrypty i używać emulatorów do naśladowania obciążenia serwera przez użytkownika.
# 2) Renderowanie stron na urządzeniu mobilnym:
Renderowanie strony na urządzeniu mobilnym to nic innego jak odpowiedź otrzymywana z serwera na żądanie, które wysłaliśmy z naszej aplikacji mobilnej.
Tutaj parametry, które należy sprawdzić, to system operacyjny urządzenia, ustawienia konfiguracyjne urządzenia mobilnego itp. Możemy je przetestować, logując się do urządzenia mobilnego i monitorując je.
Przyjrzyjmy się teraz szczegółowo każdemu krokowi wymienionemu na powyższym rysunku:
a) Tworzenie scenariuszy użytkownika w czasie rzeczywistym:
Podobnie jak w przypadku zwykłych aplikacji przeglądarek internetowych, musimy w czasie rzeczywistym identyfikować scenariusze lub warunki, które są oczekiwane na serwerze. Będzie wiele scenariuszy do przetestowania.
Załóżmy, że jest to aplikacja internetowa, która jest dostępna zarówno na komputerach stacjonarnych, jak i na urządzeniu mobilnym, również jest natywna na urządzeniach z systemem Android i iOS. Tutaj musimy opracować skrypt testowy oparty na typie dostępu do aplikacji. Dlatego musimy przetestować to osobno na każdym urządzeniu.
Musimy również wziąć pod uwagę wzorzec obciążenia dla tego scenariusza, tj. Musimy zrozumieć, w jaki sposób obciążenie jest rozłożone na każde urządzenie. Na przykład, 500 użytkowników będzie miało dostęp do aplikacji przez Internet, około 100 będzie korzystało z natywnej aplikacji na swoim urządzeniu z systemem iOS, a kolejnych 200 będzie miało dostęp do aplikacji ze swojego natywnego urządzenia na Androidzie.
Powinniśmy również wziąć pod uwagę lokalizacje geograficzne obciążenia na serwerze. Na przykład, 30% użytkowników uzyskuje dostęp z USA, 50% z Indii, a reszta 20% z innych lokalizacji. Naśladowanie różnych lokalizacji użytkownika jest obowiązkowe, ponieważ będzie to miało bardzo duży wpływ na serwery.
Testowanie wszystkich 100% z jednej lokalizacji przyniesie błędne wyniki. Dlatego zaleca się przetestowanie obciążenia serwerów, podając inną lokalizację. Rozwiązanie chmurowe może służyć do naśladowania różnych lokalizacji geograficznych.
b) Utwórz warunki sieci w czasie rzeczywistym:
Tutaj musimy stworzyć różne warunki sieciowe, a także jakość sieci, taką jak sieć 3G, sieć 2G, Wi-Fi z najlepszą prędkością, średnią prędkością i niską prędkością. Musimy przeprowadzić emulację sieci, aby stworzyć warunki sieciowe.
Powinniśmy również przetestować wydajność, podając warunki 50% przepustowości, możemy to osiągnąć, wykonując emulację sieci. Możemy użyć dowolnego narzędzia, takiego jak Tunel aerodynamiczny, Shunra itp.
Przetestuj również sieć pod kątem różnych obszarów geograficznych, takich jak sieć 3G w Bangalore. 4G w Hyderabad itp. Tutaj również musimy przeprowadzić emulację sieci za pomocą odpowiednich narzędzi.
c) Utwórz warunki urządzenia w czasie rzeczywistym:
To nic innego jak rodzaj aplikacji na urządzeniu mobilnym, np. Czy jest to aplikacja cienkiego klienta, czy gruba aplikacja kliencka, jaki jest system operacyjny na urządzeniu mobilnym, typ urządzenia, jak iPhone, Nokia itp. Oraz każda inna aplikacja. który będzie działał równolegle podczas korzystania z tej konkretnej aplikacji itp., również musi zostać przetestowany w ramach scenariuszy.
d) Przetestuj działanie każdego elementu:
Po utworzeniu wszystkich powyższych scenariuszy musimy przetestować wydajność aplikacji, w tym całe oprogramowanie i sprzęt. Teraz zbierz wszystkie niezbędne metryki podczas testu obciążenia.
Niektóre z metryk po stronie serwera, które należy zebrać, to użycie procesora, obciążenie procesora, czas przetwarzania, całkowita liczba dostępnych bajtów, wysłane pakiety, odebrane pakiety itp.
Niektóre z metryk sieciowych, które należy zebrać, to pakiety i bajty wysłane przez sieć, pakiety i bajty odebrane przez sieć, liczba odrzuconych pakietów i całkowite średnie opóźnienie.
Zbierane metryki urządzeń to procesor, wykorzystanie pamięci, czas odpowiedzi itp., A także mierzą wszystkie czasy odpowiedzi i przepustowość transakcji.
Środowisko testowania wydajności aplikacji mobilnych
Zanim skonfigurujemy środowisko testowania wydajności dla aplikacji mobilnej, musimy zrozumieć, jakie aplikacje mobilne będą testowane, jakie będą testowane wszystkie systemy operacyjne lub urządzenia, a także różne lokalizacje geograficzne.
Dlatego najpierw musimy stworzyć środowisko, które składa się z emulatorów i rzeczywistych urządzeń. Więc co to jest emulator? Emulator to oprogramowanie, które można zainstalować na naszych laptopach lub komputerach stacjonarnych, a te działają jak urządzenia mobilne. Możemy generować ogromne obciążenie za pomocą tych emulatorów, dlatego najlepiej jest ich używać do testowania obciążenia dowolnych aplikacji mobilnych.
Z drugiej strony Real Devices to fizyczne urządzenia mobilne. Musimy więc zweryfikować zachowanie aplikacji na każdym urządzeniu i w każdej sieci. Nie będziemy jednak mogli przetestować przepustowości, utraty pakietów itp., Gdy wiele urządzeń jest podłączonych do tej samej sieci i uzyskuje dostęp do tej samej aplikacji.
Następną rzeczą do rozważenia jest położenie geograficzne urządzeń aplikacji, jest to obowiązkowy i bardzo ważny aspekt, który należy wziąć pod uwagę, w przeciwnym razie nasze wyniki testów nie będą takie, jak w prawdziwym scenariuszu.
Po przeanalizowaniu wszystkich powyższych elementów wybierz odpowiednie narzędzie do testowania obciążenia, aby przeprowadzić testy wydajności.
Wyzwania związane z testowaniem wydajności aplikacji mobilnych
Wyzwania, przed którymi stoimy podczas testowania wydajności aplikacji mobilnych, obejmują:
- Kiedy musimy przetestować naszą aplikację na różnych urządzeniach mobilnych, musimy zorganizować wszystkie urządzenia, takie jak IOS, Android, Windows itp.
- Symulacja sieci to kolejne wyzwanie, przed którym staniemy, tzn. Musimy zasymulować sieci takie jak 3G, 2G, 4G i Wi-Fi.
- Pamięć dostępna w urządzeniach mobilnych do obsługi przebiegów testowych.
- Żywotność baterii urządzeń mobilnych.
Rozwiązywanie problemów z wydajnością aplikacji mobilnych
Po zakończeniu przebiegu testowego nadszedł czas na zebranie wąskiego gardła wydajności zidentyfikowanego podczas przebiegu testowego. Gdy problemy zostaną skonsolidowane, musimy zidentyfikować główną przyczynę problemu i je naprawić.
Przyjrzyjmy się niektórym problemom z wydajnością aplikacji mobilnych:
- Opóźnienie w odpowiedzi z aplikacji mobilnej: To opóźnienie jest zwykle spowodowane pamięcią lub buforowaniem. W takich przypadkach zaleca się wyczyszczenie pamięci podręcznej i ponowne uruchomienie testu.
- Aplikacja przez jakiś czas jest restartowana, zawieszana lub zawieszana: W takich przypadkach sprawdź oprogramowanie tak, jakby trzeba było wykonać jakieś aktualizacje, sprawdź kod aplikacji pod kątem optymalizacji, obsługa buforowania to niektóre obszary, którymi należy się przyjrzeć.
Narzędzia do testowania wydajności aplikacji mobilnych
Narzędzia mogą się różnić w zależności od typu urządzenia i platformy.
Poniżej podano niektóre z najczęściej używanych narzędzi.
W przypadku urządzeń z systemem Android:
roboty: Za pomocą tego narzędzia możemy nagrać i odtworzyć kilka kroków przeprowadzania testu. Kliknij tutaj, aby zapoznać się z samouczkiem dotyczącym Robotium .
Monkey Runner : Za pomocą tego narzędzia możemy przeprowadzić nasze testy na urządzeniach podłączając je do komputera stacjonarnego. Korzystając z interfejsu narzędzia możemy uzyskać dostęp do smartfona.
W przypadku urządzeń z systemem iOS:
Automator: Za pomocą tego narzędzia możemy przeciągać i upuszczać przepływy pracy oraz automatyzować je.
Wniosek
Jestem pewien, że dowiedziałbyś się więcej o aplikacjach mobilnych i jak perfekcyjnie przeprowadzać testy obciążeniowe w aplikacjach mobilnych, korzystając z tego samouczka informacyjnego.
W naszym nadchodzącym samouczku znajdziesz proste informacje na temat ręcznego testowania wydajności.
=> Odwiedź tutaj, aby zapoznać się z pełną serią samouczków dotyczących testowania wydajności
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Testowanie wydajności aplikacji mobilnych za pomocą BlazeMeter
- Przewodnik dla początkujących do testowania wydajności aplikacji internetowych przy użyciu WAPT Pro
- Podręcznik testowania zabezpieczeń aplikacji internetowych
- Testy wydajnościowe a testy obciążeniowe a testy obciążeniowe (różnica)
- Jak szybko uzyskać pracę testera mobilnego - przewodnik kariery testera mobilnego (część 1)
- Testy obciążenia, obciążenia i wydajności aplikacji internetowych przy użyciu WAPT
- Jak przeprowadzić ręczne testy wydajności?
- Narzędzia i dostawcy usług do testowania penetracji aplikacji mobilnych