Водич за тестирање перформанси: Шта је, типови, метрички подаци и ампер; Пример

Преглед садржаја:

Anonim

Тестирање перформанси

Тестирање перформанси је процес тестирања софтвера који се користи за тестирање брзине, времена одзива, стабилности, поузданости, скалабилности и употребе ресурса софтверске апликације под одређеним радним оптерећењем. Главна сврха тестирања перформанси је идентификовање и уклањање уских грла перформанси у софтверској апликацији. То је подскуп инжењерских перформанси, познат и као „Перф тестирање“.

Фокус испитивања перформанси је провера софтверског програма

  • Брзина - одређује да ли апликација брзо реагује
  • Скалабилност - одређује максимално оптерећење корисника које софтверска апликација може да поднесе.
  • Стабилност - одређује да ли је апликација стабилна при различитим оптерећењима

У овом упутству ћете научити-

  • Шта је тестирање перформанси?
  • Зашто тестирање перформанси?
  • Врсте испитивања перформанси
  • Уобичајени проблеми са перформансама
  • Процес испитивања перформанси
  • Метрике испитивања перформанси: Параметри надгледани
  • Примери случајева испитивања перформанси
  • Алати за тестирање перформанси
  • ФАК

Зашто тестирање перформанси?

Карактеристике и функције подржане софтверским системом нису једина брига. Перформансе софтверске апликације као што су време одзива, поузданост, употреба ресурса и скалабилност су битни. Циљ тестирања перформанси није проналажење грешака већ уклањање уских грла у перформансама.

Тестирање перформанси се врши како би се заинтересованим странама пружиле информације о њиховој примени у вези са брзином, стабилношћу и скалабилношћу. Још важније, испитивање перформанси открива шта треба побољшати пре него што производ изађе на тржиште. Без тестирања перформанси, софтвер ће вероватно патити од проблема као што су: споро покретање док га истовремено користи неколико корисника, недоследности различитих оперативних система и лоша употребљивост.

Тестирање перформанси одредиће да ли њихов софтвер испуњава захтеве брзине, скалабилности и стабилности под очекиваним радним оптерећењима. Апликације послате на тржиште са лошим показатељима перформанси због непостојећих или лоших тестова перформанси вероватно ће стећи лошу репутацију и неће испунити очекиване продајне циљеве.

Такође, критичне апликације попут програма за лансирање свемира или медицинске опреме која спашава живот треба да буду испитане како би се осигурало да раде дуго без одступања.

Према Дунн & Брадстреет-у, 59% компанија из Фортуне 500 сваке недеље има око 1,6 сати застоја. Узимајући у обзир да просечна компанија Фортуне 500 са најмање 10.000 запослених плаћа 56 долара на сат, део трошкова застоја у раду за такву организацију износио би 896.000 америчких долара недељно, што значи више од 46 милиона америчких долара годишње.

Процењује се да ће само петоминутни застој на Гоогле.цом (19. августа 13.) коштати претраживачког гиганта чак 545.000 америчких долара.

Процењује се да су компаније изгубиле продају у вредности од 1100 долара у секунди због недавног прекида рада Амазон Веб Сервице-а.

Стога је испитивање перформанси важно.

Врсте испитивања перформанси

  • Тестирање оптерећења - проверава способност апликације да ради под предвиђеним оптерећењима корисника. Циљ је идентификовати уска грла у перформансама пре покретања софтверске апликације.
  • Стрес тестирање - укључује тестирање апликације под екстремним радним оптерећењима да би се видело како се носи са великим прометом или обрадом података. Циљ је идентификовати тачку прелома апликације.
  • Испитивање издржљивости - врши се како би се осигурало да софтвер може поднети очекивано оптерећење током дужег временског периода.
  • Тестирање шиљака - тестира реакцију софтвера на изненадне велике скокове терета који генеришу корисници.
  • Испитивање запремине - Под запреминским испитивањем великог бр. од. Подаци се попуњавају у бази података и надгледа се целокупно понашање софтверског система. Циљ је провјерити перформансе софтверске апликације у различитим количинама базе података.
  • Тестирање скалабилности - Циљ тестирања скалабилности је да се утврди ефикасност софтверске апликације у „скалирању“ како би се подржало повећање корисничког оптерећења. Помаже у планирању додавања капацитета вашем софтверском систему.

