Тестване на производителността на мобилно приложение

⚡ Умно обобщение

Тестването на производителността на мобилните приложения измерва колко бързо се стартира дадено приложение, колко батерия и памет изразходва, колко бързо реагират неговите API и колко грациозно се държи в ненадеждни мрежи.

  • 🔘 Три категории: Производителността на устройството, производителността на сървъра или API и производителността на мрежата заедно покриват всяко мобилно пречка.
  • ☑️ Сигнали на устройството: Времето за стартиране, изтощаването на батерията, консумацията на памет, вариациите в хардуера и възстановяването във фонов режим са основните проверки на устройството.
  • Сигнали на сървъра: Размер на полезния товар, броят на API извикванията за действие и документиран план за превключване при срив на сървъра.
  • 🧪 Мрежови сигнали: Трептенето, загубата на пакети и промените в скоростта трябва да водят до ясно съобщение, а не до замръзнал екран.
  • 🛠️ Инструментална: Robotium, MonkeyRunner и Automator се появяват тук, въпреки че първите два вече не се поддържат.
  • 📊 Готовност: Контролен списък, обхващащ RAM, време за реакция, едновременност и устойчивост на сривове, определя дали дадена компилация ще бъде доставена.

Тестване на производителността на мобилните приложения на ниво устройство, сървър и мрежа

За всяко мобилно приложение производителността е много важна. Ако мобилното ви приложение не се представя добре, крайният потребител ще го деинсталира и ще намери друго приложение, което се представя по-добре.

Вашето мобилно приложение трябва да бъде тествано щателно, преди да го пуснете на краен потребител.

Стратегия за тестване на мобилни приложения

Ефективността на приложението на мобилен телефон или друго смарт устройство обикновено се измерва в следните три категории.

  • Ефективност на устройството
  • Производителност на сървър/API
  • Производителност на мрежата

Диаграмата по-долу съпоставя тези три слоя с техните проверки.

Диаграма на стратегията за тестване на мобилни приложения, разделяща проверките за производителност на устройства, сървъри и мрежи

Ефективност на устройството

Когато клиентът изпитва бавно приложение, той се дразни.

За производителността на устройството ще проверите следното:

  • Стартиране на приложението: Колко време отнема вашето приложение, за да стартира? Това е първият параметър за производителност, определен от потребителя. Като правило, след като потребителят докосне иконата на приложението, първият екран трябва да се покаже след 1-2 секунди.
  • Време на батерията при използване на приложение: При постоянна употреба някои мобилни приложения изразходват голямо количество батерия и прегряват телефона. Това обикновено се случва, когато приложението ви използва повече ресурси от необходимото, което създава натоварване на процесора.
  • Консумация на памет: Кога Тестване приложение, потреблението на памет от приложението трябва да се провери. Чрез прилагането на определени функционалности в приложението, потреблението на памет също се увеличава. Например в Android приложения, когато са внедрени насочени известия, потреблението на памет се увеличава.

    В някои случаи се наблюдава, че използването на паметта от цялата операционна система е само 14%, но ново приложение консумира 11%. Така че тези фактори трябва да бъдат обработени, преди да разгърнете приложението в реалния свят или да го дадете на клиента.

  • Вариация на хардуера/софтуера: Когато тествате мобилно приложение, е задължително да проверите приложенията на различни устройства. Може да се окаже, че приложението работи гладко на едно устройство, но не и на друго. Като за различни доставчици на Android устройства, можем да проверим приложението на телефони Samsung, HTC и Lenovo. По същия начин приложението трябва да бъде тествано с различни спецификации на RAM и процесор, като 1 GB или 2 GB.
  • Употреба с други приложения: Когато тестваното приложение работи паралелно с други приложения, не трябва да има смущения. Най-добрият начин да го проверите е като превключите тестваното приложение с други приложения.
  • Приложение във фонов режим: Когато приложение, работещо във фонов режим, бъде извлечено, то трябва да остане в същото състояние, в което е било преди. Ако този сценарий не се обработи правилно, данните се губят. Свързаните случаи от жизнения цикъл са разгледани в тестване на прекъсвания.

Производителност на сървър/API

