logo

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

В този раздел ще научим за тестването на производителността, защо имаме нужда от него, видовете тестване на производителността и процеса на тестване на производителността.

Следват темите, които ще разберем в този раздел:

Какво е тестване на ефективността?

Това е най-важната част от нефункционалното тестване.

Проверката на поведението на приложение чрез прилагане на известно натоварване е известно като тестване на производителността.

Като цяло това тестване определя колко бързо сървърът отговаря на заявката на потребителя.

Докато извършваме тестване на производителността на приложението, ще се съсредоточим върху различни фактори като Време за реакция, натоварване и стабилност на приложението.

Време за реакция: Времето за отговор е времето, необходимо на сървъра да отговори на заявката на клиента.

Зареждане: Тук Load означава, че когато N-номер потребители, които използват приложението едновременно или изпращат заявката до сървъра наведнъж.

Стабилност: За коефициента на стабилност можем да кажем, че когато N-брой потребители използват приложението едновременно за определено време.

Кога използваме тестване на ефективността?

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

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

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

Видове тестване на ефективността

Следват видовете тестване на ефективността:

направете скрипт изпълним
    Тестване на натоварването Стрес тестване Тестване на скалируемост Тест за стабилност
Тестване на производителността

Нека обсъдим един по един, за да ви дадем пълно разбиране Натоварване, стрес, мащабируемост, и Стабилност тестване на производителността.

Тестване на натоварването

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

Например: В изображението по-долу, 1000 потребители са желано натоварване , която се дава от клиента, и 3/секунда е цел което искаме да постигнем, докато извършваме тестване на натоварване.

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

Стрес тестване

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

Например: Ако вземем горния пример и увеличим желаното натоварване от 1000 до 1100 потребители, а целта е 4/секунда. Докато извършвате стрес теста в този сценарий, той ще премине, защото натоварването е по-голямо (100 нагоре) от действителното желано натоварване.

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

Тестване на скалируемост

Проверката на производителността на приложение чрез увеличаване или намаляване на натоварването в определени мащаби (не на потребител) е известно като тестване за скалируемост . Тестовете за мащабируемост нагоре и надолу се наричат ​​тестове за мащабируемост.

Тестването за мащабируемост е разделено на две части, които са както следва:

    Тестване на възходяща мащабируемост Тестване за мащабируемост надолу

Тестване на възходяща мащабируемост

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

Тестване за мащабируемост надолу

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

Тестване на стабилност

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

панди лок

Пример за тестване на ефективността

Нека вземем един пример, където искаме тествайте поведението на приложение, където желаното натоварване е по-малко от 1000 или равно на 1000 потребители .

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

    Сценарий 1:Когато имаме 1000 потребители като желано натоварване и 2,7/сек е целево време, тези сценарии ще преминат, докато изпълняваме теста за натоварване, тъй като при тестването за натоварване ще се концентрираме върху не. потребители, като по изискване се равнява на 1000 потребителя.Сценарий 2:В следващия сценарий ще увеличим желаното натоварване със 100 потребители и целевото време ще се увеличи до 3,5сек. Този сценарий ще премине, ако извършим стрес тестове, защото тук действителното натоварване е по-голямо от (1100) желаното натоварване (1000).Сценарий 3:В това, ако увеличим желаното натоварване три пъти
    1200 → 3,5сек: [не е по-малко или равно на желаното натоварване, затова ще бъде Неуспех ]
    1300 → 4сек: [не е по-малко или равно на желаното натоварване. т.е. Неуспех ]
    1400 → Разбито
Тестване на производителността

Забележка 1: Тестването за обем и накисване е вид тестване, но не и тестване на производителността.

Обемно тестване

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

Бележка 2:
Обемът е капацитет, докато натоварването е количество, т.е. тестването на натоварване означава не. потребители, а обемното тестване означава количество данни.

Тестване на накисване

При този тип тестване ще проверим поведението на приложение в средата, което не се поддържа за дълъг период от време, което е известно като тестване на накисване.

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

Процес на тестване на производителността

Тестването на ефективността не може да се извърши ръчно, тъй като:

  • Имаме нужда от много ресурси и това стана по-скъп подход.
  • И точността не може да се поддържа, когато проследяваме времето за реакция ръчно.

Процесът на тестване на производителността ще бъде завършен в следните стъпки:

  • Идентифицирайте сценарии за ефективност
  • Скрипт за тестване на ефективността на план и дизайн
  • Конфигурирайте тестовата среда и разпределете натоварването
  • Изпълнение на тестови скриптове
  • Резултат
  • Резултат от анализа
  • Идентифицирайте тясното място
  • Повторете теста
Тестване на производителността

Ако извършим a положителен поток на процеса на тестване на ефективността, той може да следва следния процес:

Идентифицирайте сценарии за ефективност

