Параметрирање, функције, трансакције у ЛоадРуннер-у

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

Anonim

Снимљена скрипта може симулирати виртуелног корисника; међутим, само снимање можда неће бити довољно за понављање „стварног понашања корисника“.

Када се скрипта забележи, она покрива појединачни и равни ток предметне апликације. Док стварни корисник може извршити више итерација било ког процеса пре него што се одјави. Кашњење између клика на дугмад (време размишљања) ће се разликовати од особе до особе. Велике су шансе да неки стварни корисници приступе вашој апликацији путем ДСЛ-а, а неки преко диал-уп-а. Дакле, да бисмо стекли стварни осећај крајњег корисника, морамо да побољшамо своје скрипте како би се тачно подударали или барем врло блиски у понашању стварним корисницима.

Горе наведено је најважније разматрање приликом извођења „тестирања перформанси“, али ВУ скрипта садржи и више. Како ћете измерити тачно време које је ВУсер-у потребно док СУЛ пролази кроз тест перформанси? Како бисте знали да ли је ВУсер у одређеном тренутку прошао или није успео? Који је узрок неуспеха, да ли је неки позадински процес пропао или су ресурси сервера ограничени?

Морамо да побољшамо нашу скрипту како бисмо помогли да одговоримо на сва горе наведена питања.

  • Коришћење трансакција
  • Разумевање времена размишљања, тачака сусрета и коментара
  • Уметање функција кроз мени
  • Шта је параметризација?
  • Поставке времена извођења и њихов утицај на ВУ симулацију
    • Покрени логику
    • Пејсинг
    • Пријава
  • Тхинк Тимес
  • Симулација брзине
  • Емулација прегледача
  • Заступник

Коришћење трансакција

Трансакције су механика којом се мери време одзива сервера за било коју операцију. Једноставним речима, употреба „Трансакције“ помаже у мерењу времена које је систему требало за одређени захтев. Може бити мали као клик на дугме или АЈАКС позив након губитка фокуса из оквира за текст.

Примена трансакција је једноставна. Само напишите један ред кода пре него што се захтев пошаље серверу и затворите трансакцију када се захтев заврши. ЛоадРуннер захтева само низ као име трансакције.

Да бисте отворили трансакцију, користите ову линију кода:

лр_старт_трансацтион („Назив трансакције“);

Да бисте затворили трансакцију, користите овај ред кода:

лр_енд_трансацтион („Име трансакције“, <статус>);

<статус> говори ЛоадРуннеру да ли је ова конкретна трансакција била успешна или неуспешна. Могући параметри могу бити:

  • ЛР_АУТО
  • ЛР_ПАСС
  • ЛР_ФАИЛ

Пример:

лр_енд_трансацтион (“Ми_Логин”, ЛР_АУТО);

лр_енд_трансацтион („001_Опенинг_Дасхбоард Наме“, ЛР_ПАСС);
лр_енд_трансацтион („Назив пословног_текста_трансакције“, ЛР_ФАИЛ);

Биљешке:

  • Не заборавите, радите са „Ц“ и то је језик који разликује велика и мала слова.
  • Знак периода (.) Није дозвољен у називу трансакције, иако можете да користите размаке и подвлаке.
  • Ако сте добро разгранили код и додали контролне тачке да бисте верификовали одговор сервера, можете да користите прилагођено руковање грешкама, као што је ЛР_ПАСС или ЛР_ФАИЛ. У супротном, можете да користите ЛР_АУТО и ЛоадРуннер ће аутоматски обрадити грешку сервера (ХТТП 500, 400 итд.)
  • Приликом примене трансакција, уверите се да није стављена изјава тхинк_тиме или ће у супротном ваша трансакција увек садржавати тај период.
  • Будући да ЛоадРуннер захтева константни низ као име трансакције, чест проблем приликом примене трансакције је неусклађеност низа. Ако дате друго име приликом отварања и затварања трансакције, имаћете најмање 2 грешке. Будући да трансакција коју сте отворили никада није затворена, ЛоадРуннер ће произвести грешку. Поред тога, трансакција коју покушавате да затворите никада није отворена, што је резултирало грешком.
  • Можете ли да користите своју интелигенцију и одговорите себи која ће од горе наведених грешака бити прва пријављена? Да бисте потврдили свој одговор, зашто не бисте погрешили сами? Ако сте добро одговорили, на правом сте путу. Ако сте погрешно одговорили, морате се усредсредити.
  • Будући да ЛоадРуннер аутоматски брине о синхронизацији захтева и одговора, нећете морати да бринете о одговору приликом примене трансакција.

Разумевање времена размишљања, тачака сусрета и коментара

Тачке сусрета

Тачке сусрета значе „места сусрета“. Само је један ред изјаве који ЛоадРуннер-у говори да уведе паралелност. Тачке рандевуа убацујете у ВУсер скрипте да бисте имитирали велико оптерећење корисника на серверу.

