Testiranje performansi mobilne aplikacije

โšก Pametni saลพetak

Testiranje performansi mobilnih aplikacija mjeri koliko se brzo aplikacija pokreฤ‡e, koliko baterije i memorije troลกi, koliko brzo reagiraju njezini API-ji i koliko se elegantno ponaลกa na nepouzdanim mreลพama.

  • ๐Ÿ”˜ Tri kategorije: Performanse ureฤ‘aja, performanse posluลพitelja ili API-ja i performanse mreลพe zajedno pokrivaju svako usko grlo mobilnih ureฤ‘aja.
  • โ˜‘๏ธ Signali ureฤ‘aja: Vrijeme pokretanja, praลพnjenje baterije, potroลกnja memorije, varijacije hardvera i vraฤ‡anje u pozadini su osnovne provjere ureฤ‘aja.
  • โœ… Signali posluลพitelja: Veliฤina korisnog tereta, broj API poziva po radnji i dokumentirani plan prebacivanja u sluฤaju prekida rada posluลพitelja.
  • ๐Ÿงช Mreลพni signali: Jitter, gubitak paketa i promjene brzine moraju rezultirati jasnom porukom, a ne zamrznutim zaslonom.
  • ๐Ÿ› ๏ธ alat: RobotiumOvdje se pojavljuju , MonkeyRunner i Automator, iako se prva dva viลกe ne odrลพavaju.
  • ๐Ÿ“Š Spremnost: Kontrolna lista koja pokriva RAM, vrijeme odziva, konkurentnost i otpornost na pad sustava odluฤuje hoฤ‡e li se verzija isporuฤiti.

Testiranje performansi mobilnih aplikacija na slojevima ureฤ‘aja, posluลพitelja i mreลพe

Za svaku mobilnu aplikaciju, performanse su vrlo kljuฤne. Ako vaลกa mobilna aplikacija ne radi dobro, krajnji korisnik ฤ‡e je deinstalirati i pronaฤ‡i drugu aplikaciju koja radi bolje.

Vaลกu mobilnu aplikaciju potrebno je temeljito testirati prije nego ลกto je objavite krajnjem korisniku.

Strategija testiranja mobilnih aplikacija

Uฤinkovitost aplikacije na mobilnom telefonu ili bilo kojem pametnom ureฤ‘aju obiฤno se mjeri u sljedeฤ‡e tri kategorije.

  • Performanse ureฤ‘aja
  • Performanse posluลพitelja/API-ja
  • Izvedba mreลพe

Donji dijagram prikazuje ta tri sloja na njihovim provjerama.

Grafikon strategije testiranja mobilnih aplikacija koji dijeli provjere performansi ureฤ‘aja, posluลพitelja i mreลพe

Performanse ureฤ‘aja

Kad klijent doลพivi sporu aplikaciju, postaje ลพivciran.

Za performanse ureฤ‘aja, provjerit ฤ‡ete sljedeฤ‡e:

  • Pokretanje aplikacije: Koliko je vremena potrebno vaลกoj aplikaciji da se pokrene? To je prvi parametar performansi koji prosuฤ‘uje korisnik. Kao pravilo, nakon ลกto korisnik dodirne ikonu aplikacije, prvi zaslon trebao bi se prikazati za 1-2 sekunde.
  • Vrijeme trajanja baterije tijekom koriลกtenja aplikacije: Pri stalnoj upotrebi, neke mobilne aplikacije troลกe puno baterije i zagrijavaju telefon. To se obiฤno dogaฤ‘a kada vaลกa aplikacija koristi viลกe resursa nego ลกto je potrebno, ลกto optereฤ‡uje procesor.
  • Potroลกnja memorije: Kada Ispitivanje aplikacije, potrebno je provjeriti potroลกnju memorije aplikacije. Implementacijom odreฤ‘enih funkcionalnosti u aplikaciji poveฤ‡ava se i potroลกnja memorije. Na primjer, u Android aplikacije kada se implementiraju push obavijesti, potroลกnja memorije se poveฤ‡ava.

    U nekim sluฤajevima primijeฤ‡eno je da cijeli OS koristi memoriju samo 14%, ali nova aplikacija troลกi 11%. Dakle, ovi se ฤimbenici moraju rijeลกiti prije postavljanja aplikacije u stvarni svijet ili davanja klijentu.

  • Varijacija hardvera/softvera: Prilikom testiranja mobilne aplikacije, obavezno je provjeriti aplikacije na razliฤitim ureฤ‘ajima. Moลพe se dogoditi da aplikacija radi glatko na jednom ureฤ‘aju, ali ne i na drugom. Kao i za razliฤite dobavljaฤe Android ureฤ‘ajima, moลพemo provjeriti aplikaciju na telefonima Samsung, HTC i Lenovo. Sliฤno tome, aplikaciju je potrebno testirati s razliฤitim specifikacijama RAM-a i procesora kao ลกto su 1 GB ili 2 GB.
  • Koriลกtenje s drugim aplikacijama: Kada aplikacija koja se testira radi paralelno s drugim aplikacijama, ne bi trebalo biti smetnji. Najbolji naฤin da to provjerite je da zamijenite aplikaciju koja se testira i druge aplikacije.
  • Aplikacija u pozadini: Kada se aplikacija koja radi u pozadini dohvati, trebala bi ostati u istom stanju kao i prije. Ako se ovaj scenarij ne rijeลกi ispravno, podaci se gube. Povezani sluฤajevi ลพivotnog ciklusa obuhvaฤ‡eni su u testiranje prekida.