Когато приложението взаимодейства със сървъра чрез API, времето за реакция става критично за производителността. За производителността на сървъра ще проверите:

  • Данни към и от сървъра: Приложението трябва да обработва ефективно данните, изпратени от сървъра. Зареждането на данните не трябва да отнема твърде много време. В някои приложения данните се изпращат в определен формат, така че преди да бъдат показани в приложението, те трябва да бъдат конвертирани в подходящ формат. В този процес приложенията понякога стават по-бавни и времето за реакция се удължава.
  • API повиквания, генерирани от приложението: Броят на обажданията от тестваното приложение към сървъра, генериран от приложението, трябва да бъде по-малък. В някои случаи се правят множество извиквания на API за една и съща функционалност. За по-добра производителност, това трябва да се направи с по-малко обаждания.
  • Време на престой на сървъра: Поради някаква причина, ако сървърът не работи или е недостъпен, можем да запазим данните в основната база данни. Така че, когато сървърът не работи, можем да покажем данните, съхранени в основната база данни. Друго решение биха могли да бъдат резервните сървъри за бази данни, т.е. ако един от сървърите не работи или е във фаза на поддръжка, резервният сървър трябва да е наличен за превключване. Резервният сървър трябва да е в непрекъсната репликация и синхронизация с основния сървър.

Производителност на мрежата

Ефективността на приложението в различни мрежи и свойства на мрежата трябва да бъдат измерени.

За производителност на мрежата ще проверите следните неща.

  • Тревога: Когато има забавяне при получаване на информация в мрежата, то се нарича трептене. Това е проблем с мрежите без връзка или мрежите за превключване на пакети. Тъй като информацията се разпределя в пакети, пакетите могат да пътуват по различен път от изпращача до получателя. Когато данните пристигнат на предвиденото място, те стават кодирани, отколкото са били първоначално изпратени. В случай на трептене, мобилното приложение трябва да е достатъчно способно да се справи с него.

    Трябва да покажете съответните известия на крайния потребител, или да изпрати заявката отново, или да изчака системата да отговори отново.

  • Изгубен пакет: В случай на пълна загуба на пакет, приложението трябва да може да изпрати отново заявката за информация или съответно да генерира предупреждения. Ако данните не са пълни, тогава потребителят няма да може да разбере информацията, показана в приложението. Това може да бъде стресиращо за потребителя. Затова е по-добре да покажете подходящо съобщение или да подканите потребителя да опита отново.
  • Скорост на мрежата: Приложението трябва да бъде тествано в различни мрежи с променлива скорост. То трябва да бъде тествано в 3G, 4G и 5G мрежи. Включени са както Wi-Fi, така и мобилни мрежи. Също така, поведението на приложението трябва да се следи, особено когато и двете мрежи са налични и е извършено превключване от една мрежа към друга.

    Например, може да възникне проблем в приложение за потребителите при превключване на телефонната мрежа от 4G към Wi-Fi и обратно. В този случай приложението престава да реагира и може да се наложи рестартирането му за употреба.

Отстраняване на проблеми с производителността на мобилните приложения

След откриване на проблемите/проблемите, докато Тестване на производителносттаВреме е да tracд и коригиране на грешките.

Проблем 1) Забавяне или бавен отговор на мобилното приложение.

Причината за това забавяне може да е RAM, кеш и др.

Трябва да убиете ненужните процеси или да изчистите кеша. Отстраняването на проблема със свързаността може да разреши някои от проблемите, които създават забавяния

Проблем 2) Рестартиране на приложението, заключване, замразяване или липса на реакция.

Може да се коригира чрез някои от следните стъпки

  • Оптимизиране на кодовете на приложението
  • Софтуерът трябва да бъде закърпен и актуализиран.
  • Автоматични възстановявания
  • Управление на RAM или в някои случаи ROM при използване на външни карти
  • Wiping разделянето на кеша
  • Проверка на приложението дали работи с други приложения и API на трети страни
  • Картаping мобилното приложение според устройството

Полезни инструменти за тестване на мобилни приложения

Инструменти за тестване на мобилни приложения варират според устройствата или мобилната операционна система. Някои често срещани инструменти за тестване на производителността на мобилни приложения са

ANDROID

  • Robotium То е точно като Selenium за мобилни приложения. Тестерът може да записва и възпроизвежда няколко стъпки, които са необходими за извършване на тестване.
  • Маймуна бегач MonkeyRunner може да провежда тестове на реални устройства, свързани към компютър или емулатори. Инструментът има API, който позволява управление на смартфон, таблет или емулатор отвън Android код.