Тачке сусрета налажу ВУсер-у да сачека током извршења теста да више ВУсер-а стигне у одређену тачку, како би могли истовремено да извршавају задатак. На пример, да бисте емулирали вршно оптерећење на банкарском серверу, можете да уметнете тачку сусрета са упутством 100 ВУсер-у да истовремено положи готовину на своје рачуне. То се лако може постићи помоћу састанка.

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

Синтакса: лр_рендесвоус („Логичко име“);

Најбоље праксе:

  • Префикс тачке сусрета ставите са „рдв_“ ради боље читљивости кода; нпр. „рдв_Логин“
  • Уклоните све тренутне изјаве о времену размишљања
  • Примена тачака рандевуа у приказу скрипте (након снимања)

Коментари

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

Можете додати коментаре

  • Током снимања (помоћу алата)
  • Након снимања (директно писање у коду)

Најбоља пракса: Означите коментаре на врху сваке датотеке скрипте

Уметање функција кроз мени

Иако можете директно писати једноставне редове кода, можда ће вам требати траг да бисте позвали функцију. Такође можете да користите Степс Тоолбок (познат као Инсерт Фунцтион пре верзије 12) да бисте пронашли и убацили било коју функцију директно у вашу скрипту.

Траку са алаткама за кораке можете пронаћи у одељку Преглед корака са алаткама.

Ово ће отворити бочни прозор, погледајте снимак:

Шта је параметризација?

Параметар у ВУГен је контејнер који садржи снимљени вредност која је замењен за различите кориснике.

Током извршавања скрипте (у ВУГену или Цонтроллеру), вредност из спољног извора (попут .ткт, КСМЛ или базе података) замењује претходну вредност параметра.

Параметризација је корисна у слању динамичких (или јединствених) вредности серверу, на пример; пожељно је да пословни процес покрене 10 понављања, али сваки пут бира јединствено корисничко име.

Такође помаже у стимулисању стварног понашања предметног система. Погледајте доњи пример:

Примери проблема:

Пословни процес ради само за тренутни датум који долази са сервера, па стога не може да се проследи као хард кодирани захтев.

Понекад клијентска апликација проследи јединствени ИД серверу (на пример сессион_ид) да би се процес наставио (чак и за једног корисника) - у таквом случају параметарија помаже.

Клијентска апликација често одржава кеш података који се шаљу на и са сервера. Као резултат, сервер не прима стварно понашање корисника (у случају да сервер покреће другачији алгоритам у зависности од критеријума претраживања). Иако ће се скрипта ВУсер успешно извршавати, нацртана статистика перформанси неће бити значајна. Коришћење различитих података помоћу параметризације помаже у емулацији активности на страни сервера (процедуре итд.) И вежбању система.

Датум који је чврсто кодиран у ВУсер-у током снимања можда више неће бити важећи када је тај датум прошао. Параметрирање датума омогућава извршавање ВУсер-а заменом чврсто кодираног датума. Таква поља или захтеви су прави кандидати за параметризацију.

Кликните овде ако видео снимку није доступан

Поставке времена извођења и њихов утицај на ВУ симулацију

Поставке времена извођења имају исто толико значајно колико и ваша ВУГен скрипта. Са различитим конфигурацијама можете добити различите дизајне теста. Због тога ћете можда доћи до непоновљивих резултата ако подешавања времена извођења нису доследна. Размотримо сваки атрибут један по један.

Покрени логику

Рун Логиц дефинише колико ће се пута извршавати све акције, осим вусер_инит и вусер_енд.

Вероватно је ово јасније зашто ЛоадРуннер предлаже да се сав Логин код задржи унутар вусер_инит, а одјавни део искључиво у вусер_енд.

Ако сте креирали више радњи, рецимо, пријавите се, отворите екран, израчунајте најам, пошаљите средства, проверите стање и одјавите се, затим ће се догодити доњи сценарио за сваког корисника:

Сви корисници ће се пријавити, извршити отворени екран, израчунати најам, послати средства, проверити стање, а затим - поново отворени екран, израчунати најамнине ... и тако даље - понављање 10 пута - након чега следи одјава (једном).

Ово је моћна поставка која омогућава да се понашате више као прави корисник. Запамтите, стварни корисник се не пријављује и одјављује сваки пут - он обично понавља исте кораке.

Колико пута кликнете на „пријемно сандуче“ приликом провере е-поште пре одјаве?

Пејсинг

То је важно. Људи углавном нису у стању да схвате разлику између пејсинга и времена размишљања. Једина разлика је у томе што се „пејсинг односи на кашњење између итерација“, док је време размишљања кашњење између било која 2 корака.

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

Пријава

Евиденција (како се опште разуме) је вођење свих догађаја док покрећете ЛоадРуннер. Можете да омогућите евиденцију да бисте знали шта се догађа између ваше апликације и вашег сервера.

ЛоадРуннер даје моћан механизам за евидентирање који је робустан и скалабилан сам за себе. Омогућава вам да сачувате само „Стандардни дневник“ или детаљни, подесиви проширени дневник или га потпуно онемогућите.

Стандардни дневник је информативан и лако разумљив. Садржи тачну количину знања која ће вам обично требати за решавање проблема са ВУсер скриптама.