Performanse posluลพitelja/API-ja

Kada aplikacija komunicira s posluลพiteljem putem API-ja, vrijeme odziva postaje kljuฤno za performanse. Za performanse posluลพitelja provjerit ฤ‡ete:

  • Podaci prema i sa servera: Aplikacija bi trebala uฤinkovito obraฤ‘ivati โ€‹โ€‹podatke koji se ลกalju s posluลพitelja. Uฤitavanje podataka ne smije predugo trajati. U odreฤ‘enim aplikacijama podaci se ลกalju u odreฤ‘enom formatu, pa ih prije prikaza u aplikaciji treba pretvoriti u odgovarajuฤ‡i format. U tom procesu aplikacije ponekad postaju sporije, a vrijeme odziva dulje.
  • API pozivi generirani iz aplikacije: Broj poziva iz aplikacije koja se testira prema posluลพitelju generiranih iz aplikacije trebao bi biti manji. U nekim sluฤajevima, viลกestruki API pozivi se upuฤ‡uju za istu funkciju. Za bolju izvedbu, ovo bi se trebalo rijeลกiti s manjim brojem poziva.
  • Vrijeme neaktivnosti servera: Iz bilo kojeg razloga, ako je posluลพitelj u kvaru ili nije dostupan, moลพemo spremiti podatke u izvornu bazu podataka. Dakle, kad god je posluลพitelj u kvaru, moลพemo prikazati podatke pohranjene u izvornoj bazi podataka. Drugo rjeลกenje mogli bi biti rezervni posluลพitelji baze podataka, tj. ako je jedan od posluลพitelja u kvaru ili je u fazi odrลพavanja, rezervni posluลพitelj trebao bi biti dostupan za prebacivanje. Rezervni posluลพitelj trebao bi biti u kontinuiranoj replikaciji i sinkronizaciji s glavnim posluลพiteljem.

Izvedba mreลพe

Potrebno je izmjeriti izvedbu aplikacije na razliฤitim mreลพama i svojstva mreลพe.