Уобичајени проблеми са перформансама

Већина проблема са перформансама врти се око брзине, времена одзива, времена учитавања и лоше скалабилности. Брзина је често један од најважнијих атрибута апликације. Спора апликација ће изгубити потенцијалне кориснике. Тестирање перформанси се врши како би се осигурало да апликација ради довољно брзо да задржи пажњу и интересовање корисника. Погледајте следећу листу најчешћих проблема са перформансама и уочите како је брзина уобичајени фактор код многих од њих:

  • Дуго време учитавања - Време учитавања је обично почетно време потребно за покретање апликације. Ово би генерално требало свести на минимум. Иако је неке апликације немогуће извршити за мање од једног минута, време учитавања би требало да буде краће од неколико секунди, ако је могуће.
  • Лоше време одзива - време одзива је време потребно од тренутка када корисник унесе податке у апликацију док апликација не изнесе одговор на тај улаз. Генерално, ово би требало бити врло брзо. Опет, ако корисник мора предуго да чека, он губи интересовање.
  • Лоша скалабилност - Софтверски производ пати од слабе скалабилности када не може да поднесе очекивани број корисника или када не може да прими довољно широк спектар корисника. Треба извршити тестирање оптерећења како бисте били сигурни да апликација може да поднесе предвиђени број корисника.
  • Уска уска грла - уска грла су препрека систему која погоршава укупне перформансе система. Уско грло је када грешке у кодирању или хардверски проблеми узрокују смањење протока под одређеним оптерећењима. Уска грла је често узрокована једним неисправним одељком кода. Кључ за решавање проблема са уским грлом је пронаћи одељак кода који узрокује успоравање и покушати га тамо решити. Грла се углавном поправља поправљањем лоших процеса или додавањем додатног хардвера. Нека уобичајена уска грла у перформансама су
    • Коришћење процесора
    • Коришћење меморије
    • Коришћење мреже
    • Ограничења оперативног система
    • Употреба диска

Процес испитивања перформанси

Методологија усвојена за испитивање перформанси може се веома разликовати, али циљ испитивања перформанси остаје исти. Може вам помоћи да покажете да ваш софтверски систем испуњава одређене унапред дефинисане критеријуме перформанси. Или може помоћи у поређењу перформанси два софтверска система. Такође вам може помоћи да идентификујете делове вашег софтверског система који погоршавају његове перформансе.

Испод је генерички поступак о томе како извршити тестирање перформанси

  1. Идентификујте своје окружење за тестирање - познајте своје физичко окружење за тестирање, производно окружење и који су алати за тестирање доступни. Разумејте детаље хардвера, софтвера и мрежне конфигурације коришћене током тестирања пре него што започнете процес тестирања. Помоћи ће тестерима да креирају ефикасније тестове. Такође ће помоћи у идентификовању могућих изазова са којима се тестери могу сусрести током поступака испитивања перформанси.
  2. Утврдите критеријуме за прихватање перформанси - То укључује циљеве и ограничења за проток, време одзива и алокацију ресурса. Такође је неопходно идентификовати критеријуме за успех пројекта ван ових циљева и ограничења. Испитивачи треба да буду овлашћени да постављају критеријуме и циљеве учинка, јер често пројектне спецификације неће укључивати довољно широк спектар мерила перформанси. Понекад их уопште нема. Проналажење сличне примене када је могуће добар је начин за постављање циљева учинка.
  3. Планирање и дизајн тестова перформанси - Утврдите како ће се вероватноћа употребе разликовати међу крајњим корисницима и идентификујте кључне сценарије за тестирање за све могуће случајеве употребе. Потребно је симулирати разне крајње кориснике, планирати податке о тестовима перформанси и назначити које ће се метрике прикупити.
  4. Конфигурисање тестног окружења - Припремите тестно окружење пре извршења. Такође, распоредите алате и друге ресурсе.
  5. Примените дизајн теста - Креирајте тестове перформанси према вашем дизајну теста.
  6. Покрените тестове - Извршите и надгледајте тестове.
  7. Анализирајте, подесите и поново тестирајте - обједините, анализирајте и делите резултате испитивања. Затим фино подесите и поново тестирајте да ли постоји побољшање или смањење перформанси. Будући да побољшања углавном постају мања са сваким поновним тестирањем, зауставите се када уско грло узрокује ЦПУ. Тада ћете можда размотрити могућност повећања снаге процесора.