У случају Проширеног дневника, све стандардне информације дневника су подскуп. Поред тога, можете имати и замену параметара. Ово говори компоненти ЛоадРуннер да укључи комплетне информације о свим параметрима (од параметризације), укључујући захтеве, као и податке о одговору.

Ако укључите „Дата Ретурнед би Сервер“, ваш дневник ће ићи дуго. Ово ће обухватити све ХТМЛ-ове, ознаке, ресурсе, информације који нису извори укључене директно у евиденцију. Опција је добра само ако вам је потребно озбиљно решавање проблема. То обично чини датотеку дневника врло великом и није лако разумљиву.

Као што сте до сада могли претпоставити ако се одлучите за „Адванце Траце“, датотека дневника биће масовна. Морате пробати. Приметићете да се и време које је ВУГен одузео значајно повећало, мада то неће имати утицаја на време одзива трансакције које је пријавио ВУГен. Међутим, ово су врло напредне информације и можда корисне ако разумете предметну апликацију, комуникацију између клијента и сервера између ваше апликације и хардвера, као и детаље на нивоу протокола. Ове информације су обично суштински мртве, јер захтевају велике напоре да би се разумеле и решиле проблеме.

Савети:

  • Без обзира колико времена ВУГен-у треба када је евиденција омогућена, то нема утицаја на време одзива трансакције. ХП овај феномен назива „врхунском технологијом“.
  • Онемогућите евиденцију ако није потребна.
  • Онемогућите евиденцију када завршите са скриптама. Укључивање скрипти са омогућеним евидентирањем довешће до тога да контролер ради спорије и пријављује мучне поруке.
  • Онемогућавање евиденције повећаће капацитет максималног броја корисника које можете симулирати из ЛоадРуннера.
  • Размислите о коришћењу опције „Пошаљи поруку само када се догоди грешка“ - ово ће искључити непотребне информативне поруке и пријавити само поруке повезане са грешкама.

Тхинк Тимес

Тхинк Тиме је једноставно кашњење између два корака.

Тхинк Тиме помаже у реплицирању понашања корисника, јер ниједан стварни корисник не може да користи било коју апликацију попут машине (ВУГен). ВУГен аутоматски генерише време размишљања. Још увек имате потпуну контролу над уклањањем, умножавањем или колебањем трајања времена размишљања.

Да би разумео више, на пример, корисник може отворити екран (то је одговор праћен захтевом), а затим му дати корисничко име и лозинку пре него што притисне ентер. Следећа интеракција апликације са сервером догодиће се када кликне на „Пријави се“. Кориснику је потребно време да унесе своје корисничко име и лозинку Тхинк Тиме у ЛоадРуннер.

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

Међутим, да бисте симулирали стварно слично понашање, можете „Корисничко случајно размислити о времену“ и подесити проценте по жељи.

Размислите о томе да ограничите време размишљања на легитиман период. Обично је довољно 30 секунди.

Симулација брзине

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

Будући да симулирамо хиљаде корисника помоћу ЛоадРуннера, невероватно је како је ЛоадРуннер направио једноставну контролу над симулацијом пропусног опсега / брзине мреже.

Ако сте клијенти, приступите својој апликацији преко 128 Кбпс, можете је контролисати одавде. Морат ћете симулирати „стварно понашање“, што би требало помоћи у добијању праве статистике учинка.

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

Емулација прегледача

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

Можете ли себи одговорити када ће вам заиста бити важно да одаберете прави прегледач у овој конфигурацији?

Ову конфигурацију ћете користити ако сте предметна апликација веб апликација која враћа различите одговоре за различите прегледаче. На пример, видећете различите слике и садржаје за ИЕ и Фирефок итд.

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

Преузимање не-ХТМЛ ресурса омогућиће ЛоадРуннеру да преузме било који ЦСС, ЈС и друге богате медије. Ово треба и даље проверавати. Међутим, ако желите да уклоните ово из свог дизајна теста перформанси, можете да уклоните ознаку из овог.

Заступник

Најбоље је потпуно уклонити прокси из тестног окружења - ово ће учинити резултате теста непоузданим. Међутим, могли бисте се суочити са ситуацијама у којима је то неизбежно. У таквој ситуацији, ЛоадРуннер вам олакшава подешавања проки сервера.

Радит ћете (или бисте требали радити) без поставке проки. Можете га добити из свог подразумеваног прегледача. Међутим, не заборавите да проверите који је прегледач подешен на подразумевани и која је проки конфигурација за задати прегледач.

Ако користите прокси и потребан вам је потврда идентитета (или скрипта), тада можете кликнути на дугме Потврда идентитета који води у нови прозор. Погледајте доњи снимак екрана.

Помоћу овог екрана наведите корисничко име и лозинку за потврду идентитета на прокси серверу. Притисните У реду да бисте затворили екран.

Честитам. Завршили сте са конфигурацијом ваше ВУГен скрипте. Не заборавите да га конфигуришете за све ваше ВУсер скрипте.