Za performanse mreลพe provjerit ฤ‡ete sljedeฤ‡e stvari.

  • Trema: Kada postoji kaลกnjenje u primanju informacija na mreลพi, tada se to naziva podrhtavanjem. To je problem s mreลพama bez povezivanja ili mreลพama s paketnom promjenom. Kako se informacije distribuiraju u pakete, paketi mogu putovati razliฤitim putem od poลกiljatelja do primatelja. Kada podaci stignu na ลพeljenu lokaciju, postaju kodirani nego ลกto su izvorno poslani. U sluฤaju treme, mobilna aplikacija trebala bi biti dovoljno sposobna da se nosi s tim.

    Krajnjem korisniku morate prikazati odgovarajuฤ‡e obavijesti, bilo da ponovno poลกalje zahtjev ili priฤeka da sustav ponovno odgovori.

  • Izgubljen paket: U sluฤaju potpunog gubitka paketa, aplikacija bi trebala moฤ‡i ponovno poslati zahtjev za informacijama ili bi trebala generirati upozorenja u skladu s tim. Ako podaci nisu potpuni, tada korisnik neฤ‡e moฤ‡i razumjeti informacije prikazane u aplikaciji. Ovo moลพe biti stresno za korisnika. Stoga je bolje prikazati odgovarajuฤ‡u poruku ili pozvati korisnika da pokuลกa ponovno.
  • Brzina mreลพe: Aplikaciju je potrebno provjeriti na raznim mreลพama s promjenjivom brzinom. Aplikaciju treba testirati na 3G, 4G i 5G mreลพama. To ukljuฤuje i Wi-Fi i mobilne mreลพe. Takoฤ‘er, treba pratiti ponaลกanje aplikacije, posebno kada su obje mreลพe dostupne i kada se prebacivanje dogodi s jedne mreลพe na drugu.

    Na primjer, problem se moลพe pojaviti u aplikaciji za korisnike prilikom prebacivanja telefonske mreลพe s 4G na Wi-Fi i obrnuto. U tom sluฤaju aplikacija prestaje reagirati i moลพda ฤ‡e biti potrebno ponovno pokretanje aplikacije za koriลกtenje.

Rjeลกavanje problema s izvedbom mobilnih aplikacija

Nakon otkrivanja pitanja/problema dok Ispitivanje performansiVrijeme je za trace i ispraviti greลกke.

Problem 1) Kaลกnjenje ili spor odgovor mobilne aplikacije.

Uzrok ovog kaลกnjenja moลพe biti RAM, predmemorija itd.

Morate ubiti nepotrebne procese ili oฤistiti predmemoriju. Rjeลกavanje problema s vezom moลพe rijeลกiti neke od problema koji stvaraju kaลกnjenja

Problem 2) Aplikacija se ponovno pokreฤ‡e, zakljuฤava, zamrzava ili ne reagira.

To se moลพe popraviti nekim od sljedeฤ‡ih koraka

  • Optimiziranje aplikacijskih kodova
  • Softver treba zakrpati i aลพurirati.
  • Automatsko vraฤ‡anje
  • Upravljanje RAM-om ili u nekim sluฤajevima ROM-om tijekom koriลกtenja vanjskih kartica
  • Wiping particioniranje predmemorije
  • Provjera rada aplikacije s drugim aplikacijama i API-jima treฤ‡ih strana
  • Kartaping mobilna aplikacija prema ureฤ‘aju

Korisni alati za testiranje mobilnih aplikacija

Alati za testiranje mobilnih aplikacija razlikuju ovisno o ureฤ‘aju ili mobilnom OS-u. Neki uobiฤajeni alati za testiranje performansi mobilne aplikacije su

ANDROID

  • Robotium To je baลก kao Selenium za mobilne aplikacije. Ispitivaฤ moลพe snimiti i reproducirati nekoliko koraka koji su potrebni za izvoฤ‘enje testiranja.
  • Majmun Trkaฤ MonkeyRunner moลพe izvoditi testove na stvarnim ureฤ‘ajima spojenim na raฤunalo ili emulatore. Alat ima API koji omoguฤ‡uje upravljanje pametnim telefonom, tabletom ili emulatorom izvana Android kodirati.

โš ๏ธ Napomena o verziji: Oboje Android unosi su naslijeฤ‘eni. Robotium nije izdano od 2016. godine, i Google oznaฤava MonkeyRunner neodrลพavanim, upuฤ‡ujuฤ‡i timove na UI Automator i njegov uiautomatorviewer inspektor umjesto toga.

APPLE

  • automatik (Mac) Automator je aplikacija koju je razvio Apple za macOSImplementira stvaranje tijekova rada metodom "pokaลพi i klikni" (ili "povuci i ispusti") za automatizaciju ponavljajuฤ‡ih zadataka u serije radi brลพe izmjene. To ลกtedi vrijeme i trud u odnosu na ljudsku intervenciju koja bi ruฤno mijenjala svaku datoteku zasebno.

Izazovi

Kljuฤni izazovi s kojima se suoฤavaju tijekom testiranja izvedbe ukljuฤuju

  • Organiziranje razliฤitih mobilnih platformi i njihovih operativnih sustava
  • Simuliranje povezivosti poput 3G, 4G, 5G ili Wi-Fi itd.
  • Ograniฤenja mobilnih ureฤ‘aja poput potroลกnje baterije i resursa
  • Upotrebljivost mobilnog telefona
  • Razliฤite veliฤine mobilnih ureฤ‘aja za pokretanje iste aplikacije