Метрике испитивања перформанси: Параметри надгледани

Основни параметри који се прате током испитивања перформанси укључују:

  • Употреба процесора - време које процесор потроши извршавајући неактивне нити.
  • Употреба меморије - количина физичке меморије доступна процесима на рачунару.
  • Време диска - време у којем је диск заузет извршавањем захтева за читање или писање.
  • Пропусни опсег - приказује битове у секунди које користи мрежни интерфејс.
  • Приватни бајтови - број бајтова које је процес доделио и који се не могу делити међу осталим процесима. Они се користе за мерење цурења и употребе меморије.
  • Предана меморија - количина коришћене виртуелне меморије.
  • Меморијске странице / секунда - број страница написаних на диску или прочитаних са диска ради решавања грешака на тврдој страници. Кварови на тврдој страници су када се код који није из тренутног радног скупа позове са другог места и преузме са диска.
  • Кварови странице / секунда - укупна брзина којом процесор обрађује странице са грешкама. Ово се поново дешава када процес захтева код изван свог радног скупа.
  • ЦПУ прекида у секунди - је просек. број хардверских прекида које процесор прима и обрађује сваке секунде.
  • Дужина реда диска - је прос. не. захтева за читање и писање у реду за изабрани диск током интервала узорковања.
  • Дужина мрежног излазног реда - дужина реда излазних пакета у пакетима. Све више од две значи да треба зауставити кашњење и уска грла.
  • Укупан број мрежних бајтова у секунди - брзина која се бајтови шаљу и примају на интерфејсу, укључујући знакове за кадрирање.
  • Време одговора - време од када корисник уноси захтев до пријема првог знака одговора.
  • Пропусност - оцените да рачунар или мрежа прима захтеве у секунди.
  • Количина спремања веза - број корисничких захтева које испуњавају обједињене везе. Што више захтева испуне везе у спремишту, то ће бити боље перформансе.
  • Максималан број активних сесија - максималан број сесија које могу бити активне одједном.
  • Односи погодака - Ово има везе са бројем СКЛ израза којима се рукују предмеморираним подацима уместо скупим И / О операцијама. Ово је добро место за решавање проблема са уским грлом.
  • Број погодака у секунди - бр. погодака на веб серверу током сваке секунде теста учитавања.
  • Сегмент враћања - количина података која се може вратити у било ком тренутку.
  • Браве базе података - закључавање табела и база података треба надгледати и пажљиво подесити.
  • Најчешћа чекања - надгледају се како би се утврдило која времена чекања се могу смањити када се ради о брзини преузимања података из меморије
  • Бројање нити - Здравље апликације може се мерити бројем бр. нити које су покренуте и тренутно активне.
  • Сакупљање смећа - То је повезано са враћањем неискоришћене меморије назад у систем. Треба ефикасно пратити сакупљање смећа.

