loadrunner transactions
Як налаштувати брандмауер в мережі
Вступ до основних удосконалень сценарію VuGen:
Ми досліджували Кореляція в LoadRunner детально в нашому попередньому підручнику в цьому Повні навчальні посібники з LoadRunner .
В останніх двох підручниках ми працювали над обробкою даних у сценарії VuGen (кореляція та параметризація).
У цьому посібнику з LoadRunner ми побачимо інші основні вдосконалення (перелічені нижче), необхідні для нашого сценарію:
- Операції - Для вимірювання швидкості та часу відгуку на дії користувача.
- Перевірка тексту та зображень - Переконатися, що відповідь, що повертається, правильна.
- Коментарі
- Точки зустрічі - Змусити Vusers виконувати завдання одночасно.
=> Клацніть тут, щоб отримати повну серію підручників із LoadRunner
Що ви дізнаєтесь:
- Транзакції у VuGen Script
- Перевірка тексту та зображень у сценарії VuGen
- Коментарі у сценарії VuGen
- Точка зустрічі у сценарії VuGen
- Висновок
- Рекомендована література
Транзакції у VuGen Script
Повторне відтворення сценаріїв продуктивності лише навантажить програму, але нічого не вимірює. Кінцевою метою будь-якого сценарію продуктивності є ін'єкційне завантаження та вимірювання швидкості та часу відгуку дій користувача над додатком.
Наприклад ,скільки часу зайняв пошук товару, коли в програмі перебуває 100 користувачів, скільки звітів створюється за час, скажімо, за 15 хвилин тощо. Щоб їх виміряти, ми повинні вставити транзакції у сценарій VuGen (після тесту ми можемо бачити швидкість та час відгуку цих транзакцій у результатах).
«Транзакція - це наскрізне вимірювання дії користувача (або групи дій користувача) над додатком».
Транзакції можна вставити двома способами:
- Під час запису
- Після запису (де ми вручну вставляємо функції транзакцій у сценарій)
Давайте вставимо транзакцію для дії користувача «Вхід» у нашій програмі «Веб-тури».
У нашому першому підручнику ми побачили, як записувати дії користувача. Під час запису, після введення «Ім’я користувача» та «Пароль» на сторінці входу, перед натисканням кнопки «Вхід» натисніть на піктограму «Вставити старт транзакції» на плаваючій панелі запису.
VuGen запитує назву транзакції. Введіть будь-яке значуще ім’я. Ми вказали тут «Вхід», але доцільно дотримуватися такої домовленості (номер транзакції, ім’я сценарію, дія користувача тощо): 01_WebTours_Launch 02_WebTours_Login (і так далі).
Тепер натисніть на Кнопка входу.
Досягнувши домашньої сторінки (головної сторінки), натисніть на піктограму «Вставити кінцеву транзакцію» на плаваючій панелі запису.
Виберіть транзакцію, яку ми хочемо закінчити (транзакція «Увійти» тут).
Зупиніть запис і перегляньте створений сценарій. Ми бачимо, що функції запуску та закінчення транзакції вставляються в скрипт (виділяються жовтим кольором), і всі запити, що відповідають дії користувача «Вхід», містяться між цими функціями.
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 );
Синтаксис функцій „початок транзакції” та „закінчення транзакції” досить простий. Першим аргументом обох є назва транзакції. Функція 'закінчити транзакцію' має ще один атрибут - 'LR_AUTO', це вказує VuGen автоматично проходити або провалювати транзакцію (замість того, щоб ми явно вказували умову для проходження або відмови).
Якщо програма завантаження зустрічає будь-які помилки при виконанні запитів у межах транзакції, тоді вона не виконує транзакцію, інакше передає транзакцію.
Перевірка тексту та зображень у сценарії VuGen
Текстові перевірки використовуються для перевірки правильності відповіді, повернутої на запит, чи ні. У підручнику «Кореляція» ми побачили, що іноді VuGen може не виявляти помилок, але повернута відповідь може бути неправильною. Отже, щоб переконатися, що відповідь правильна, ми використовуємо текстові перевірки.
Наприклад, коли ми входимо в програму веб-турів, ми переходимо на домашню сторінку. Давайте перевіримо у сценарії, чи отримуємо ми правильну відповідь (домашню сторінку), коли ми входимо в систему.
Для цього ми маємо визначити якийсь текст у відповіді (домашня сторінка тут), який може сказати, чи відповідь правильна чи ні. «Ласкаво просимо» - один із таких текстів.
Для перевірки тексту ми використовуємо web_reg_find ’ функція безпосередньо перед запитом.
Синтаксис цієї функції:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Тут ми маємо три атрибути (зверніться до довідки VuGen, щоб отримати повний список атрибутів):
‘Текст’ - використовується для вказівки, який текст шукати.
‘SaveCount’ - Зберігає кількість випадків зазначеного тексту у параметрі, який ми вказуємо.
'Fail' - приймає одне з двох значень -Found і NotFound і відповідно не виконує сценарій.
Тож функція web_reg_find (“Text = Welcome”, ”SaveCount = WelcomeCount”, ”Fail = NotFound”, LAST) шукає у відповіді текст „Welcome” та зберігає кількість випадків у параметрі „WelcomeCount” (і не вдається виконати сценарій, якщо текст не знайдено).
Сценарій виглядає так:
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 );
Тепер, якщо ми повторимо сценарій, ми отримаємо помилку для запиту на вхід (див. У журналі ретрансляції), оскільки VuGen не знайшов текст, який ми вказали, у відповіді. Це пов’язано з тим, що ми не отримали правильну домашню сторінку (як показано в «засобі перегляду під час виконання»).
Тепер давайте виправимо наш скрипт (співвідносимо userSession) і повторимо сценарій ще раз.
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 );
Цього разу ми не бачимо помилок у журналі відтворення, але бачимо повідомлення про те, що наша перевірка тексту була успішною. Отже, цього разу ми отримали правильну відповідь (оскільки це підтверджується «засобом перегляду середовища виконання»).
Ми можемо поєднувати текстові перевірки з транзакціями та змусити VuGen передати транзакцію, якщо текстова перевірка успішна, і не виконати транзакцію, якщо текстова перевірка не вдалася.
Це показано нижче:
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); }
Ми використовували тут оператор 'if' з атрибутом 'SaveCount'. Параметр ‘WelcomeCount’ (що зберігає кількість випадків введення тексту) використовується як умова для передачі / невдалої транзакції. Атрибути ‘LR_PASS’ та ‘LR_FAIL’ функцій транзакції використовуються для явної передачі та відмови (відповідно) транзакції.
Примітка: Тут ми використали дві нові функції - «Atoi» і ‘Lr_eval_string’ . Про ці функції ми поговоримо пізніше.
Дещо більше інформації про комбінацію атрибутів функції ‘web_reg_find’:
# 1) Якщо використовується лише атрибут 'Текст' -
Приклад: web_reg_find (“Текст = Ласкаво просимо”, ОСТАННІЙ) -
VuGen шукає текст і не виконує сценарій, якщо пошук не вдався.
# 2) Якщо використовуються лише атрибути „Text“ та „SaveCount“ -
Приклад: web_reg_find (“Text = Welcome”, “SaveCount = WelcomeCount”, LAST) - VuGen шукає текст і зберігає кількість випадків (навіть якщо воно дорівнює нулю) у зазначений параметр (не провалює сценарій, якщо пошук не вдався ).
# 3) Якщо використовуються лише атрибути „Текст” та „Невдача” -
Приклад: web_reg_find («Текст = Ласкаво просимо», «Помилка = Не знайдено», ОСТАННІ) - VuGen шукає текст і не виконує сценарій, якщо текст знайдено / не знайдено.
Текстові перевірки також можна вставити під час запису, використовуючи піктограму «Вставити перевірку тексту» на плаваючій панелі запису. Це вставить те саме ‘Web_reg_find’ функція в сценарії.
Але краще, щоб ми вставляли цю функцію вручну, оскільки ми матимемо кращий контроль переважно над атрибутами.
Ми зрозуміли перевірку тексту, тепер перейдемо до перевірки зображень.
Перевірка зображення використовується для перевірки наявності вказаного зображення у відповіді. ‘ web_image_check ’ функція використовується для перевірки зображення. Ця функція повинна бути поставлена після запиту (у відповідь на який ми очікуємо зображення).
Приклад цієї функції:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Де перший атрибут - це будь-яке значуще ім’я, а другий атрибут (‘Src’) - це назва зображення / посилання (зверніться до довідки VuGen, щоб отримати повний список атрибутів).
Коментарі у сценарії VuGen
Коментарі у сценарії VuGen можна вводити під час запису, а також вручну після запису сценарію.
Під час запису натисніть на «Вставити коментар» на плаваючій панелі запису.
Введіть коментар (скажіть тут «Вхід»).
Після запису ми можемо побачити коментарі в сценарії, як показано нижче.
/* 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',
У VuGen один рядок можна прокоментувати, просто поставивши «//» перед рядком, як показано нижче:
// 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'); */
Примітка: У наведених вище прикладах ми прокоментували функції cookie ( web_add_cookie ). Про функції cookie ми поговоримо пізніше у цій серії підручників.
Це хороша практика - вставляти коментарі на кожному кроці під час запису, оскільки це допоможе нам пов’язати запити в сценарії з діями користувача над додатком.
Точка зустрічі у сценарії VuGen
Якщо у нас є сценарій, коли більша кількість користувачів одночасно виконує дію над додатком (наприклад, перевірка результатів), і якщо нам доводиться імітувати те саме в нашому тесті продуктивності, ми можемо використовувати «точку побачення».
`` Точка побачення '' - це проста і проста функція у сценарії VuGen, яка вказує програмі завантаження (під час тесту з кількома користувачами) чекати на вказаному кроці в сценарії, поки всі Vusers (виконуючи сценарій) не прийдуть до цього кроку, тому що наступний запит може бути виконаний одночасно.
Синтаксис функції Рандеву:
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 );
Тепер, коли ми запускаємо цей сценарій із кількома користувачами в Controller, сценарій буде виконуватися Vusers самостійно, але Vusers буде чекати на цьому кроці 'Оплата', поки всі (або деякий відсоток Vusers, визначених у політиці побачень) не досягнуть цього кроку, після якого вони виконають цей крок одночасно.
Детальніше про політику побачень (параметри) ми побачимо у підручнику Controller.
Висновок
До цього ми обговорювали кореляцію та параметризацію в попередніх навчальних посібниках та транзакціях, перевірках тексту / зображень, коментарях та точках зустрічі в цьому посібнику, ми також розглядали найважливіші методи вдосконалення сценаріїв.
У нашому наступному навчальному посібнику ми побачимо ще кілька проблем зі сценаріями, а також способи їх вирішення.
=> Відвідайте тут, щоб отримати повну серію підручників із LoadRunner
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- Тестування навантаження за допомогою підручників HP LoadRunner
- Вступ до Micro Focus LoadRunner - Тестування навантаження за допомогою підручника №1 для LoadRunner
- Кореляція - Тестування навантаження за допомогою LoadRunner
- Підручник LoadRunner для початківців (безкоштовний 8-денний поглиблений курс)
- Аналіз результатів тестування та звіти - Тестування навантаження за допомогою LoadRunner
- Тестування продуктивності веб-служб за допомогою сценаріїв LoadRunner VuGen
- Різниця між LoadRunner та Performance Center
- Як налаштувати файли сценарію LoadRunner VuGen та налаштування часу роботи