Първо, ще идентифицираме сценариите за ефективност въз основа на следните фактори:

Най-често срещаните сценарии: Това означава, че можем да намерим сценариите за ефективност въз основа на сценариите, които обикновено се използват като в Приложение Gmail; ще изпълняваме влизане, входяща поща, изпращане на елементи и писане на имейл и излизане .

Най-критичните сценарии: Критични сценарии означават редовно използвани и важни за бизнеса в приложението Gmail влизане, писане, входяща кутия и излизане .

Огромна транзакция на данни: Ако имаме огромни данни, това означава, че n-брой потребители, които използват приложението едновременно.

След като идентифицираме сценариите за ефективност, ще преминем към следващата стъпка.

Скрипт за тестване на ефективността на план и дизайн

В тази стъпка ще инсталираме инструментите в Test Engineer Machine и ще получим достъп до тестовия сървър, след което ще напишем някакъв скрипт според тестовите сценарии и ще стартираме инструмента.

След като приключим с писането на сценария, ще преминем към следващата стъпка.

Конфигурирайте тестовата среда и разпределете натоварването

След като напишем тестовите скриптове, ние ще организираме тестовата среда преди изпълнението. И също така управлявайте инструментите, другите ресурси и разпределяйте натоварването според „модела на използване“ или споменете продължителността и стабилността.

Изпълнение на тестови скриптове

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

как да затворите режима за програмисти

Резултат

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

Ако отговорът не отговаря на необходимото време за отговор, тогава ще отидем за отрицателен поток където ще извърши следните стъпки:

Резултат от анализа

Първо ще анализираме резултата от теста дали отговаря на времето за реакция или не.

Идентифицирайте тясното място

След това ще идентифицираме тясно място (бъг или проблем с производителността ). И тясното място може да възникне поради тези аспекти като проблем в кода, хардуерен проблем (твърд диск, RAM процесор), мрежови проблеми, и на софтуерен проблем (операционна система) . И след като намерим тясното място, ще изпълним настройка (фиксиране или настройка) за разрешаване на това тясно място.

Повторете теста

След като поправим тесните места, стартираме отново тестовите скриптове и проверяваме резултата дали отговаря на необходимата цел или не.

Проблемът възниква при тестване на производителността

Докато извършвате тестване на производителността на приложението, може да възникнат някои проблеми и тези проблеми се наричат ​​още проблем с производителността .

Проблемите с производителността са както следва:

    Проблем с времето за реакция Проблем с мащабируемостта Тясно място Проблем със скоростта

Проблем с времето за реакция

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

Проблем с мащабируемостта

Проблемите с мащабируемостта възникват, когато приложението не може да приеме n-броя потребители и очакваните потребителски заявки едновременно. Ето защо ще направим тестване за възходяща мащабируемост (проверете максималния капацитет на приложението) и тестване за мащабируемост надолу (когато очакваното време не съвпада с действителното време).

Тясно място

Bottleneck е неофициалното име на грешка, която възниква, когато приложението е ограничено от един компонент и създава лошо въздействие върху производителността на системата.

Основните причини за затруднения са софтуерни проблеми (проблеми, свързани с операционната система), хардуерни проблеми (проблеми, свързани с твърдия диск, RAM и процесора), и проблем с кодирането, и т.н.

Следват най-често срещаните тесни места в производителността:

  • Използване на паметта
  • Използване на диска
  • Използване на процесора
  • Ограничения на операционната система
  • Използване на мрежата

Проблеми със скоростта

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

Инструменти за тестване на ефективността

Имаме различни видове инструменти за тестване на производителността, налични на пазара, някои от които са търговски инструменти и инструменти с отворен код.

списък с java масиви

Търговски инструменти: LoadRunner[HP], WebLOAD, NeoLoad

Инструмент с отворен код: JMeter

LoadRunner

Това е един от най-мощните инструменти за тестване на производителността, който се използва в подкрепа на тестването на производителността за широка гама от протоколи, редица технологии и среди на приложения.

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

JMeter

Софтуерът Apache JMeter е инструмент с отворен код, който е изцяло Java приложение, предназначено да зарежда поведението на функционалния тест и да измерва производителността.

Като цяло той е предназначен за тестване на уеб приложенията, но сега е разширен и за други тестови функции.

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

WebLOAD

Инструмент за тестване WebLOAD, използван за тестване на уеб приложения за тестване на натоварване, тестване на производителността и стрес тестове.

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

NeoLoad

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

Инструментът за тестване NeoLoad е по-бърз в сравнение с традиционните инструменти.

Освен тях има и други инструменти Електрическо натоварване, инструмент за уеб стрес, LoadUI Pro, StresStimulus, LoadView, LoadNinja и RedLine13, което помага да се тества производителността на софтуера или приложението.