⚠️ Бележка към версията: И двете Android записите са наследени. Robotium не е издаван от 2016 г. и Google маркира MonkeyRunner като неподдържан, насочвайки екипите към UI Automator и неговите uiautomatorviewer инспектор вместо това.

APPLE

  • Автоматизатор (Mac) Automator е приложение, разработено от Apple за macOSТой реализира създаване на работни потоци с кликване и щракване (или плъзгане и пускане) за автоматизиране на повтарящи се задачи в партиди за по-бърза промяна. Това спестява време и усилия в сравнение с човешката намеса за ръчна промяна на всеки файл поотделно.

Предизвикателства

Основните предизвикателства, с които се сблъскват по време на тестването на производителността, включват

  • Организиране на различни мобилни платформи и техните операционни системи
  • Симулиране на свързаност като 3G, 4G, 5G или Wi-Fi и др.
  • Ограничения на мобилните устройства като консумация на батерия и ресурси
  • Използваемост на мобилния телефон
  • Различните размери на мобилни устройства за стартиране на едно и също приложение

Настройте среда за тестване на ефективността на мобилно приложение

За да конфигурирате тестовата среда, трябва да-

  • Разбиране на мобилното приложение, което трябва да бъде тествано
  • Идентифициране на различни операционни системи, на които приложението трябва да работи
  • Изграждане на тестовата настройка
  • Създайте емулатори или симулатори
  • Прототиping на действителната настройка
  • Избор на подходящия инструмент за тестване

Контролен списък за тестване на ефективността на мобилното приложение

Тестването на ефективността на мобилните приложения е важна мярка преди пускането им. Извършва се тестване на производителността, за да се провери

  • Колко RAM е необходима за използване на това приложение?
  • За проверка на скоростта и времето за реакция на APP при различни мрежи и обстоятелства.
  • Осигурете реалистично потребителско изживяване при няколко мрежови условия
  • Уверете се, че са постигнати необходимите резултати в случай на множество връзки
  • Уверете се, че приложението не се срива.
  • Осигуряване на добра работа на мобилните приложения при използване на данни, Wi-Fi или друга свързаност
  • Наблюдение на времето за работа и тесните места при използването на мобилния API
  • За осигуряване на максимален брой едновременни потребители
  • И накрая, за да проверите мобилното приложение до неговите граници

Въпроси и Отговори

Под две секунди на устройство от среден клас е обичайната цел, което отговаря на правилото, посочено по-горе. Измерете 95-ия персентил, а не средната стойност, защото бавните устройства доминират в реалните оплаквания.

ANR е събитие „Приложение не отговаря“, което се генерира, когато Android блокове на главните нишки. Процентът без сривове е делът на сесиите, завършващи без срив. Google Play премахва приоритета на приложенията, които надвишават публикуваните прагове за някое от двете.

Шестдесет кадъра в секунда е базовата стойност за скролиране и анимация, а по-новите дисплеи се насочват към деветдесет или повече. Пропуснатите кадри, наречени „jank“, се отчитат като лошо качество, дори когато нищо не се срива.

Машинното обучение определя всяка метрика за всеки модел устройство, така че регресията се маркира спрямо подобен хардуер, а не спрямо едно глобално число. Освен това, тя групира бавно. traces, класиране на това кое пречка засяга най-много сесии.

Copilot добре изготвя повтарящото се скеле, като например скелет на скрипт за зареждане или цикъл, който улавя семпли от паметта. Праговете и изборът на устройство отразяват вашия продукт, така че прегледайте всяко генерирано твърдение, преди да му се доверите.

Използвайте и двете. Емулаторите предоставят евтини, повтаряеми мрежови и API изпълнения в рамките на конвейер. Необходими са реални устройства за изтощаване на батерията, термично дроселиране и специфично за производителя поведение, което емулаторите не могат да възпроизведат вярно.

JMeter е често срещан избор с отворен код за управление на едновременни заявки към едни и същи крайни точки, които приложението използва. Той измерва капацитета на сървъра, който инструментите от страната на устройството никога не виждат.

Записан лимит за време за стартиране, памет или размер на пакет, който компилацията проверява автоматично. Превишаването му води до неуспех на компилацията, така че регресиите се улавят по време на сливане, а не след пускането ѝ.

Обобщете тази публикация с: