gatling tutorial getting started with gatling load testing
Aquest vídeo tutorial de Gatling proporciona una revisió completa de Gatling, que inclou funcions, passos d'instal·lació i exemples d'ús de Gatling Simulation Recorder:
Gatling és un marc de proves de codi obert basat en Scala. Actualment guanya molta popularitat amb més de 3 milions de descàrregues en els darrers 3 anys.
Està disponible com a codi obert i també com a variant empresarial anomenada Gatling Frontline amb més integracions i suport de l’equip de Gatling. Però es poden treballar tots els casos d’ús pràctics mitjançant l’edició de la comunitat Gatling, que és gratuïta i de codi obert.
Què aprendreu:
Tutorial de vídeo Gatling
Vegem els passos necessaris per començar a utilitzar Gatling. També tractarem algunes de les funcions importants de Gatling com a part d’aquest tutorial.
Aquí teniu un vídeo tutorial sobre la introducció de Gatling:
Instal·lació
Gatling es pot instal·lar de dues maneres diferents. Això es pot explicar de la següent manera:
# 1) Utilitzant Gatling com a eina autònoma, només podeu instal·lar l’instal·lador / aplicació mitjançant el Gatling oficial lloc web i seguiu les instruccions d'instal·lació.
Tingueu en compte que la carpeta zip instal·lada conté fitxers shell i batch, cosa que fa que Gatling sigui adequat per utilitzar-se en diferents sistemes operatius, com ara Windows, MacOS, Linux / Unix, etc.
L'instal·lador no és res més que un gravador de scripts Gatling basat en Java, que registra les accions de l'usuari a través del navegador a l'eina i que després es pot convertir en un script o escenari que cal carregar i provar. Ho veurem en detall a les properes seccions.
# 2) Una altra manera d’instal·lar / utilitzar Gatling és fer-lo servir com a paquet a través de Maven / Gradle o mitjançant les eines de construcció de Scala.
Un punt important a destacar aquí és que els scripts de Gatling es basen en Scala, per tant, crear un projecte basat en Scala podria utilitzar la biblioteca Gatling que pot ser importada per qualsevol eina de construcció com Maven / Gradle o SBT.
Característiques de Gatling
Aquestes són les següents:
# 1) Arquitectura asíncrona i fils lleugers
Gatling té una arquitectura avançada basada en el joc d'eines Akka i és totalment asíncrona. Això li dóna un avantatge en comparació amb altres eines de proves de rendiment com JMeter, on cada fil correspon a un sol usuari.
Aquí, un únic fil pot simular diversos usuaris, ja que té una arquitectura de missatgeria a través del model Actor.
En poques paraules, una prova de Gatling pot gestionar diversos usuaris concurrents per màquina en comparació amb altres eines com Jmeter i, per tant, resulta en un estalvi considerable de CPU i RAM.
Lectura recomanada => Model d'actor i arquitectura asíncrona de Gatling
# 2) El llenguatge específic del domini fa que les proves siguin llegibles
Els scripts Gatling s’escriuen a Scala i tenen un DSL amigable que fa que els scripts siguin molt llegibles i siguin menys propensos als errors. Per obtenir més informació sobre Gatling DSL, consulteu aquí .
# 3) Protocol Agnostic Support
Gatling admet una àmplia varietat de protocols, inclosos sockets HTTP, HTTPS i web. També disposa d’extensions per provar càrregues de consultes / scripts SQL.
# 4) Informes i afirmacions
Gatling proporciona suport immediat per a la creació d'informes HTML detallats per als escenaris que s'executen i també té la possibilitat d'aplicar afirmacions sobre les sol·licituds individuals dels escenaris: Per exemple, Temps de resposta, validació de contingut JSON, etc.
# 5) Gravador de proves amigable basat en GUI
Gatling ve amb un gravador de proves gràfiques fàcil d'utilitzar que pot generar scripts de simulació registrant l'activitat de l'usuari o les accions de l'usuari en un navegador web. Els scripts generats són scripts basats en Scala que es podrien executar en un futur i es poden modificar segons els requisits.
Aplicació sota prova i enregistrament de guions de mostra
Per crear simulacions de mostra, utilitzarem L’aplicació allotjada oficialment de Gatling
Utilitzarem el gravador de simulació de Gatling per començar a crear càrregues i a fer proves de rendiment. Abans d’anar més enllà, analitzem l’escenari on volem carregar la prova.
L’escenari és un cas d’ús que intentem carregar la prova. Què és això, significa essencialment que volem imitar l'acció de l'usuari en un escenari o un conjunt de passos que cal sotmetre a prova.
Per exemple, suposem que un usuari accedeix a qualsevol lloc web de comerç electrònic com Amazon.com i cerca un producte, l’afegeix al carretó i, finalment, fa la compra amb la informació de pagament.
Tota l'acció de l'usuari és un escenari únic que conté passos individuals com
- Navegació al lloc web Amazon.com.
- S'està esperant que es carregui la pàgina.
- Cerqueu un producte mitjançant la barra de cerca de productes.
- Afegir el producte al carretó.
- Anar a la cistella i pagar amb el producte.
- Realització del pagament.
Per tal de carregar la prova d’aquest escenari complet, des del punt de vista del sistema o del servidor, hem d’entendre que no són res més que una col·lecció o una sèrie de trucades a l’API que s’estan realitzant al servidor de fons, i això és el que volem a la prova de rendiment.
Per a aquest exemple, utilitzarem l'escenari següent a l'aplicació allotjada de Gatling:
# 1) Aneu a Aplicació allotjada Gatling .
# 2) Feu clic a 'Afegeix un ordinador nou'.
# 3) Seleccioneu el nom de l'ordinador com a Apple i el nom de l'empresa com a 'Apple Inc' al menú desplegable, tal com es mostra a la imatge següent.
# 4) Feu clic a 'Crea aquest equip' després d'introduir-ne els detalls.
Configureu Gatling Recorder i enregistreu el primer guió
En aquesta secció, analitzarem com configurar el gravador de proves Gatling per crear una simulació per a l’escenari que hem comentat a la secció anterior.
Utilitzarem un gravador de simulació Gatling, que es troba en una forma molt senzilla, un servidor intermediari HTTP: heu de familiaritzar-vos amb altres eines de gravació HTTP com Fiddler o servidor intermediari Chrome Http, etc. enregistrament en un guió de simulació de prova.
Per tant, vegem primer com configurar l'enregistrador Gatling:
# 1) Un cop instal·lada la carpeta zip Gatling, simplement descomprimiu la carpeta a la ubicació on voleu que s’instal·li el Gatling.
tipus d'errors en les proves de programari
# 2) Després d'aquest pas, hem d'establir 2 variables d'entorn anomenades - GATLING_HOME (per al directori inicial de Gatling) i GATLING_CONF (per a la ubicació de la carpeta de configuració de Gatling).
Depenent del tipus de sistema operatiu (és a dir, Windows o Mac o Linux), definiu aquestes variables d'entorn amb els valors següents:
GATLING_HOME = {gatling-install-directory}
Exemple:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-directory} / conf
Exemple:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Una vegada que les variables estiguin configurades per validar-les, només cal prémer al comandament el terminal - exportació | adherència 'GATLING' i la sortida hauria de mostrar les 2 variables d'entorn que acabem de configurar.
# 3) Un cop configurades aquestes variables d'entorn, hem d'iniciar el nostre gravador de scripts Gatling. Per al sistema operatiu basat en Windows, hi ha un fitxer per lots proporcionat amb la instal·lació de Gatling i per al sistema operatiu basat en Linux / MacOS, es proporciona un fitxer de shell.
A continuació es mostra l’estructura de fitxers de la carpeta bin:
# 4) Per tant, segons el tipus de sistema operatiu, podem triar el tipus de fitxer que s’executarà per a la gravadora en execució. Tingueu en compte que aquí hi ha dos fitxers que utilitzarem:
- Fitxer Gatling.sh / Gatling.bat - per executar l'script de simulació.
- Fitxer Recorder.sh / recorder.bat - per executar / obrir el gravador de simulació Gatling.
# 5) Permet executar l'script de la gravadora per obrir la gravadora Gatling. Utilitzeu el terminal Mac / Linux per executar l'script de l'intèrpret d'ordres (o executar directament el fitxer per lots Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Si les variables d'entorn s'estableixen correctament, l'ordre anterior hauria d'obrir el gravador de scripts Gatling.
# 7) Fixeu-vos en el port Http / https de la gravadora (la selecció per defecte és 8000 o 8080): aquest és el port on està configurat l’oient de proxy de trànsit Http de Gatling. Podem canviar aquest número de port segons la nostra conveniència (o podem continuar amb els valors predeterminats).
preguntes d’entrevistes a c ++
# 8) Ara configurem el servidor intermediari Chrome per escoltar aquest port, és a dir, bàsicament volem encaminar el trànsit Http des del navegador a través d’aquest oient o gravador de proxy.
Segueix això enllaç per configurar un servidor intermediari a Chrome per a diferents sistemes operatius.
# 9) Un cop configurat el port, executarem el nostre escenari a Aplicació allotjada Gatling.
# 10) Abans que comenci l'execució de l'escenari, primer haurem de configurar el nom del paquet i el nom de la classe per a l'script de prova resultant i, a continuació, iniciar l'escoltador de proxy simplement fent clic al botó 'Inici' del gravador de scripts.
# 11) Tan aviat com s'iniciï la gravadora de proxy, apareixerà una nova finestra i, bàsicament, captura totes les sol·licituds que s'executen quan s'executa l'escenari al navegador.
# 12) Aneu a Aplicació allotjada Gatling al navegador.
Si podeu veure que la sol·licitud està enregistrada a la finestra de la gravadora, això vol dir que la configuració del servidor intermediari per al navegador és correcta i que la gravadora Gatling ara pot registrar les sol·licituds segons l’escenari de prova que s’està executant (si no, torneu al pas # 7 per corregir la configuració del servidor intermediari per al navegador / sistema).
# 13) Ara, un cop estem segurs que la configuració funciona bé, feu clic a 'Esborra' per eliminar-ho tot de la gravadora i Comenceu a executar l'escenari tal com s'esmenta a continuació:
- Aneu a Aplicació allotjada Gatling
- Feu clic a 'Afegeix un botó d'ordinador nou'. Assegureu-vos d’arribar a un nou formulari d’ordinador amb l’URL del navegador com a http://computer-database.gatling.io/computers/new
- Ara empleneu els valors del formulari amb: el nom de l'ordinador com a Apple i l'empresa com a 'Apple inc', així com des del menú desplegable.
- Feu clic a 'Crea aquest ordinador' i us redirigirà a pàgina d'inici
- Aquest és l'escenari complet que volem executar i crear un script d'automatització mitjançant el gravador de scripts Gatling. Un cop executats els passos anteriors, la gravadora hauria de capturar totes les trucades HTTP que s’estan realitzant i hauria de ser la següent.
- Tingueu en compte que també hi ha un parell d’ordres “PAUSE” al guió gravat. No són res més que el 'temps de pensament' que el gravador capta per imitar l'acció de l'usuari, és a dir, el temps que es triga entre les sol·licituds. Aquests valors es poden configurar / canviar un cop executat l'script en funció de neds reals.
# 14) Per completar la creació de l'script, feu clic a 'Atura i desa' a la finestra de la gravadora.
# 15) L’escriptura de simulació s’ha de crear al directori o carpeta de simulació que es mostra a la pantalla de configuració de la gravadora Gatling.
Comprensió de l’escriptura de simulació
Un cop creat l'script de l'escenari executat, aneu a la carpeta de simulació i obriu l'script.
Tingueu en compte que el guió es crearà com el mateix paquet estructurat que s’especificava abans d’iniciar la gravadora; en el nostre cas, serà com.learn.gatling i el nom de la classe serà 'AddProduct'.
Obrim el fitxer AddProduct.scala i provem de passar per les diferents seccions de l'script.
Això es pot explicar de la següent manera:
# 1) Configuració de la configuració :és a dir httpProtocol i capçaleres - En aquesta secció es realitza la configuració general de les dades de l'script, com ara:
- Tipus de protocol: Http o https,
- Altres coses com baseUrl que s'utilitzaran en sol·licituds posteriors.
- Informació de capçalera: informació de capçalera comuna, així com les capçaleres que s’enviaran amb sol·licituds individuals. Consulteu header_0 i headers_2 al fragment de codi següent:
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) Definició de l'escenari: Conté l'escenari real i l'ordre de les sol·licituds que cal executar per tornar a crear l'escenari que s'estava executant a la finestra del navegador.
A més, un punt important que cal tenir en compte aquí és que acabem d’esmentar l’URL relatiu aquí per a les sol·licituds, en lloc de l’URL complet. Això es deu al fet que utilitzarem Configuració de httpProtocol hem comentat al punt # 1, on es defineixen les dades de configuració de l'escenari.
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) Execució de l'escenari: Aquesta secció és la secció més important que conté els passos de configuració de l'escenari.
La configuració d'injectar aquí és el nombre d'usuaris / fils o, dit d'una altra manera, la càrrega amb què volem provar aquest escenari.
El valor per defecte per a diversos usuaris sempre és 1 i es pot canviar abans que s'executi l'escenari.
A més, tingueu en compte que també estem utilitzant la definició httpProtocol que hem comentat al punt # 1, que conté totes les configuracions bàsiques per a l’escenari a executar.
setUp (scn.inject (atOnceUsers (1))). protocols (httpProtocol)
Veurem més detalls sobre la configuració d’injecció i càrrega al proper tutorial.
Execució de la prova mitjançant script de simulació
Ara, veurem com executar l’escenari mitjançant aquest script de simulació que es va crear amb la gravadora. L'escriptura resultant que es crea és en realitat una classe basada en Scala que conté detalls sobre l'escenari que s'ha executat a través del navegador.
Aquí teniu un vídeo tutorial per a l'execució de scripts Gatling:
La instal·lació de Gatling inclou un script de shell (per als usuaris de Windows, és un script per lots) que es podria utilitzar per executar aquesta simulació.
Seguiu els passos següents per executar la simulació creada:
# 1) Aneu a la carpeta bin de la instal·lació de Gatling o simplement aneu a - $ GATLING_HOME / bin
# 2) Executeu el fitxer Gatling.sh per a sistemes operatius Linux / Mac (o el fitxer Gatling.bat per a usuaris de Windows).
# 3) En cas que hi hagi diversos fitxers de seqüències presents a la carpeta de simulació, el guió demanarà a l'usuari que seleccioni la simulació que l'usuari vulgui executar (per simular-ho, creeu el mateix escenari en diferents paquets i, quan s'executi l'script de Gatling, podeu vegeu que mostra 2 scripts diferents).
# 4) La simulació està seleccionada (o està configurada per defecte a la simulació present a la carpeta si només hi ha un script de simulació disponible).
# 5) Ara l'script demana que afegiu una descripció d'execució opcional. Simplement podeu ignorar-ho i prémer Retorn per iniciar l'execució de la simulació.
# 6) Mentre s’executa la simulació, es poden veure informes d’execució que s’imprimeixen al terminal i es mostraran els paràmetres com el temps de resposta, les sol·licituds totals, els èxits / fallades, etc., la vista resumida un cop finalitzada l’execució de l’escenari.
# 7) Gatling també genera un informe detallat basat en HTML al final de l'execució de l'escenari, que conté molts punts de dades diferents respecte a l'escenari executat.
Veurem els detalls de l'informe generat al proper tutorial.
Avantatges d'utilitzar Gatling
Gatling proporciona moltes funcions riques en funcions per tal de crear un bon conjunt de proves d’automatització de rendiment aprofitant l’ampli DSL de Gatling, així com un creixent suport de la comunitat per obtenir ajuda i obtenir respostes a les consultes.
Aquí és important tenir en compte que, a diferència d’altres eines com JMeter, Gatling implica una corba d’aprenentatge pronunciada, però en lloc d’això, proporciona moltes capacitats de programació per crear un conjunt robust i completament funcional de guions de simulació de proves de rendiment i càrrega.
Alguns d’aquests avantatges són els següents:
- És lleuger i permet utilitzar un únic fil per a més d’una sol·licitud, a diferència de la majoria d’altres eines de perfeccionament en què un fil s’equipara a un usuari.
- L’ús d’un únic fil per a múltiples sol·licituds permet a Gatling escalar més i generar una càrrega més gran fins i tot en una mateixa màquina.
- Gatling proporciona la possibilitat d’executar-se en mode distribuït quan hi ha una gran càrrega que s’ha de simular.
- Proporciona suport per a molts altres protocols que no siguin HTTP,per exemple, Websockets, MQTT, JDBC, etc., es poden provar el rendiment mitjançant Gatling.
- Gatling proporciona un DSL ric en funcions - Llenguatge específic de domini, que té una sintaxi fàcil i proporciona capacitats potents quan es combina per crear un script de simulació.
- També proporciona moltes funcions complexes de control de simulació com construccions en bucle, simular el temps de pensament, limitar les peticions més enllà de la RPS desitjada, etc.
- Té funcions d’informació completes i es poden personalitzar també en funció dels requisits.
Conclusió
En aquest tutorial, hem abordat els conceptes bàsics de l’ús de Gatling com a eina de prova de càrrega que trieu. Amb l'expressiu DSL i un excel·lent suport per al protocol HTTP, Gatling guanya popularitat ràpidament per ser utilitzat com a eina d'elecció per a molts.
També vam aprendre sobre la gravadora Gatling i el corredor de scripts Gatling amb un script de simulació de mostra que va ajudar a entendre el concepte bàsic d’enregistrar un script de simulació que es podria executar en el futur amb l’executor de Gatling Script.
Al següent tutorial, tractarem d’escriure scripts de Gatling com a projectes Scala, és a dir, sense fer servir la gravadora i entendre les plantilles d’informes que es generen quan Gatling completa l’execució de la simulació.
Lectura recomanada
- Prova de càrrega amb tutorials HP LoadRunner
- Correlació: proves de càrrega amb LoadRunner
- Tutorial de proves de remull: què és la prova de remull
- Prova de càrrega mitjançant LoadUI: una eina de prova de càrrega de codi obert i lliure
- Revisió WebLOAD: Introducció a l'eina de proves de càrrega de WebLOAD
- Tutorial de proves destructives i proves no destructives
- Tutorial de proves d'usabilitat: una guia d'introducció completa
- Prova de rendiment vs Prova de càrrega vs Prova d’estrès (diferència)