gatling tutorial getting started with gatling load testing
Овај видео водич за Гатлинг пружа свеобухватан преглед Гатлинга, укључујући карактеристике, кораке за инсталацију и примере употребе Гатлинг Симулатор Рецордер-а:
Гатлинг је оквир за тестирање отвореног кода заснован на Сцали. Ових дана стиче велику популарност са више од 3 милиона преузимања у последње 3 године.
Доступан је као опен соурце, као и под називом Ентерприсе Гатлинг Фронтлине уз више интеграција и подршку тима из Гатлинга. Али на свим случајевима практичне употребе може се радити помоћу издања заједнице Гатлинг, које је бесплатно и отвореног кода.
Шта ћете научити:
Видео лекције за Гатлинг
Погледајмо кораке потребне за почетак рада са Гатлингом. Такође ћемо покрити неке од важних карактеристика Гатлинга као део овог водича.
Ево видео упутства о уводу у Гатлинг:
Инсталација
Гатлинг се може инсталирати на 2 различита начина. Ово се може објаснити на следећи начин:
# 1) Користећи Гатлинг као самостални алат, можете једноставно инсталирати инсталациони програм / апликацију, користећи званични Гатлинг веб сајт и следите упутства за инсталацију.
Имајте на уму да инсталирана зип мапа садржи и љуске и батцх датотеке што чини Гатлинг погодним за употребу у различитим оперативним системима попут - Виндовс, МацОС, Линук / Уник итд.
Инсталациони програм није ништа друго до снимач скрипти Гатлинг заснован на Јави, који бележи радње корисника кроз прегледач у алату и који би потом могао бити претворен у скрипту или сценарио који треба учитати и тестирати. То ћемо детаљно видети у наредним одељцима.
#два) Други начин за инсталацију / употребу Гатлинг-а је коришћењем пакета кроз Мавен / Градле или кроз Сцала алате за изградњу.
Овде је важно напоменути да су све Гатлингове скрипте засноване на Сцали, па би стварање пројекта заснованог на Сцали могло користити Гатлингову библиотеку коју могу увести било који алати за изградњу, попут Мавен / Градле или СБТ.
Карактеристике Гатлинга
То су следећи:
# 1) Асинхрона архитектура и лагане нити
Гатлинг има напредну архитектуру засновану на Акка алату и потпуно је асинхрон. То му даје предност у поређењу са другим алатима за тестирање перформанси попут ЈМетер-а где свака нит одговара једном кориснику.
Овде једна нит може да симулира више корисника јер има архитектуру размене порука кроз модел Ацтор.
Укратко, Гатлингов тест може да обради одређени број истовремених корисника по машини у поређењу са другим алатима као што је Јметер, што резултира знатном уштедом у ЦПУ и РАМ меморији.
Препоручено читање => Модел глумца и асинхрона архитектура Гатлинга
# 2) Језик специфичан за домену чини тестове читљивим
Гатлинг скрипте су написане у Сцали и имају пријатељски ДСЛ који скрипте чини врло читљивим и мање склоним грешкама. За више детаља о Гатлинг ДСЛ-у, погледајте овде .
# 3) Агностичка подршка протокола
Гатлинг подржава широк спектар протокола, укључујући ХТТП, ХТТПС и Веб утичнице. Такође има екстензије за тестирање учитавања СКЛ упита / скрипти.
# 4) Извештавање и тврдње
Гатлинг пружа готову подршку за креирање детаљних ХТМЛ извештаја за извршене сценарије, а такође има могућности примене тврдњи на појединачне захтеве у сценаријима - На пример, Времена одговора, ЈСОН валидација садржаја итд.
# 5) Пријатељски снимач тестова заснован на ГУИ-у
Гатлинг долази са једноставним графичким снимачем теста који може да генерише симулациону скрипту бележењем активности корисника или корисничких радњи у веб прегледачу. Генериране скрипте су скрипте засноване на Сцали које се могу извршавати у будућности и које се могу модификовати према захтевима.
Апликација у тесту и снимање узорка скрипте
За креирање симулације узорка користићемо Гатлингова званично хостована апликација
Користићемо Гатлингов снимач симулација да бисмо започели са стварањем оптерећења и тестирањем перформанси. Пре него што кренемо даље, разговарајмо о сценарију у којем желимо да учитамо тест.
Сценариј је случај употребе који покушавамо да учитамо у тесту. Шта ово, у суштини значи да желимо да имитирамо корисничку акцију у сценарију или скупу корака које треба тестирати.
На пример, претпоставимо да корисник приступи било којој веб локацији е-трговине као што је Амазон.цом и претражује производ и додаје га у корпу и на крају плати са информацијама о плаћању.
Цела ова корисничка акција је један сценарио који садржи појединачне кораке попут
- Прелазак на веб локацију Амазон.цом.
- Чекајући да се страница учита.
- Тражење производа путем траке за претрагу производа.
- Додавање производа у корпу.
- Одлазак у корпу и плаћање уз производ.
- Уплата.
Да бисмо тестирали овај комплетни сценарио из перспективе система или сервера, морамо да схватимо да то није ништа друго него збирка или серија АПИ позива који се упућују на позадински сервер и то је оно што желимо у тесту перформанси.
За овај пример ћемо користити следећи сценарио за хостовану апликацију Гатлинг:
# 1) Иди на Гатлинг хостована апликација .
#два) Кликните на „Додај нови рачунар“.
# 3) Изаберите име рачунара као Аппле, а назив компаније као „Аппле Инц“ са падајућег менија, као што је приказано на доњој слици.
# 4) Кликните на „Направи овај рачунар“ након уноса детаља.
Поставите Гатлинг Рецордер и снимите прву скрипту
У овом одељку ћемо разговарати о томе како поставити рекордер Гатлинговог теста како бисмо креирали симулацију за сценарио о којем смо говорили у претходном одељку.
Користићемо Гатлингов симулацијски снимач који је у врло једноставној форми, ХТТП прокси - морате бити упознати са другим ХТТП алатима за снимање, као што су Фиддлер или цхроме Хттп проки, итд. Дакле, Гатлинг снимач је сличан додатним функцијама претварања снимање у скрипту за симулацију теста.
Па хајде да прво видимо како да поставимо Гатлинг снимач:
# 1) Једном када је Гатлинг зип мапа инсталирана, једноставно распакујте мапу на место на којем желите да се Гатлинг инсталира.
најбољи оперативни системи свих времена
#два) Након овог корака треба да поставимо 2 променљиве окружења под називом - ГАТЛИНГ_ХОМЕ (за кућни директоријум Гатлинг) и ГАТЛИНГ_ЦОНФ (за локацију директоријума цонфиг Гатлинга).
У зависности од типа ОС-а (тј. Виндовс или Мац или Линук), подесите ове променљиве окружења са вредностима испод:
ГАТЛИНГ_ХОМЕ = {гатлинг-инсталл-дирецтори}
Пример:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
ГАТЛИНЕ_ЦОНФ = {гатлинг-инсталл-дирецтори} / цонф
Пример:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Једном када су променљиве постављене за валидацију, можете једноставно притиснути наредбу на терминалу - извоз | дршка „ГАТЛИНГ“ а излаз треба да приказује 2 променљиве окружења које смо управо поставили.
# 3) Једном када су постављене ове променљиве окружења, морамо покренути наш снимач скрипти Гатлинг. За ОС заснован на оперативном систему Виндовс постоји батцх датотека која се испоручује са инсталацијом Гатлинга, а за ОС заснован на Линук / МацОС постоји датотека љуске.
Испод је структура датотека мапе бин:
# 4) Дакле, у зависности од типа ОС-а, можемо одабрати врсту датотеке коју ћемо извршити за покренут рекордер. Имајте на уму да овде имамо 2 датотеке које ћемо користити:
- Гатлинг.сх / Гатлинг.бат датотека - да покренете симулациону скрипту.
- Датотека Рецордер.сх / рецордер.бат - да покренете / отворите снимач симулације Гатлинга.
# 5) Омогућимо покретање скрипте снимача да бисмо отворили снимач Гатлинга. Користите Мац / Линук терминал за покретање скрипте љуске (или директно покрените Виндовс батцх датотеку).
. /$GATLING_HOME/bin/recorder.sh
# 6) Ако су променљиве окружења постављене правилно, тада би горња команда требала отворити снимач скрипти Гатлинг.
# 7) Обратите пажњу на Хттп / хттпс порт у диктафону (подразумевани избор је 8000 или 8080) - ово је порт на коме је конфигурисан Хттп проки преслушавач промета у Гатлингу. Овај број порта можемо променити према својој погодности (или можемо наставити са подразумеваним вредностима).
бесплатна заштита од малвера у реалном времену 2017
# 8) Хајде сада да конфигуришемо цхроме проки да преслушава овај порт - тј. У основи желимо да усмеримо наш Хттп саобраћај из прегледача преко овог проки преслушавача или диктафона.
Прати ово линк да бисте поставили прокси на хрому за различите ОС.
# 9) Једном када је порт конфигурисан, тада ћемо извршити наш сценарио на Гатлинг хостована апликација.
# 10) Пре него што започне извршење сценарија, прво ћемо морати да конфигуришемо име пакета и име класе за резултујућу тестну скрипту, а затим покренимо проки слушалац једноставним кликом на дугме „Старт“ у снимачу скрипти.
#Једанаест) Чим се проки рекордер покрене, појавиће се нови прозор, који у суштини обухвата све захтеве који се покрећу када се сценарио изврши у прегледачу.
# 12) Иди на Гатлинг хостована апликација у прегледачу.
Ако видите да је захтев забележен у прозору снимача, то значи да је подешавање проксија за прегледач исправно и да је снимач Гатлинга сада у могућности да сними захтеве према тестном сценарију који се извршава (ако се не вратите на корак # 7 да поправи проки конфигурацију за прегледач / систем).
# 13) Сада, када се уверимо да подешавање ради у реду, кликните на „Цлеар“ да бисте уклонили све са диктафона и започните извршавање сценарија као што је доле споменуто:
- Иди на Гатлинг хостована апликација
- Кликните на „Додај дугме новог рачунара“. Обавезно се нађите на новом рачунарском обрасцу са УРЛ-ом прегледача као хттп://цомпутер-датабасе.гатлинг.ио/цомпутерс/нев
- Сада у облику попуните вредности са - Назив рачунара као Аппле и компанија као „Аппле инц“, као и из падајућег менија.
- Кликните на „Креирај овај рачунар“ и бићете преусмерени на Почетна страница
- Ово је цео сценарио који желимо да извршимо и креирамо скрипту за аутоматизацију помоћу снимања скрипти Гатлинг. Једном када се изврше горњи кораци, диктафон би требало да ухвати све ХТТП позиве који су упућени и требало би да изгледа као у наставку.
- Имајте на уму да у снимљеној скрипти постоји и неколико наредби „ПАУЗИ“. То нису ништа друго до „време размишљања“ које снимач снима да би имитирао радњу корисника - тј. Време потребно између захтева. Ове вредности се могу конфигурисати / променити након извршавања скрипте, у зависности од стварних нед.
# 14) Да бисте довршили израду скрипте, кликните „Стоп & Саве“ у прозору снимача.
# петнаест) Скрипта за симулацију треба да се креира у директоријуму или фасцикли за симулацију која се приказује на екрану за конфигурацију Гатлинг снимача.
Разумевање скрипте за симулацију
Када се креира скрипта за извршени сценарио, идите до фасцикле за симулацију и отворите скрипту.
Имајте на уму да ће се скрипта креирати као исти пакет структуриран који је наведен пре покретања диктафона - у нашем случају ће бити цом.леарн.грчање а назив класе ће бити „АддПродуцт“.
Отворимо датотеку АддПродуцт.сцала и покушајмо да прођемо кроз различите одељке скрипте.
Ово се може објаснити на следећи начин:
# 1) Конфигурација подешавања :тј хттпПротоцол и заглавља - У овом одељку је извршена целокупна конфигурација података за скрипту, као што су:
- Тип протокола - Хттп или хттпс,
- Остале ствари попут басеУрл-а које ће се користити у наредним захтевима.
- Информације о заглављу - уобичајене информације о заглављу, као и заглавља која се шаљу са појединачним захтевима. Погледајте хеадер_0 и хеадерс_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) Дефиниција сценарија: Садржи стварни сценарио и редослед захтева које треба извршити да би се поново креирао сценарио који је био покренут у прозору прегледача.
Такође, овде треба имати на уму да смо управо поменули релативне УРЛ адресе овде за захтеве, уместо комплетне УРЛ адресе. То је зато што ћемо користити хттпПротоцол конфигурација расправљали смо у тачки # 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 и то се може променити пре извршавања сценарија.
Такође, имајте на уму да користимо и дефиницију хттпПротоцол о којој смо говорили у тачки # 1 која садржи све основне конфигурације за сценарио који треба извршити.
сетУп (сцн.ињецт (атОнцеУсерс (1))). протоколи (хттпПротоцол)
У следећем упутству ћемо размотрити више детаља о конфигурацији убризгавања и учитавања.
Извођење теста коришћењем симулационе скрипте
Сада ћемо видети како да изведемо сценарио користећи ову симулациону скрипту која је креирана помоћу диктафона. Резултатска скрипта која се креира заправо је класа заснована на Сцали која садржи детаље око сценарија који је извршен кроз прегледач.
Ево видео упутства за Гатлинг Сцрипт Екецутион:
Инсталација Гатлинг долази са скриптом љуске (за кориснике Виндовс-а то је батцх скрипта) која се може користити за извршавање ове симулације.
Слиједите кораке у наставку да бисте извршили креирану симулацију:
# 1) Дођите до директоријума бин инсталације Гатлинга или једноставно идите на - $ ГАТЛИНГ_ХОМЕ / бин
#два) Покрените датотеку Гатлинг.сх за Линук / Мац ОС (или датотеку Гатлинг.бат за кориснике Виндовс-а).
# 3) У случају да је у фасцикли симулације присутно више датотека скрипти, скрипта ће затражити од корисника да одабере симулацију коју корисник жели да покрене (Да бисте то симулирали, креирајте исти сценарио у различитим пакетима, а када се покрене скрипта Гатлинг, можете видите да приказује 2 различите скрипте).
# 4) Изабрана је симулација (или је постављена на подразумевану вредност симулације која је присутна у фасцикли ако је на располагању само једна симулациона скрипта).
# 5) Скрипта сада тражи да се дода опциони опис извођења. Можете то једноставно занемарити и притиснути ентер да бисте започели извршавање симулације.
# 6) Док се симулација извршава, можете видети како се извештаји о извршењу штампају на терминалу и параметри попут времена одзива, укупног броја захтева, успеха / неуспеха итд. Приказат ће се резимирани приказ када се извршавање сценарија доврши.
# 7) Гатлинг такође генерише детаљан извештај заснован на ХТМЛ-у на крају завршетка извршења сценарија који садржи пуно различитих тачака података у односу на извршени сценарио.
Детаље генерисаног извештаја размотрићемо у следећем упутству.
Предности употребе Гатлинга
Гатлинг пружа мноштво могућности богатих функцијама како би се створио добар тестни пакет за аутоматизацију перформанси који користи широки Гатлинг ДСЛ, као и све већу подршку заједнице за помоћ и добијање одговора на упите.
Овде је важно напоменути да за разлику од других алата попут ЈМетер-а, Гатлинг заиста укључује стрму кривуљу учења, али уместо тога, даје пуно програмских могућности за стварање робусног и потпуно функционалног скупа скрипти за симулацију тестирања перформанси и оптерећења.
Неке од ових предности су следеће:
- Лаган је и омогућава употребу једне нити за више захтева, за разлику од већине других перф алата где је нит изједначена са корисником.
- Коришћење једне нити за више захтева омогућава Гатлингу да се више скалира и генерише веће оптерећење чак и на једној Машини.
- Гатлинг пружа могућност покретања у дистрибуираном режиму када постоји огромно оптерећење које треба симулирати.
- Пружа подршку за многе друге протоколе осим ХТТП-а,на пример, Вебсоцкетс, МКТТ, ЈДБЦ итд. Сви могу бити тестирани помоћу Гатлинга.
- Гатлинг пружа ДСЛ богат језиком - Домаин Специфиц Лангуаге, који има лаку синтаксу и пружа моћне могућности када се комбинују за креирање симулационе скрипте.
- Такође пружа мноштво сложених могућности симулационе контроле као што су петље конструкције, симулирање времена размишљања, ограничавање захтева изнад жељеног РПС-а итд.
- Има богате могућности извештавања из кутије и они се такође могу прилагодити у зависности од захтева.
Закључак
У овом упутству додирнули смо основе коришћења Гатлинга као изабраног алата за испитивање оптерећења. Захваљујући експресивном ДСЛ-у и одличној подршци за ХТТП протокол, Гатлинг брзо стиче популарност и користи се као средство избора за многе.
Такође смо сазнали о снимачу Гатлинга и покретачу скрипти Гатлинг са узорком скрипте за симулацију која је помогла разумевању основног концепта снимања скрипте за симулацију која би потом могла да се изврши у будућности помоћу извршиоца Гатлинг Сцрипта.
У следећем упутству ћемо обрађивати писање Гатлинг скрипти као Сцала пројекте - тј. Без употребе диктафона и разумети предлошке извештаја који се генеришу када Гатлинг заврши извршавање симулације.
Препоручено читање
- Испитивање оптерећења помоћу ХП ЛоадРуннер водича
- Корелација - Испитивање оптерећења помоћу ЛоадРуннера
- Водич за тестирање намакања - шта је тестирање потапања
- Испитивање оптерећења помоћу ЛоадУИ - бесплатног алата за тестирање учитавања отвореног кода
- Преглед ВебЛОАД - Почетак рада са алатком за тестирање учитавања ВебЛОАД
- Водич за испитивање разарања и испитивања без разарања
- Водич за испитивање употребљивости: Комплетан водич за почетак
- Испитивање перформанси вс испитивање оптерећења вс тестирање напрезања (разлика)