Примери случајева испитивања перформанси

  • Потврдите да време одзива није дуже од 4 секунде када 1000 корисника истовремено приступи веб локацији.
  • Проверите да ли је време одзива апликације под оптерећењем у прихватљивом опсегу када је мрежна повезаност спора
  • Проверите максималан број корисника које апликација може да обради пре него што се сруши.
  • Проверите време извршавања базе података када се истовремено чита / записује 500 записа.
  • Проверите употребу процесора и меморије апликације и сервера базе података у условима вршног оптерећења
  • Проверите време одзива апликације у условима ниског, нормалног, умереног и великог оптерећења.

Током стварног извођења теста перформанси, неодређени изрази попут прихватљивог домета, великог оптерећења итд. Замењују се конкретним бројевима. Инжењери перформанси постављају ове бројеве према пословним захтевима и техничком окружењу апликације.

Алати за тестирање перформанси

На тржишту постоји широка палета алата за тестирање перформанси. Алат који одаберете за тестирање зависиће од многих фактора као што су врсте подржаних протокола, трошкови лиценце, хардверски захтеви, подршка за платформу итд. Испод је листа популарно коришћених алата за тестирање.

  • ЛоадНиња - револуционише начин на који учитавамо тест. Овај алат за тестирање оптерећења заснован на облаку омогућава тимовима да снимају и тренутно репродукују свеобухватне тестове оптерећења, без сложене динамичке корелације, и покрећу ове тестове учитавања у стварним претраживачима. Тимови су у стању да повећају покривеност тестом. & смањити време испитивања оптерећења за преко 60%.
  • НеоЛоад - је платформа за тестирање перформанси дизајнирана за ДевОпс која се неприметно интегрише у ваш постојећи цевовод за континуирану испоруку. Уз НеоЛоад, тимови тестирају 10 пута брже него код традиционалних алата како би испунили нови ниво захтева током целог животног циклуса Агиле развоја софтвера - од компоненти до пуних тестова оптерећења широм система.
  • ХП ЛоадРуннер - најпопуларнији је алат за тестирање перформанси на тржишту данас. Овај алат је способан да симулира стотине хиљада корисника, стављајући апликације под стварна оптерећења како би утврдио њихово понашање под очекиваним оптерећењима. Лоадруннер има виртуелни генератор корисника који симулира акције живих људских корисника.
  • Јметер - један од водећих алата који се користи за тестирање оптерећења веб и апликационих сервера.

ФАК

Које апликације треба тестирати?

Тестирање перформанси се увек врши само за системе засноване на клијент-серверу. То значи да било која апликација која није архитектура заснована на клијент-серверу не сме захтевати тестирање перформанси.

На пример, Мицрософт Калкулатор није заснован на клијент-серверу нити покреће више корисника; стога није кандидат за тестирање перформанси.

Која је разлика између тестирања перформанси и инжењерства перформанси

Значајно је разумети разлику између испитивања перформанси и инжењерства перформанси. У наставку се дели разумевање:

Тестирање перформанси је дисциплина која се бави тестирањем и извештавањем о тренутним перформансама софтверске апликације под различитим параметрима.

Инжењеринг перформанси је поступак којим се софтвер тестира и подешава са намером да оствари потребне перформансе. Овај процес има за циљ оптимизацију најважније особине перформанси апликације, односно корисничког искуства.

Историјски гледано, тестирање и подешавање били су изразито одвојени и често се надмећу. У последњих неколико година, међутим, неколико џепова тестера и програмера сарађивало је независно на стварању тимова за подешавање. Будући да су ови тимови наишли на значајан успех, концепт повезивања тестирања перформанси са подешавањем перформанси се ухватио, а сада то називамо инжењеринг перформанси.

Закључак

У софтверском инжењерству, испитивање перформанси је неопходно пре стављања било ког софтверског производа у промет. Осигурава задовољство купаца и штити инвеститорову инвестицију од пропадања производа. Трошкови тестирања перформанси обично су више него надокнађени бољим задовољством, лојалношћу и задржавањем купаца.