important loadrunner functions used vugen scripts with examples
Важни функции LoadRunner, използвани главно в VuGen скриптове със синтаксис и примери:
Предизвикателства на VuGen за скриптове бяха обяснени подробно в нашия предишен урок в Онлайн безплатна серия за обучение на LoadRunner .
По време на нашето пътуване с LoadRunner VuGen досега се натъкнахме на много предварително дефинирани функции (и разбира се видяхме и как да напишем собствените си функции).
В този урок ще изброим и ще поговорим накратко за важните ‘предварително дефинирани’ LoadRunner, специфични за протокола и C-езикови функции, които най-често използваме в VuGen скриптове / сценарии.
=> Щракнете тук за пълна серия уроци по LoadRunner
Нека класифицираме тези функции в три категории:
- Функции LoadRunner (LR)
- Функции, специфични за протокол (Web - HTTP / HTML)
- C езикови функции
Нека изследваме един по един!
Какво ще научите:
- Функции LoadRunner (LR)
- Функции, специфични за протокола
- C Езикови функции
- Заключение
- Препоръчително четене
Функции LoadRunner (LR)
Тези функции са основните функции на LoadRunner, които са общи за всички протоколи:
1) lr_eval_string (): Както вече се видя, тази функция връща входния низ след оценка на всички вградени параметри.
2) lr_eval_string_ext (): Тази функция създава буфер и го присвоява на входния низ след оценка на вградените параметри.
3) lr_save_string (): Както вече се видя, тази функция присвоява стойност на параметъра / променливата LR.
4) lr_save_int (): Тази функция присвоява цяло число на параметър LR, както е показано по-долу:
Пример:
int number; number=8; lr_save_int(number,”numparam”);
Параметърът „numparam“ вече може да се използва като всеки друг LR параметър.
5) lr_paramarr_random (): Както вече се видя, тази функция избира произволно една от стойностите от масив от параметри.
6) lr_paramarr_len (): Тази функция връща броя на елементите в масив от параметри.
Да приемем, че „cFlight“ е масивът от параметри със стойности на полета, примерът по-долу показва как броят на елементите на този масив може да бъде копиран в променлива.
Пример:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Тази функция дава стойността на параметъра на определено място в масива от параметри. Пример, показан по-долу, запазва третата стойност на масива от параметри в променлива.
Пример:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () : Това е функция на база данни, която се използва за свързване към база данни.
9) lr_db_disconnect () : Това е функция на базата данни, която се използва за прекъсване на връзката с база данни.
10) lr_start_transaction () и lr_end_transaction (): Както вече се видя, тези функции се използват за стартиране и приключване (съответно) на транзакция.
единадесет) lr_message () : Това е функция за съобщения, която се използва за изпращане на съобщение (я) към дневника и изходния прозорец.
12) lr_output_message (): Това е функция за съобщения, която се използва за изпращане на съобщението / ята с подробности като секцията на скрипта и номера на реда за извеждане на прозорци, регистрационни файлове и други резюмета на тестови отчети.
13) lr_log_message () : Това е функция за съобщения, която се използва за изпращане на съобщение (я) до регистрационния файл на Vuser или агент, а не към изходния прозорец.
14) lr_error_message (): Това е функция за съобщения, която се използва за изпращане на съобщение (я) до изходните прозорци, регистрационни файлове и други резюмета на тестови отчети.
петнадесет) lr_save_datetime (): Тази функция запазва текущата дата и час (или датата и часа с посоченото отместване) в параметър, който може да се използва в нашия скрипт, когато и когато е необходимо.
Пример:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Action.c (4): Днешната дата е 09 юни 2018 г.
кое от следните е вярно за системния тест?
По-долу е даден друг пример, при който се използва отместването от един ден:
lr_save_datetime('Tomorrow's date is %B %d %Y', DATE_NOW + ONE_DAY , 'tomorrow'); lr_output_message(lr_eval_string('{tomorrow}'));
Action.c (4): Утрешната дата е 10 юни 2018 г.
16) lr_set_debug_message (): Тази функция променя нивото на регистриране на съобщенията (за част от скрипта) от това, което е зададено в настройките за изпълнение. Както е показано по-долу, пълната проследяване е активирана само за заявката ‘index.htm’ (дори ако нивото на регистрационния файл е зададено на ‘Standard log’ в настройките за изпълнение).
Пример:
lr_set_debug_message( LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE , LR_SWITCH_ON ); web_url('index.htm', 'URL= http://127.0.0.1:1080/WebTours/index.htm ', 'TargetFrame=', 'Resource= 0 ', 'RecContentType= text/html ', 'Referer=', 'Snapshot= t8.inf ', 'Mode= HTML ', LAST ); lr_set_debug_message( LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE , LR_SWITCH_OFF );
17) lr_abort (): Тази функция прекъсва изпълнението на скрипта след изпълнение на раздела ‘vuser_end’. Тази функция е полезна, когато трябва ръчно да прекъснем скрипта поради специфично състояние на грешка.
18) lr_exit (): Тази функция инструктира Vuser да излезе от изпълнението на скрипта по време на изпълнение и да продължи според посочените „Опции за продължаване на скрипта“.
В следващия пример, тази функция инструктира Vuser да спре текущата итерация на изпълнение на глобалния скрипт и да стартира следващата итерация.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Ето списък с други опции за продължаване на скрипта:
- LR_EXIT_VUSER - Излезте без никакво условие и отидете директно към vuser_end действие.
- LR_EXIT_ACTION_AND_CONTINUE - Спрете текущото действие и преминете към следващото действие.
- LR_EXIT_ITERATION_AND_CONTINUE - Спрете текущата итерация и преминете към следващата итерация.
- LR_EXIT_VUSER_AFTER_ITERATION - Излезте след завършване на текущата итерация.
- LR_EXIT_VUSER_AFTER_ACTION - Излезте след завършване на текущото действие.
19) lr_think_time (): Тази функция позволява на Vuser да прави пауза за определено време между стъпките / действията на VuGen скрипта. Това е да се симулира реалното поведение на потребителя при мислене за известно време между действия / стъпки в приложение.
Например, следното кара Vuser да изчака 10 секунди ...
lr_think_time(10);
двадесет) lr_rendezvous (): Както вече се видя, тази функция инструктира LoadRunner да изчака на определена стъпка в скрипта, докато всички Vusers стигнат до тази стъпка, така че последващата заявка да може да бъде изпълнена едновременно.
двадесет и едно) lr_load_dll (): Тази функция се използва за зареждане на външна DLL, позволяваща на Vuser да извика външна функция при повторно възпроизвеждане на скрипта.
22) lr_save_searched_string (): Тази функция търси поява на низ в буфер и запазва част от буфера след този низ в параметър.
В следващия пример , третото появяване (числото, определено в третия атрибут плюс 1) на низа „всички“ се търси в буфера и следващите 14 знака (шести атрибут) се записват в параметър (петият атрибут „1“ прескача интервала след търсенето ).
char cBuffer[] = 'all the King's horses and all the King's elephants and all the King's men'; lr_save_searched_string(cBuffer, strlen (cBuffer),2,'all',1,14,'parameter'); lr_output_message('The searched sub-string is %s',lr_eval_string('{parameter}'));
Action.c (7): Търсеният подниз са хората на краля.
2. 3) lr_vuser_status_message (): Тази функция изпраща съобщение до областта на състоянието на Vuser на контролера и до дневника на Vuser.
24) lr_next_row (): Тази функция работи върху посочения файл с данни за параметри и се използва за придвижване на активен ред до следващия ред.
25) lr_advance_param (): Тази функция кара скрипта да използва следващата налична стойност на параметъра, като работи върху имена на колони.
26) lr_start_timer () и lr_end_timer (): Тези функции се използват за стартиране и спиране на таймер в VuGen скрипт, който изчислява изминаването на времето в секунди.
27) lr_whoami (): Тази функция връща информация за Vuser (като Vuser id, Vuser group).
28) lr_get_vuser_ip (): Тази функция връща IPv4 адреса на Vuser.
29) lr_get_host_name (): Тази функция връща името на машината, изпълняваща скрипта.
30) lr_get_master_host_name (): Тази функция връща името на машината, работеща с контролера.
31) lr_decrypt (): Тази функция дешифрира кодиран низ. Обикновено се използва за дешифриране на пароли.
32) lr_continue_on_error (): Тази функция указва как да се справя с грешките, за да продължи да работи, ако възникне грешка или да прекъсне изпълнението на скрипта.
***********************************
В този раздел обсъдихме по-подробно функциите „предварително дефинирани“ и функциите „LoadRunner“.
В следващия ни раздел ще говорим за функциите LoadRunner ‘Protocol Specific’ и ‘C-Language’.
Функции, специфични за протокола
Тези функции са специфични за протокол, в нашата дискусия ще се ограничим до обсъждане на протокол „Web-HTTP / HTML“ или просто специфични функции на протокола „Web“.
1) web_url (): Тази функция зарежда уеб страницата, посочена от аргумента URL.
2) web_submit_form (): Тази функция изпраща формуляр. И тази функция се записва само в HTML режим и изпраща контекстно-чувствителна заявка (вече говорихме за контекстно-чувствителни и безконтекстни заявки).
Вижте Примера по-долу:
как да играя торент файл -
web_submit_form('login.pl', 'Snapshot= t2.inf ', ITEMDATA , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= login.x ', 'Value= 51 ', ENDITEM , 'Name= login.y ', 'Value= 13 ', ENDITEM , LAST );
3) web_submit_data (): Тази функция изпраща формуляр „без контекст“. Тази функция се записва само в режим на запис на базата на URL или в режим на запис на базата на HTML с маркирана опция „Само скрипт, съдържащ явни URL адреси“.
Вижте примера по-долу:
web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t12.inf ', 'Mode= HTTP ', ITEMDATA , 'Name= userSession ', 'Value= 123342.854353989zDttttipAHAiDDDDDiAzzpziitcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 51 ', ENDITEM , 'Name= login.y ', 'Value= 13 ', ENDITEM)
4) web_custom_request (): Тази функция се използва за създаване на персонализирана HTTP заявка, използвайки всеки метод или тяло.
5) web_concurrent_start () и web_concurrent_end (): Тези функции се използват за маркиране на началото и края (съответно) на едновременна група. Всички функции в група (затворени между тези функции) се изпълняват едновременно.
6) web_reg_save_param (): Както вече се видя, това е гранична корелационна функция.
7) web_reg_save_param_ex (): Това също е функция, базирана на граници, която е подобрена версия на функцията web_reg_save_param.
8) web_reg_find (): Както вече се видя, тази функция се използва за проверка на текст.
9) web_image_check (): Както вече видяхме, тази функция се използва за проверка на изображението.
10) web_convert_param (): Тази функция се използва за конвертиране на HTML текст в обикновен текст или URL или обикновен текст в URL. В примера по-долу тези функции преобразуват съдържанието на параметър ‘ParamName’ от HTML формат във формат URL.
Пример:
web_convert_param (“ParamName”, “SourceEncoding = HTML”, “TargetEncoding = URL”, ПОСЛЕДНО);
единадесет) web_get_int_property (): Тази функция връща конкретна информация (като код на състоянието, размер на изтеглянето и т.н.) за предишната HTTP заявка. В примера, показан по-долу, тази функция се използва за връщане на HTTP код на състоянието и размер на изтегляне.
Пример:
int statusCode, downloadSize; web_url('index.htm', 'URL= http://127.0.0.1:1080/WebTours/index.htm ', 'Resource= 0 ', 'RecContentType= text/html ', 'Referer=', 'Snapshot= t1.inf ', 'Mode= HTML ', EXTRARES , 'Url= ../favicon.ico ', 'Referer=', ENDITEM , 'Url= https://www.bing.com/favicon.ico ', 'Referer=', ENDITEM , LAST ); statusCode = web_get_int_property( HTTP_INFO_RETURN_CODE ); lr_output_message('The HTTP status code is %d',statusCode); downloadSize = web_get_int_property( HTTP_INFO_DOWNLOAD_SIZE ); lr_output_message('The download size is %d bytes',downloadSize);
Action.c (17): web_get_int_property започна [MsgId: MMSG-26355]
Action.c (17): web_get_int_property беше успешен [MsgId: MMSG-26392]
Action.c (18): Кодът на състоянието на HTTP е 200
Action.c (20): web_get_int_property започна [MsgId: MMSG-26355]
Action.c (20): web_get_int_property беше успешен [MsgId: MMSG-26392]
Action.c (21): Размерът за изтегляне е 12891 байта
12) web_set_max_html_param_len (): Тази функция се използва за задаване на максималната дължина на всеки HTML низ, който може да бъде извлечен и записан в параметър. Стойността по подразбиране за максималната дължина на параметър, който може да бъде уловен по време на корелация, е 256 знака. Тази функция се използва за извличане на низ, по-дълъг от 256 знака.
13) web_cache_cleanup (): Тази функция се използва за изчистване на кеша. В настройките по време на изпълнение - раздела „Емулация на браузъра“, ако е активирана „Симулиране на нов потребител на всяка итерация“, тази функция автоматично се извиква в началото на всяка итерация.
14) web_cleanup_cookies (): Тази функция изчиства всички бисквитки, които в момента се съхраняват от Vuser.
петнадесет) web_add_cookie (): Тази функция добавя нова бисквитка.
16) web_add_header (): Тази функция добавя дефиниран от потребителя заглавие към следващата HTTP заявка.
17) web_save_timestamp_param (): Тази функция запазва текущия локален клеймо на компютъра, изпълняващ скрипта. Това е 13-цифрено число и стойността е броят на милисекундите от полунощ на 1 януари 1970 г.
Пример:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Action.c (5): Клеймо за време: 1529249235582
18) web_set_user (): Тази функция определя стойност за вход и парола за уеб сървър или прокси сървър. Когато влезем в сървър, който изисква потребителско име и парола, тази функция се генерира.
19) web_set_proxy (): Тази функция се използва за инструктиране на Vuser да насочва всички HTTP заявки към посочените Прокси сървър .
двадесет) web_set_certificate (): Тази функция се използва за инструктиране на Vuser да използва специфичен сертификат от регистъра на Internet Explorer (когато защитен уеб сървър изисква клиентът да представи сертификат).
Например, следната функция инструктира Vuser да използва втория сертификат от регистъра на Internet Explorer.
web_set_certificate('2');
двадесет и едно) web_set_sockets_option (): Тази функция се използва за конфигуриране на различни опции за сокети на клиентската машина.
SSL_VERSION - SSL версия: „2“, „3“, „2 и 3“, „TLS“, „TLS1.1“ или „TLS1.2“.
MAX_CONNECTIONS_PER_HOST - Максималният брой едновременни връзки на хост.
CLOSE_KEEPALIVE_CONNECTIONS - Затваря всички отворени връзки.
C Езикови функции
Това са функциите „C“, които се използват за подобряване на VuGen скриптовете за конкретни сценарии.
1) strcpy (): Тази функция копира един низ в друг.
Пример:
char String[100]; strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Action.c (8): Съдържанието в String е: Това е низ
2) strcmp (): Тази функция сравнява два низа и връща стойност, която показва лексикографската връзка между тях (‘= 0’, ако низовете са еднакви, ‘0’, ако първият низ е по-голям от втори низ).
Пример:
char String1[100]= 'The first string'; char String2[100]= 'The second string'; if( strcmp (String1,String2)==0) { lr_output_message('Strings are same'); } else { lr_output_message('Strings are not same'); }
Action.c (14): Струните не са еднакви.
3) strlen (): Тази функция връща дължината на низ в байтове.
4) strcat (): Тази функция обединява два низа.
Пример:
char String[100]= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Action.c (10): Последният низ е StarWars.
5) strtok (): Както вече се видя, тази функция връща маркер от низ, разделен от определени символи.
6) atoi (): Както вече се видя, тази функция преобразува C низ в C цяло число.
7) atof (): Тази функция преобразува C низ в C плувка.
8) itoa (): Тази функция преобразува C цяло число в C низ.
Пример:
int x=1; char y[100]; itoa (x,y,10); lr_output_message('The string is: %s',y);
Action.c (8): Низът е: 1
9) fopen (): Тази функция се използва за отваряне на указател на файл.
10) fclose (): Тази функция се използва за затваряне на указател на файл.
единадесет) fread (): Тази функция чете неформатирани данни от поток в буфер.
12) fwrite (): Тази функция записва неформатирани данни от буфер в поток.
13) fprintf (): Както вече се видя, тази функция записва форматиран изход във файл.
14) спринт (): Тази функция записва форматиран изход в низ.
Пример:
int arg = 84; char filename[64], * filetype = 'txt'; sprintf (filename, 'log_%d.%s', arg, filetype); lr_output_message ('The new file name is %s', filename);
Action.c (7): Новото име на файла е log_84.txt
Заключение
От този урок научихме повече за важните предварително дефинирани функции LoadRunner.
Тези функции се грижат за почти всички важни сценарии, които обикновено срещаме в приложения в реално време. Препоръчително е да се обърнете към „Справка за функциите“ в помощта на VuGen за допълнителни подробности относно тези функции.
В нашия предстоящ урок ще научите повече за скриптове за уеб услуги с помощта на LoadRunner.
=> Посетете тук за пълна серия уроци по LoadRunner
PREV Урок | СЛЕДВАЩ урок
Препоръчително четене
- Тестване на производителността на уеб услуги с помощта на LoadRunner VuGen Scripting
- Функции за дата и час в C ++ с примери
- Урок за Python DateTime с примери
- Функции в C ++ с типове и примери
- Тестване на натоварване с уроци за HP LoadRunner
- Функции на Python
- Функции на низовете на Python
- Опции за запис на VUGen в LoadRunner