loadrunner transactions
како упоредити датотеке у линуку
Увод у основна побољшања ВуГен скрипте:
Истражили смо Корелација у ЛоадРуннер-у детаљно у нашем претходном упутству у овом Комплетни водичи за обуку за ЛоадРуннер .
У последња два туторијала радили смо на руковању подацима у ВуГен скрипти (Корелација и параметризација).
У овом водичу за ЛоадРуннер видећемо друга основна побољшања (наведена у наставку) која су потребна за нашу скрипту:
- Трансакције - За мерење брзине и времена одзива корисникових радњи.
- Провера текста и слике - Да би се осигурало да је враћени одговор тачан.
- Коментари
- Тачке сусрета - Да натерају Вусере да истовремено извршавају задатак.
=> Кликните овде за комплетну серију водича за ЛоадРуннер
Шта ћете научити:
- Трансакције у ВуГен Сцрипт
- Провера текста и слике у ВуГен скрипти
- Коментари у ВуГен скрипти
- Тачка рандевуа у ВуГен скрипти
- Закључак
- Препоручено читање
Трансакције у ВуГен Сцрипт
Само понављање скрипти за перформансе само ће оптеретити апликацију, али неће ништа мерити. Крајњи циљ сваке скрипте за перформансе је убризгавање оптерећења и мерење брзине и времена одзива корисничких радњи на апликацији.
На пример ,колико је времена трајало претрага производа када је 100 корисника у апликацији, колико извештаја се генерише у време од рецимо 15 минута и тако даље. Да бисмо их мерили, морамо да убацимо трансакције у ВуГен скрипту (након теста у резултатима можемо видети брзину и време одзива ових трансакција).
„Трансакција је мерење од краја до краја радње корисника (или групе корисничких радњи) у апликацији“.
Трансакције се могу убацити на два начина:
- Током снимања
- После снимања (где ручно убацујемо функције трансакције у скрипту)
Уметнимо трансакцију за радњу корисника „Пријава“ у нашој апликацији „Веб Тоурс“.
У нашем првом упутству видели смо како да снимимо радње корисника. Током снимања, након уноса „Корисничког имена и лозинке“ на страници за пријаву, непосредно пре него што кликнете на дугме „Пријава“, кликните на икону „Убаци почетак трансакције“ на плутајућу траку за снимање.
ВуГен тражи име трансакције. Унесите било које значајно име. Овде смо дали „Пријава“, али добра је пракса да следите овакву конвенцију (број трансакције, назив сценарија, радња корисника итд.): 01_ВебТоурс_Лаунцх 02_ВебТоурс_Логин (и тако даље).
Сада кликните на Дугме за пријаву.
Када дођемо до почетне странице (главне странице), кликните на икону „Инсерт Енд Трансацтион“ на плутајућој траци за снимање.
Изаберите трансакцију коју желимо да завршимо (овде се налази „Пријава“).
Зауставите снимање и погледајте генерисани скрипт. Видимо да су функције покретања и завршетка трансакције уметнуте у скрипту (истакнуте жутом бојом) и да су сви захтеви који одговарају радњи корисника „Пријава“ између ових функција.
lr_start_transaction('Login'); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t3.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123530.624949372zDftVAzpfcAiDDDDDiVctpzDQVcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 69 ', ENDITEM , 'Name= login.y ', 'Value= 8 ', ENDITEM , LAST ); lr_end_transaction('Login', LR_AUTO );
Синтакса функција „почетак трансакције“ и „крај трансакције“ прилично је једноставна. Оба имају име трансакције као први аргумент. Функција „крај трансакције“ има још један атрибут - „ЛР_АУТО“, ово налаже ВуГен-у да аутоматски проследи или пропадне трансакцију (уместо да изричито наведемо услов за пролазак или неуспех).
Ако покретач учитавања наиђе на било какве грешке у извршавању захтева у оквиру трансакције, тада не успе у трансакцији, у супротном прослеђује трансакцију.
Провера текста и слике у ВуГен скрипти
Текстуалне провере користе се за проверу да ли је одговор враћен на захтев тачан или не. У водичу „Корелација“ видели смо да понекад ВуГен можда неће показати никакву грешку, али враћени одговор можда неће бити тачан. Дакле, да бисмо осигурали да је одговор тачан, користимо текстуалне провере.
На пример, када се пријавимо у веб Тоурс апликацију, идемо на почетну страницу. Проверимо у скрипти да ли добијамо тачан одговор (почетну страницу) или не када се пријавимо.
Да бисмо то урадили, морамо да идентификујемо неки текст у одговору (овде почетна страница) који може рећи да ли је одговор тачан или не. ‘Добродошли’ је један такав текст.
За проверу текста користимо „ веб_рег_финд ’ функција непосредно пре захтева.
Синтакса ове функције је:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Овде имамо три атрибута (погледајте ВуГен помоћ да бисте добили комплетну листу атрибута):
„Текст“ - користи се за одређивање текста који треба тражити.
„СавеЦоунт“ - чува број појављивања наведеног текста у параметар који одредимо.
‘Фаил’ - узима једну од две вредности -’Фоунд ’и‘ НотФоунд ’и у складу с тим не успева у скрипти.
Дакле, функција веб_рег_финд („Тект = Велцоме“, „СавеЦоунт = ВелцомеЦоунт“, „Фаил = НотФоунд“, ЛАСТ) у одговору тражи текст „Добродошли“ и спрема број појављивања у параметар „ВелцомеЦоунт“ (и не успева у скрипти ако текст није пронађен).
Скрипта изгледа овако:
web_reg_find('Text= Welcome ','SaveCount= WelcomeCount ','Fail= NotFound ', LAST ); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame= body ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t2.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123531.149939247zDftVDDpfcfDiVctpiAVVf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 66 ', ENDITEM , 'Name= login.y ', 'Value= 12 ', ENDITEM , LAST );
Сада ако поновимо скрипту, добићемо грешку за захтев за пријаву (погледајте у евиденцији релеја) јер ВуГен у одговору није пронашао текст који смо навели. То је зато што нисмо добили исправну почетну страницу (као што је приказано у „приказивачу током извршавања“).
Сада исправимо нашу скрипту (корелирај усерСессион) и поново репродукујмо скрипту.
web_reg_find('Text=Welcome','SaveCount=WelcomeCount','Fail=NotFound', LAST ); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA , 'Name=userSession', 'Value={corUserSession}', ENDITEM , 'Name=username', 'Value=jojo', ENDITEM , 'Name=password', 'Value=bean', ENDITEM , 'Name=JSFormSubmit', 'Value=off', ENDITEM , 'Name=login.x', 'Value=66', ENDITEM , 'Name=login.y', 'Value=12', ENDITEM , LAST );
Овог пута не видимо грешку у евиденцији понављања, али видимо поруку да је наша провера текста била успешна. Дакле, овог пута смо добили тачан одговор (јер то потврђује и „рунтиме виевер“).
Можемо комбинирати текстуалне провјере с трансакцијама и натјерати ВуГен да прослиједи трансакцију ако је провјера текста успјешна и неуспјех у трансакцији ако провјера текста није успјела.
Ово је приказано испод:
lr_start_transaction('Login'); web_reg_find('Text=Welcome','SaveCount=WelcomeCount',LAST); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA, 'Name=userSession', 'Value={corUserSession}', ENDITEM, 'Name=username', 'Value=jojo', ENDITEM, 'Name=password', 'Value=bean', ENDITEM, 'Name=JSFormSubmit', 'Value=off', ENDITEM, 'Name=login.x', 'Value=66', ENDITEM, 'Name=login.y', 'Value=12', ENDITEM, LAST); if(atoi(lr_eval_string('{WelcomeCount}'))>0) { lr_end_transaction('Login',LR_PASS); } else { lr_end_transaction('Login',LR_FAIL); }
Овде смо користили израз „иф“ са атрибутом „СавеЦоунт“. Параметар „ВелцомеЦоунт“ (који чува број појављивања текста) користи се као услов за прослеђивање / неуспех трансакције. Атрибути „ЛР_ПАСС“ и „ЛР_ФАИЛ“ функција трансакције користе се за експлицитно прослеђивање и неуспех (респективно) трансакције.
Белешка: Овде смо користили две нове функције - „Атои“ и ‘Лр_евал_стринг’ . О овим функцијама ћемо касније.
Још неколико информација о комбинацији атрибута функције „веб_рег_финд“:
# 1) Ако се користи само атрибут „Текст“ -
Пример: веб_рег_финд („Текст = Добродошли“, ПОСЛЕДЊИ) -
ВуГен претражује текст и не успева у скрипти ако је претрага неуспешна.
# 2) Ако се користе само атрибути „Тект“ и „СавеЦоунт“ -
Пример: веб_рег_финд („Тект = Велцоме“, „СавеЦоунт = ВелцомеЦоунт“, ЛАСТ) - ВуГен претражује текст и спрема број појављивања (чак и ако је нула) у наведени параметар (не подноси скрипту ако је претрага неуспешна ).
# 3) Ако се користе само атрибути „Текст“ и „Неуспех“ -
Пример: веб_рег_финд („Тект = Велцоме“, „Фаил = НотФоунд“, ЛАСТ) - ВуГен тражи текст и не успева у скрипти ако је текст пронађен / није пронађен.
Текстуалне провере се такође могу убацити током снимања помоћу иконе „Убаци проверу текста“ на плутајућу траку за снимање. Ово ће уметнути исто ‘Веб_рег_финд’ функција у скрипту.
Али боље је да ову функцију уметнемо ручно, јер ћемо имати бољу контролу углавном над атрибутима.
Јасно смо разумели проверу текста, сада идемо на проверу слика.
Провера слике се користи за проверу присуства одређене слике у одговору. ‘ веб_имаге_цхецк ’ функција се користи за проверу слике. Ова функција се мора ставити након захтева (у одговору на који очекујемо слику).
Пример ове функције:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Тамо где је први атрибут било које значајно име, а други атрибут (‘Срц’) је име / веза слике (погледајте ВуГен помоћ да бисте добили комплетну листу атрибута).
Коментари у ВуГен скрипти
Коментари у ВуГен скрипти могу се уносити током снимања, а такође и ручно након снимања скрипте.
Током снимања кликните на „Убаци коментар“ икону на плутајућој траци за снимање.
Унесите коментар (овде реците „Пријави се“).
После снимања можемо видети коментаре у скрипти као што је приказано доле.
/* Login */ web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t6.inf', 'Mode=HTML',
У ВуГену, један ред се може коментарисати стављањем „//“ испред реда као што је приказано доле:
// web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com');
И више линија се може повезати стављањем „/ *“ на почетку и „* /“ на крају (као што је приказано доле)
/* web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com'); */
Белешка: У горе приказаним примерима коментарисали смо функције колачића ( веб_адд_цоокие ). О функцијама колачића говорићемо касније у овој серији водича.
Добра је пракса да се коментари убацују у сваки корак током снимања, јер ће нам то помоћи да захтеве у скрипти повежемо са корисничким радњама у апликацији.
Тачка рандевуа у ВуГен скрипти
Ако имамо сценарио у којем већи број корисника истовремено извршава радњу на апликацији (попут провере резултата) и ако морамо да симулирамо исту у нашем тесту перформанси, можемо да користимо „тачку сусрета“.
„Тачка сусрета“ је једна и једноставна функција у ВуГен скрипти која инструктору за учитавање (током теста са више корисника) налаже да сачека у одређеном кораку у скрипти док сви Вусери (који извршавају скрипту) не дођу до тог корака да се наредни захтев може извршити истовремено.
Синтакса функције Рендезвоус је:
lr_rendezvous(“MeaningfulName”);
Ова функција се може уметнути током снимања, а такође и ручно након снимања скрипте.
Претпоставимо да желимо истовремено оптеретити корак плаћања у нашој апликацији „Веб Тоурс“. Током снимања у том кораку (пре него што пошаљете податке о плаћању), кликните на икону „Инсерт Рендезвоус“ на плутајућој траци за снимање.
И унесите име тачке сусрета (било које значајно име).
Након снимања, у сценарију можемо видети функцију рандеву-а.
lr_rendezvous('Payment'); web_submit_data('reservations.pl_3', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t13.inf ', 'Mode= HTML ', ITEMDATA , 'Name= firstName ', 'Value= Jojo ', ENDITEM , 'Name= lastName ', 'Value= Bean ', ENDITEM , 'Name= address1 ', 'Value= 1st Lane , Down Street', ENDITEM , 'Name= address2 ', 'Value= 567123 ', ENDITEM , 'Name= pass1 ', 'Value= Jojo Bean ', ENDITEM , 'Name= creditCard ', 'Value= 123456789101 ', ENDITEM , 'Name= expDate ', 'Value= 0520 ', ENDITEM , 'Name= oldCCOption ', 'Value=', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= outboundFlight ', 'Value= 020 ;338;05/03/2018', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= returnFlight ', 'Value=', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= .cgifields ', 'Value= saveCC ', ENDITEM , 'Name= buyFlights.x ', 'Value= 63 ', ENDITEM , 'Name= buyFlights.y ', 'Value= 12 ', ENDITEM , LAST );
Сада када покренемо ову скрипту са више корисника у Цонтроллеру, скрипту ће извршити Вусерс независно, али Вусерс ће сачекати у овом кораку „Плаћање“ док сви (или неки проценат Вусера дефинисаних у Рендезвоус политици) не досегну овај корак након којег ће извршити овај корак истовремено.
О смерницама за састанак (опције) видећемо више у водичу за Цонтроллер.
Закључак
До сада смо говорили о корелацији и параметризацији у претходним водичима и Трансакцијама, проверама текста / слика, коментарима и тачкама сусрета у овом упутству, такође смо покривали најважније методе побољшања скрипти.
У нашем следећем упутству видећемо још неколико изазова са скриптирањем, заједно са начинима за њихово решавање.
=> Посетите овде за комплетну серију водича за ЛоадРуннер
ПРЕВ Туториал |. | СЛЕДЕЋА Лекција
Препоручено читање
- Испитивање оптерећења помоћу ХП ЛоадРуннер водича
- Увод у Мицро Фоцус ЛоадРуннер - Тестирање оптерећења помоћу ЛоадРуннер водича бр. 1
- Корелација - Испитивање оптерећења помоћу ЛоадРуннера
- ЛоадРуннер Водич за почетнике (бесплатни 8-дневни курс дубине)
- Анализа резултата извештаја и извештаји - Испитивање оптерећења помоћу ЛоадРуннера
- Тестирање перформанси веб услуга помоћу ЛоадРуннер ВуГен скриптирања
- Разлика између ЛоадРуннера и Перформанце Центер-а
- Како поставити ЛоадРуннер ВуГен Сцрипт датотеке и поставке рунтиме-а