stress testing guide
Изчерпателно ръководство за стрес тестване за начинаещи:
Наблягането на нещо извън определена точка води до сериозни последици за хората, машината или програмата. Или причинява сериозни щети, или го разбива напълно.
По същия начин в този урок ще научим как да тестваме стрес тестове на уеб приложения заедно с неговия ефект.
За да избегнем някакви трайни повреди на вашите приложения или уебсайтове, когато са под напрежение, т.е. силно натоварени, трябва да намерим точката на прекъсване и на свой ред решението, за да избегнем подобни условия. Само си помислете как би било, когато уебсайтът ви за пазаруване попадне по време на коледните разпродажи. Колко би била загубата?
По-долу са изброени някои примери за реални случаи, при които е от голямо значение да се тества стрес на приложение или уебсайт:
какъв е ключът за сигурност на безжичен рутер
# 1) Приложенията или уебсайтовете за търговско пазаруване трябва да извършат стрес тестване, тъй като натоварването става много голямо по време на фестивали, разпродажби или период на специална оферта.
# две) Финансовите приложения или уебсайтове трябва да направят тест за стрес, тъй като натоварването се увеличава в моменти, например когато акциите на компанията се покачат, много хора влизат в акаунтите си, за да купуват или продават, уебсайтовете за онлайн пазаруване пренасочват „Net-bankers“ за плащане и т.н.
# 3) Приложенията в мрежата или имейлите трябва да бъдат подложени на стрес тестове.
# 4) Уеб сайтове или приложения за социални мрежи, блогове и т.н., трябва да бъдат подложени на стрес тестове и т.н.
Какво ще научите:
- Какво е стрес тестване и защо правим стрес тестове?
- Стратегия за стрес тестване
- Стрес тестване за мобилни приложения
- Разлика между тестване на натоварване и стрес тестване
- Примерни тестови случаи
- 5 най-добър софтуер за стрес тестване
- Заключение
- Препоръчително четене
Какво е стрес тестване и защо правим стрес тестове?
Стрес тестването се определя като процес на тестване на хардуера или софтуера за неговата стабилност при условия на голямо натоварване. Това тестване се извършва, за да се намери числовата точка, когато системата ще се счупи (по отношение на броя на потребителите и заявките на сървъра и т.н.) и свързаната обработка на грешки за същото.
По време на тестовете за стрес тестваното приложение (AUT) се бомбардира с тежък товар за даден период от време, за да се провери точката на счупване и да се види колко добре е обработена грешката.
Пример: MS Word може да изведе съобщение за грешка „Не реагира“, когато се опитате да копирате файл от 7-8 GB.
Бомбардирали сте Word с огромен файл и той не е могъл да обработи толкова голям файл и в резултат на това е обесен. Обикновено убиваме приложения от диспечера на задачите, когато спрат да отговарят, причината за това е, че приложенията се стресират и спират да реагират.
Следват някои технически причини за извършване на стрес тестване:
- За да проверите поведението на системата при необичайни или екстремни условия на натоварване.
- За да намерите числовата стойност на потребители, заявки и т.н., след което системата може да се счупи.
- Справете се с грешката любезно, като показвате подходящи съобщения.
- За да сте добре подготвени за такива условия и да вземете предпазни мерки като почистване на код, почистване на DB и т.н.
- За да проверите обработката на данни, преди системата да се счупи, т.е.да видите дали данните са изтрити, запазени или не и т.н.
- За проверка на заплахата за сигурността при такива условия на пробив и т.н.
Стратегия за стрес тестване
Това е вид нефункционално тестване и това тестване обикновено се извършва, след като функционалното тестване на уебсайт или приложение приключи. Тестовите случаи, начинът за тестване и дори инструментите за тестване могат да се различават в пъти.
Следват някои указания, които биха ви помогнали да планирате процеса на тестване:
- Определете сценариите, функционалностите и т.н., които ще бъдат достъпни най-много и може да са склонни да разбият системата. Както при финансовото приложение, най-често използваната функционалност е прехвърлянето на пари.
- Идентифицирайте натоварването, което системата може да изпита за даден ден, т.е. максимално и минимално.
- Създайте отделно план за изпитване , сценарий, тестов случай и тестов пакет.
- Използвайте 3-4 различни компютърни системи за тестване с различна памет, процесор и т.н.
- Потребител 3-4 различни браузъра за уеб приложения с различни версии.
- В идеалния случай намерете стойността под точката на прекъсване, в точката на прекъсване и стойността след точката на прекъсване (когато системата изобщо няма да реагира), създайте тест и данни около тях.
- В случай на уеб приложения, опитайте се да направите стрес тест и с бавна мрежа.
- Не прескачайте заключението на тестовете само за един кръг или два, изпълнявайте едни и същи тестове за поне 5 рунда и след това завършете своите констатации.
- Намерете идеалното време за реакция на уеб сървъра и кое е времето е в точката на прекъсване.
- Намерете поведението на приложението в точката на прекъсване в различни точки на приложението, докато просто стартирате приложението, влезете в системата, извършите някакво действие след влизане и т.н.
Стрес тестване за мобилни приложения
Стрес тестването за местни мобилни приложения е малко по-различно от това на уеб приложенията. В родните приложения се прави стрес тест за често използваните екрани чрез добавяне на огромни данни.
Следват някои проверки, които се извършват като част от това тестване за местни мобилни приложения:
- Приложението не се срива, когато се показват огромни данни. Като за приложение за изпращане по имейл, около 4-5 лакъса получени имейл карти, за приложения за пазаруване, същото количество карти с артикули и т.н.
- Превъртането е без проблеми и приложението не виси, докато превъртате нагоре или надолу.
- Потребителят трябва да може да види подробностите на картата или да извърши някакво действие върху картата от огромния списък.
- Изпращане на лакши актуализации от приложението до сървъра, като маркиране на елемент като „Любим“, добавяне на елемент в пазарската количка и т.н.
- Опитайте да заредите приложението с огромни данни в 2G мрежа, когато приложението увисне или се срине, то трябва да покаже подходящо съобщение.
- Опитайте сценарий от край до край, когато има огромни данни и бавна 2G мрежа и т.н.
Следва вашата стратегия за тестване на мобилни приложения:
- Идентифицирайте екраните, на които има карти, изображения и т.н., за да насочите тези екрани с огромни данни.
- По същия начин идентифицирайте функционалностите, които ще се използват най-често.
- Докато създавате тестовото легло, опитайте се да използвате телефони със среден и нисък клас.
- Опитайте се да тествате едновременно на паралелни устройства.
- Избягвайте това тестване на емулатор и симулатори.
- Избягвайте тестване на Wifi връзки, тъй като те са силни.
- Опитайте се да проведете поне един стрес тест на полето и т.н.
Разлика между тестване на натоварване и стрес тестване
S.No. | Стресиране | Тестване на товара |
---|---|---|
един | Това тестване се прави, за да се установи точката на прекъсване на системата. | Това тестване се прави, за да се провери работата на системата при очаквано натоварване. |
две | Това тестване се прави, за да се установи дали системата ще се държи според очакванията, ако натоварването надхвърли нормалната граница. | Това тестване се прави, за да се провери времето за реакция на сървъра за очакваното специфично натоварване. |
3 | Обработката на грешки също се проверява в този тест. | Обработката на грешки не е интензивно тествана. |
4 | Това също проверява за заплахи за сигурността, изтичане на памет и т.н. | Такива тестове не са задължителни. |
5 | Проверява стабилността на системите. | Проверява надеждността на системата. |
6 | Тестването се извършва с повече от макс. възможен брой потребители, заявки и т.н. | Тестването се извършва с максимален брой потребители, заявки и т.н. |
Тестване на стрес срещу тестване на натоварване
Примерни тестови случаи
Тестовите случаи, които ще създадете за вашето тестване, ще зависят от приложението и неговите изисквания. Преди да създадете тестовите случаи, уверете се, че знаете зоните на фокусиране, т.е.функциите, които са склонни да се счупят при условие на необичайно натоварване.
Следват някои примерни тестови случаи, които можете да включите в своето тестване:
- Проверете дали се показва правилно съобщение за грешка, когато системата достигне точката на прекъсване, т.е.пресича максималното не. на разрешени потребители или заявки.
- Проверете горния тестов случай за различни комбинации от RAM, процесор и мрежа и т.н.
- Проверете дали системата работи според очакванията, когато максимумът е не. от потребители или заявките се обработват. Също така проверете горния тестов случай за различни комбинации от RAM, процесор и мрежа и т.н.
- Уверете се, че макар и повече от разрешеното не. на потребители или заявки извършват една и съща операция (като закупуване на едни и същи артикули от уебсайт за пазаруване или извършване на паричен превод и т.н.) и ако системата стане неактивна, се показва подходящо съобщение за грешка относно данните (не са запазени? - зависи от изпълнение).
- Проверете дали повече от разрешеното не. на потребители или заявки извършват различни операции (като един потребител влиза в системата, един потребител стартира приложението или уеб връзката, един потребител избира продукт и т.н.) и ако системата стане неактивна, се показва подходящо съобщение за грешка относно данните (не е запазено? - зависи от изпълнението).
- Проверете дали времето за реакция на потребителите или заявките за прекъсване е в стойност за приемане.
- Проверете производителността на приложението или уебсайта, когато мрежата е много бавна, трябва да се покаже правилно съобщение за грешка за състояние на „изчакване“.
- Проверете всички горепосочени тестови случаи за сървър, на който работи повече от едно приложение, за да проверите дали другото приложение е засегнато и т.н.
Преди да изпълните тестове, уверете се, че:
- Всички функционални грешки на тестваното приложение са отстранени и проверени.
- Пълната система от край до край е готова и е тествана за интеграция.
- Не се правят нови проверки на кода, които ще повлияят на тестването.
- Други екипи са информирани за вашия график на тестване.
- Създават се резервни системи в случай на сериозни проблеми.
5 най-добър софтуер за стрес тестване
Когато стрес тестването се извършва ръчно, това също е много сложна и досадна работа. Възможно е също да не ви даде очакваните резултати.
Инструментите за автоматизация могат да ви осигурят очакваните резултати и е сравнително лесно да се създаде необходимия тест, използвайки ги. Може да се случи, че инструментите, които използвате за нормалното функционално тестване, може да не са достатъчни за тестове за стрес.
Следователно вие и вашият екип трябва да решите дали искат отделен инструмент изключително за това тестване. Също така е от полза за другите, че управлявате апартамента през нощта, така че работата им да не бъде възпрепятствана. Използвайки инструменти за автоматизация, можете да насрочите пакета да работи през нощта и резултатите ще бъдат готови за вас на следващия ден.
Следва списък с най-препоръчваните инструменти:
# 1) Зареждане на бегач:
LoadRunner е инструмент, проектиран от HP за тестване на натоварване, но може да се използва и за стрес тестове.
Той използва VuGen, т.е.виртуален потребителски генератор за създаване на потребители и заявки за тестване на натоварване и стрес. Този инструмент има добри аналитични отчети, които могат да помогнат за изготвянето на резултатите под формата на графики, диаграми и т.н.
c произволно число между 0 и 1
# 2) Neoload:
Neoload е платен инструмент, който е полезен при тестване на уеб и мобилни приложения.
Той може да симулира повече от 1000 потребители, за да провери работата на системата и да намери времето за реакция на сървъра. Той също се интегрира с Cloud за тестване както на натоварване, така и на стрес. Той осигурява добра мащабируемост и е много лесен за използване.
# 3) JMeter:
JMeter е инструмент с отворен код, който работи с JDK 5 и по-нови версии. Фокусът на този инструмент е най-вече върху тестването на уеб приложения. Може да се използва и за тестване на връзки с база данни LDAP, FTP, JDBC и т.н.
# 4) Мелница:
Grinder е инструмент с отворен код и Java-базиран инструмент, който се използва за тестване на натоварване и стрес.
Параметризацията може да се извършва динамично, докато тестовете се изпълняват. Той има добри отчети и твърдения, които ви помагат да анализирате резултатите по-добре. Той има конзола, която може да се използва като IDE за създаване и редактиране на тестове и агенти за създаване на товара за целите на тестването.
# 5) WebLoad:
Webload инструмент има безплатно, както и платено издание. Това безплатно издание позволява създаване до 50 потребители.
Този инструмент поддържа проверка на стрес както в мрежата, така и в мобилното приложение. Той поддържа различни протоколи като HTTP, HTTPS, PUSH, AJAX, HTML5, SOAP и др. Той има IDE, конзола за генериране на натоварване, табло за анализ и интеграции (за интегриране с Jenkins, APM инструменти и т.н.).
Заключение
Стрес тестването напълно се фокусира върху тестването на системата при екстремни условия на натоварване, за да се намери точката на прекъсване и да се проверят дали се показват подходящи съобщения, когато системата не реагира. Той подчертава паметта, процесора и т.н. по време на тестването и проверява колко добре се възстановяват.
Стрес тестването е вид нефункционално тестване и обикновено се извършва след функционалното тестване. Когато има изискване и за тестване на натоварване, тогава това тестване може да се направи като екстремен случай на тестване на натоварване. В 90% от случаите един и същ инструмент за автоматизация може да се използва както за натоварване, така и за тестове за стрес.
Надявам се да сте получили страхотна представа за концепцията за стрес тестване !!
Препоръчително четене
- Тестване на натоварване с уроци за HP LoadRunner
- Тестване на ефективността срещу тестване на натоварване срещу тестване на стрес (разлика)
- Пълно ръководство за тестване на зареждане за начинаещи
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Алфа тестване и бета тестване (Пълно ръководство)
- Ръководство за начинаещи за тестване на проникване в уеб приложения
- Тестване на натоварване, стрес и производителност на уеб приложения с помощта на WAPT
- Функционално тестване срещу нефункционално тестване