Postavite okruลพenje testiranja performansi mobilne aplikacije

Da biste konfigurirali testno okruลพenje, trebate-

  • Razumijevanje mobilne aplikacije koju je potrebno testirati
  • Identifikacija razliฤitih OS-a na kojima se aplikacija treba pokrenuti
  • Izrada testne postavke
  • Izgradite emulatore ili simulatore
  • Prototyping stvarne postavke
  • Odabir odgovarajuฤ‡eg alata za testiranje

Kontrolni popis za testiranje performansi mobilne aplikacije

Testiranje performansi mobilnih aplikacija vaลพna je mjera prije objavljivanja. Testiranje performansi provodi se radi provjere

  • Koliko RAM-a je potrebno za koriลกtenje ove aplikacije?
  • Za provjeru brzine i vremena odgovora APP-a u razliฤitim mreลพama i okolnostima.
  • Osigurajte realno korisniฤko iskustvo u nekoliko mreลพnih uvjeta
  • Osigurajte postizanje traลพenih rezultata u sluฤaju viลกestrukih povezivanja
  • Osigurajte da se aplikacija ne sruลกi.
  • Osiguravanje dobrog rada mobilnih aplikacija tijekom koriลกtenja podataka, Wi-Fi ili druge veze
  • Praฤ‡enje vremena neprekidnog rada i uskih grla u koriลกtenju mobilnog API-ja
  • Kako bi se osigurao maksimalan broj istodobnih korisnika
  • Na kraju, provjerite mobilnu aplikaciju do njezinih granica

Pitanja i odgovori

Uobiฤajeni cilj je manje od dvije sekunde na ureฤ‘aju srednje klase, ลกto odgovara gore navedenom pravilu. Mjerite 95. percentil umjesto prosjeka, jer spori ureฤ‘aji dominiraju u stvarnim prituลพbama.

ANR je dogaฤ‘aj "Aplikacija ne odgovara" koji se javlja kada Android blokovi glavnih niti. Stopa bez ruลกenja je udio sesija koje zavrลกavaju bez ruลกenja. Google Play uklanja prioritet aplikacijama koje prelaze objavljene pragove za bilo koji od njih.

ล ezdeset sliฤica u sekundi je osnovna vrijednost za pomicanje i animaciju, a noviji zasloni ciljaju devedeset ili viลกe. Ispuลกtene sliฤice, nazvane "jank", oฤitavaju se kao loลกa kvaliteta ฤak i kada se niลกta ne ruลกi.

Strojno uฤenje odreฤ‘uje svaku metriku po modelu ureฤ‘aja kao polaziลกte, tako da se regresija oznaฤava u odnosu na sliฤan hardver, a ne na jedan globalni broj. Takoฤ‘er, grupira sporo traces, rangiranje koje usko grlo utjeฤe na najviลกe sesija.

Copilot dobro izraฤ‘uje repetitivnu strukturu, poput kostura skripte za uฤitavanje ili petlje koja hvata uzorke memorije. Pragovi i odabir ureฤ‘aja odraลพavaju vaลก proizvod, stoga pregledajte svaku generiranu tvrdnju prije nego ลกto joj vjerujete.

Koristite oboje. Emulatori pruลพaju jeftine, ponovljive mreลพne i API izvrลกavanja unutar cjevovoda. Pravi ureฤ‘aji su potrebni za praลพnjenje baterije, termalno ograniฤavanje i ponaลกanje specifiฤno za dobavljaฤa, koje emulatori ne mogu vjerno reproducirati.

JMeter je uobiฤajeni izbor otvorenog koda za pokretanje istovremenih zahtjeva na istim krajnjim toฤkama koje aplikacija koristi. Mjeri kapacitet posluลพitelja, koji alati na strani ureฤ‘aja nikada ne vide.

Zabiljeลพeno ograniฤenje za vrijeme pokretanja, memoriju ili veliฤinu paketa koje izgradnja automatski provjerava. Prekoraฤenje tog ograniฤenja dovodi do neuspjeha izgradnje, pa se regresije hvataju u vrijeme spajanja umjesto nakon objavljivanja.

Saลพmite ovu objavu uz: