gatling tutorial getting started with gatling load testing
Този урок за видео Gatling предоставя изчерпателен преглед на Gatling, включително функции, стъпки за инсталиране и примери за използване на Gatling Simulator Recorder:
Gatling е рамка за тестване с отворен код, базирана на Scala. В наши дни той придобива голяма популярност с повече от 3 милиона изтегляния през последните 3 години.
Предлага се както с отворен код, така и като корпоративен вариант, наречен Gatling Frontline с повече интеграции и подкрепа от екипа на Gatling. Но върху всички практически случаи на употреба може да се работи с помощта на изданието на общността Gatling, което е безплатно и с отворен код.
Какво ще научите:
Видео урок за Gatling
Нека да видим стъпките, необходими за започване на работа с Gatling. Също така ще разгледаме някои от важните характеристики на Gatling като част от този урок.
Ето видео урок за Gatling Въведение:
Инсталация
Gatling може да се инсталира по 2 различни начина. Това може да се обясни както следва:
# 1) Използвайки Gatling като самостоятелен инструмент, можете просто да инсталирате инсталатора / приложението, като използвате официалния Gatling уебсайт и следвайте инструкциите за инсталиране.
Моля, обърнете внимание, че инсталираната zip папка съдържа както черупкови, така и групови файлове, което прави Gatling подходящ за използване в различни операционни системи като - Windows, MacOS, Linux / Unix и др.
Инсталаторът не е нищо друго, освен Java-базиран записващ скрипт Gatling, който записва потребителски действия чрез браузъра в инструмента и който след това може да бъде преобразуван в скрипт или сценарий, които трябва да бъдат заредени и тествани. Ще видим това подробно в предстоящите раздели.
# две) Друг начин да инсталирате / използвате Gatling е като го използвате като пакет чрез Maven / Gradle или чрез инструменти за изграждане на Scala.
Важен момент, който трябва да се отбележи, е, че всички скриптове на Gatling са базирани на Scala, поради което създаването на проект, базиран на Scala, може да използва библиотеката Gatling, която може да бъде импортирана от всякакви инструменти за изграждане като Maven / Gradle или SBT.
Характеристики на Gatling
Те са както следва:
# 1) Асинхронна архитектура и леки нишки
Gatling има усъвършенствана архитектура, базирана на инструментариума Akka, и е напълно асинхронен. Това му дава предимство в сравнение с други инструменти за тестване на производителността като JMeter, където всяка нишка съответства на един потребител.
Тук една нишка може да симулира множество потребители, тъй като има архитектура за съобщения чрез модела на Actor.
Накратко, тестът на Gatling може да се справи с редица едновременни потребители на машина в сравнение с други инструменти като Jmeter и следователно води до значително спестяване на CPU и RAM.
Препоръчително четене => Актьорски модел и асинхронна архитектура на Гатлинг
# 2) Домейн специфичен език прави тестовете четливи
Gatling скриптовете са написани в Scala и имат приятелски DSL, което прави скриптовете лесно четими и по-малко склонни към грешки. За повече подробности около Gatling DSL, моля, вижте тук .
# 3) Прогнозна поддръжка
Gatling поддържа голямо разнообразие от протоколи, включително HTTP, HTTPS и уеб гнезда. Също така има разширения за тестване на натоварване на SQL заявки / скриптове.
# 4) Докладване и твърдения
Gatling предоставя незабавна поддръжка за създаване на подробни HTML отчети за изпълняваните сценарии, а също така има възможности за прилагане на твърдения за отделните заявки в сценарии - Например, Време за отговор, JSON проверка на съдържанието и др.
# 5) Приятелски рекордер, базиран на GUI
Gatling идва с лесен за използване графичен тестови рекордер, който може да генерира симулационен скрипт чрез записване на потребителска активност или действия на потребителя в уеб браузър. Генерираните скриптове са базирани на Scala скриптове, които могат да бъдат изпълнени в бъдеще и могат да бъдат модифицирани според изискванията.
Тествано приложение и запис на примерни скриптове
За създаване на примерна симулация ще използваме Официално предоставеното хоствано приложение на Gatling
Ще използваме симулационния рекордер на Gatling, за да започнем да създаваме товар и да правим тестване на производителността. Преди да продължим, нека обсъдим сценария, в който искаме да заредим теста.
Сценарият е случай на употреба, който се опитваме да заредим тест. Какво по същество означава, че искаме да имитираме действие на потребител в сценарий или набор от стъпки, които трябва да бъдат подложени на тест.
Например, да предположим, че потребителят има достъп до който и да е уебсайт за електронна търговия като Amazon.com и търси продукт и го добавя в кошницата и накрая плаща с информация за плащане.
Цялото това действие на потребителя е единичен сценарий, който съдържа отделни стъпки като
- Придвижване до уебсайта Amazon.com.
- Изчаква се страницата да се зареди.
- Търсене на продукт през лентата за търсене на продукт.
- Добавяне на продукта в количката.
- Отиване в количката и плащане с продукта.
- Извършване на плащането.
За да заредим тестването на този пълен сценарий, от гледна точка на системата или сървъра, трябва да разберем, че не е нищо друго освен колекция или поредица от API извиквания, които се извършват към бекенд сървъра, и това е, което искаме в теста за производителност.
За този пример ще използваме сценария по-долу за хоствано приложение на Gatling:
# 1) Отидете до Хоствано приложение от Gatling .
# две) Кликнете върху „Добавяне на нов компютър“.
# 3) Изберете името на компютъра като Apple и името на компанията като “Apple Inc” от падащото меню, както е показано на изображението по-долу.
# 4) Кликнете върху „Създаване на този компютър“, след като въведете подробностите.
Настройте Gatling Recorder и запишете първия скрипт
В този раздел ще обсъдим как да настроим рекордера на теста на Gatling, за да създадем симулация за сценария, който обсъдихме в предишния раздел.
Ще използваме симулационен рекордер Gatling, който е в много проста форма, HTTP прокси - трябва да сте запознати с други инструменти за HTTP запис като Fiddler или хром Http прокси и т.н. запис в тестов симулационен скрипт.
Така че нека първо да видим как да настроим рекордера на Gatling:
# 1) След като Gitling zip папката е инсталирана, просто разархивирайте папката до мястото, където искате да бъде инсталиран Gatling.
най-добра музика за изтегляне на mp3 за android
# две) След тази стъпка трябва да зададем 2 променливи на средата с име - GATLING_HOME (за началната директория на Gatling) и GATLING_CONF (за местоположението на конфигурационната папка на Gatling).
В зависимост от типа операционна система (т.е. Windows или Mac или Linux), задайте тези променливи на средата със стойности по-долу:
GATLING_HOME = {gatling-install-directory}
Пример:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-directory} / conf
Пример:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
След като променливите са настроени да проверяват, можете просто да натиснете на терминала командата - износ | захват „GATLING“ и изходът трябва да показва 2-те променливи на околната среда, които току-що сме задали.
# 3) След като тези променливи на средата са зададени, трябва да стартираме нашия записващ скрипт Gatling. За ОС, базирана на Windows, има партиден файл, предоставен с инсталация на Gatling, а за ОС, базирана на Linux / MacOS, е предоставен файл на обвивката.
По-долу е дадена файловата структура на папката bin:
# 4) Така че, в зависимост от типа на операционната система, можем да изберем типа на файла, който да се изпълни за работещия рекордер. Моля, имайте предвид, че тук има 2 файла, които ще използваме:
- Файл Gatling.sh / Gatling.bat - за да стартирате симулационния скрипт.
- Файл Recorder.sh / recorder.bat - за да стартирате / отворите рекордера за симулация на Gatling.
# 5) Нека стартираме скрипта на рекордера, за да отворим рекордера Gatling. Използвайте терминал Mac / Linux, за да стартирате скрипта на черупката (или директно стартирайте партидния файл на Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Ако променливите на средата са зададени правилно, тогава горната команда трябва да отвори записващия скрипт на Gatling.
# 7) Обърнете внимание на порта Http / https в записващото устройство (изборът по подразбиране е 8000 или 8080) - това е портът, където е конфигуриран Http прокси слушателят за трафик на Gatling. Можем да променим този номер на порт според нашето удобство (или можем да продължим със стойностите по подразбиране).
алгоритъм за сортиране на сортиране c ++
# 8) Сега нека конфигурираме chrome проксито да слуша този порт - т.е. по същество искаме да насочим нашия Http трафик от браузъра през този прокси слушател или записващо устройство.
Следвайте това връзка за да настроите прокси на chrome за различна операционна система.
# 9) След като портът е конфигуриран, ние ще изпълним нашия сценарий на Хоствано приложение от Gatling.
# 10) Преди да започне изпълнението на сценария, първо ще трябва да конфигурираме името на пакета и името на класа за резултантния тестов скрипт и след това да стартираме прокси слушателя, като просто щракнем върху бутона „Старт“ в записващия скрипт.
# единадесет) Веднага след като прокси рекордерът стартира, ще се появи нов прозорец и по същество той улавя всички заявки, които се задействат, когато сценарият бъде изпълнен в браузъра.
# 12) Отидете до Хоствано приложение от Gatling в браузъра.
Ако можете да видите, че заявката е записана в прозореца на записващото устройство, това означава, че настройката на прокси за браузъра е правилна и записващото устройство на Gatling вече е в състояние да записва заявките съгласно тестовия сценарий, който се изпълнява (ако не се върнете към стъпка # 7, за да коригира прокси конфигурацията за браузър / система).
# 13) След като се уверим, че настройката работи добре, щракнете върху „Изчисти“, за да премахнете всичко от рекордера и започнете да изпълнявате сценария, както е споменато по-долу:
- Отидете до Хоствано приложение от Gatling
- Щракнете върху „Добавяне на нов компютър“. Уверете се, че сте попаднали на нов компютърен формуляр с URL адрес на браузъра като http://computer-database.gatling.io/computers/new
- Сега попълнете стойностите във формуляра с - Име на компютъра като Apple и компания като „Apple inc“, както и от падащото меню.
- Кликнете върху „Създаване на този компютър“ и ще бъдете пренасочени към начална страница
- Това е целият сценарий, който искаме да изпълним и да създадем скрипт за автоматизация, използвайки записващия скрипт Gatling. След като горните стъпки бъдат изпълнени, записващото устройство трябва да заснеме всички извършени HTTP повиквания и трябва да изглежда по-долу.
- Моля, обърнете внимание, че в записания скрипт има и няколко команди „PAUSE“. Това не са нищо друго освен „времето на мислене“, което записващото устройство улавя, за да имитира действията на потребителя - т.е. времето, необходимо между заявките. Тези стойности могат да се конфигурират / променят, след като скриптът бъде изпълнен, в зависимост от реалните ned.
# 14) За да завършите създаването на скрипта, щракнете върху „Stop & Save“ в прозореца на рекордера.
# петнадесет) Симулационният скрипт трябва да се създаде в директорията или папката за симулация, която се показва на екрана за конфигуриране на рекордера на Gatling.
Разбиране на сценария за симулация
След като скриптът за изпълнения сценарий бъде създаден, отидете до папката за симулация и отворете скрипта.
Моля, обърнете внимание, че скриптът ще бъде създаден като същия структуриран пакет, който е посочен преди стартирането на рекордера - в нашия случай той ще бъде com.learn.gatling и името на класа ще бъде “AddProduct”.
Нека отворим файла AddProduct.scala и се опитаме да преминем през различните раздели на скрипта.
Това може да се обясни както следва:
# 1) Конфигурация на настройката :i.e httpProtocol и заглавки - В този раздел се извършва цялостна конфигурация на данни за скрипта, като например:
- Тип протокол - Http или https,
- Други неща като baseUrl, които да се използват при следващи заявки.
- Информация за заглавието - обща информация за заглавието, както и заглавките, които трябва да се изпращат с индивидуални заявки. Обърнете се към header_0 и headers_2 в кодовия фрагмент по-долу:
val httpProtocol = http .baseUrl('http://computer-database.gatling.io') .inferHtmlResources(BlackList('''.*.js''', '''.*.css''', '''.*.gif''', '''.*.jpeg''', '''.*.jpg''', '''.*.ico''', '''.*.woff''', '''.*.woff2''', '''.*.(t|o)tf''', '''.*.png''', '''.*detectportal.firefox.com.*'''), WhiteList()) .acceptHeader ('text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8, application/signed-exchange;v=b3') .acceptEncodingHeader('gzip, deflate') .acceptLanguageHeader('en-GB,en-US;q=0.9,en;q=0.8') .upgradeInsecureRequestsHeader('1') .userAgentHeader('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36') val headers_0 = Map('Proxy-Connection' -> 'keep-alive') val headers_2 = Map( 'Origin' -> 'http://computer-database.gatling.io', 'Proxy-Connection' -> 'keep-alive')
# 2) Определение на сценария: Това съдържа действителния сценарий и реда на заявките, които трябва да бъдат изпълнени, за да се създаде отново сценария, който се изпълнява в прозореца на браузъра.
Също така, важен момент, който трябва да се отбележи, е - току-що споменахме относителния URL адрес тук за заявките, вместо пълния URL адрес. Това е, защото ще използваме httpProtocol конфигурация обсъдихме в точка # 1, където са дефинирани данните за конфигурацията на сценария.
val scn = scenario('AddProduct') .exec(http('request_0') .get('/computers') .headers(headers_0) .resources(http('request_1') .get('/computers/new') .headers(headers_0))) .pause(4) .exec(http('request_2') .post('/computers') .headers(headers_2) .formParam('name', 'apple') .formParam('introduced', '') .formParam('discontinued', '') .formParam('company', '1'))
# 3) Изпълнение на сценарий: Този раздел е най-важният раздел, който съдържа стъпките за настройка на сценария.
Конфигурацията за инжектиране тук е броят на потребителите / нишките или с други думи, натоварването, с което искаме да тестваме този сценарий.
Стойността по подразбиране за брой потребители винаги е 1 и това може да бъде променено преди изпълнението на сценария.
Също така, имайте предвид, че ние също използваме дефиницията на httpProtocol, която обсъдихме в точка # 1, която съдържа всички основни конфигурации за сценария, който трябва да бъде изпълнен.
setUp (scn.inject (atOnceUsers (1))). протоколи (httpProtocol)
Ще разгледаме повече подробности около конфигурацията за инжектиране и зареждане в следващия урок.
Изпълнение на тест с помощта на симулационен скрипт
Сега ще видим как да изпълним сценария, използвайки този симулационен скрипт, създаден с помощта на рекордера. Резултатният скрипт, който се създава, всъщност е клас, базиран на Scala, който съдържа подробности около сценария, изпълнен през браузъра.
Ето видеоурок за изпълнение на Gatling Script:
Инсталацията на Gatling идва със скрипт на обвивка (за потребители на Windows това е групов скрипт), който може да се използва за изпълнение на тази симулация.
Моля, следвайте стъпките по-долу, за да изпълните създадената симулация:
# 1) Придвижете се до папката bin на инсталацията на Gatling или просто отидете на - $ GATLING_HOME / bin
# две) Изпълнете файла Gatling.sh за Linux / Mac OS (или файла Gatling.bat за потребители на Windows).
# 3) В случай на наличие на множество файлове със скриптове в папката за симулация, скриптът ще подкани потребителя да избере симулацията, която потребителят иска да изпълни (За да симулирате това, създайте един и същ сценарий в различни пакети и когато се изпълни скриптът Gatling, можете да вижте, че показва 2 различни скрипта).
# 4) Избира се симулация (или е настроена по подразбиране на симулацията, налична в папката, ако има само един симулационен скрипт).
# 5) Сега скриптът подканва да добави незадължително описание на изпълнението. Можете просто да игнорирате това и да натиснете enter, за да започнете изпълнението на симулацията.
# 6) Докато симулацията се изпълнява, можете да видите отчетите за изпълнение, които се отпечатват на терминала и параметрите като време за отговор, общ брой заявки, успех / неуспехи и т.н. ще бъдат показани обобщен изглед, след като изпълнението на сценария завърши.
# 7) Gatling също така генерира подробен HTML-базиран отчет в края на изпълнението на сценария, който съдържа много различни точки от данни по отношение на изпълнения сценарий.
Ще разгледаме подробностите за генерирания отчет в следващия урок.
Предимства на използването на Gatling
Gatling предоставя много възможности, богати на функции, за да изгради добър тестов пакет за автоматизация на производителността, използвайки широкия Gatling DSL, както и нарастваща подкрепа от общността за помощ и получаване на отговори на запитвания.
Тук е важно да се отбележи, че за разлика от други инструменти като JMeter, Gatling включва стръмна крива на обучение, но вместо това дава много възможности за програмиране, за да създаде стабилен и напълно функционален набор от симулационни скриптове за тестване на производителността и натоварването.
Някои от тези предимства са следните:
- Той е лек и позволява да се използва една нишка за повече от една заявка, за разлика от повечето други перфектни инструменти, където нишката е приравнена на потребител.
- Използването на една нишка за множество заявки позволява на Gatling да мащабира повече и да генерира по-голямо натоварване дори на една машина.
- Gatling предоставя възможност за работа в разпределен режим, когато има огромен товар, който трябва да се симулира.
- Осигурява поддръжка за много други протоколи, различни от HTTP,например, Websockets, MQTT, JDBC и др. Всички могат да бъдат тествани с помощта на Gatling.
- Gatling предоставя богат на функции DSL - специфичен за домейн език, който има лесен синтаксис и предоставя мощни възможности, когато се комбинират за създаване на симулационен скрипт.
- Той също така предоставя много сложни възможности за управление на симулация като циклични конструкции, симулиране на време за мислене, ограничаване на заявки извън желания RPS и т.н.
- Той разполага с богати възможности за отчитане и те също могат да бъдат персонализирани в зависимост от изискванията.
Заключение
В този урок ние засегнахме основите на използването на Gatling като инструмент за тестване на натоварване по избор. С експресивния DSL и отличната поддръжка за HTTP протокол, Gatling бързо набира популярност и се използва като инструмент за избор за мнозина.
Също така научихме за рекордера Gatling и бегач на скриптове Gatling с примерен симулационен скрипт, който помогна да се разбере основната концепция за запис на симулационен скрипт, който след това може да бъде изпълнен в бъдеще с помощта на изпълнителя на Gatling Script.
В следващия урок ще разгледаме писането на Gatling скриптове като проекти на Scala - т.е. без да използваме рекордера и ще разберем шаблоните за отчети, които се генерират, когато Gatling завърши изпълнението на симулацията.
Препоръчително четене
- Тестване на натоварване с уроци за HP LoadRunner
- Корелация - Тестване на натоварване с LoadRunner
- Урок за тестване на накисване - Какво е тестване на накисване
- Тестване на натоварване с помощта на LoadUI - безплатен инструмент за тестване на натоварване с отворен код
- Преглед на WebLOAD - Първи стъпки с инструмента за тестване на натоварване WebLOAD
- Урок за деструктивно изпитване и безразрушително тестване
- Урок за тестване на използваемост: Пълно ръководство за начало
- Тестване на ефективността срещу тестване на натоварване срещу тестване на стрес (разлика)