SlideShare a Scribd company logo
Xtreme Testing
Gatling
Virtual User
Request protocol
Request Protocol
scenario("Standard User")
.exec(http("Access Github").get("https://github.com"))
.pause(2, 3)
.exec(http("Search for
'gatling'").get("https://github.com/search?q=gatling"))
.pause(2)
Scenario
Scenario
scenario("Standard User")
.exec(http("Access Github").get("https://github.com"))
.pause(2, 3)
.exec(http("Search for
'gatling'").get("https://github.com/search?q=gatling"))
.pause(2)
Simulation
Simulation
val stdUser = scenario("Standard User")
setUp(
stdUser.inject(atOnceUsers(2000)),
stdUser.inject(nothingFor(60 seconds), rampUsers(5) over
(400 seconds)),
stdUser.inject(rampUsers(500) over (200 seconds)))
Session
Feeders
Feeders
■ CSV feeder
■ JSON feeder
■ JDBC feeder
■ Sitemap feeder
■ Redis feeder
Feeder
val feeder = csv("foo.csv").random
val scn1 = scenario("LoginSimulation").feed(feeder)
http("loginmultiuser")
.post("/login")
.headers(headers_0)
.formParam("email", "${username}")
.formParam("password", "${password}")
.check(substring("${displayname}").exists)
Feeder
val feeder = csv("foo.csv").random
.queue // default behavior: use an Iterator on the underlying sequence
.random // randomly pick an entry in the sequence
.shuffle // shuffle entries, then behave live queue
.circular // go back to the top of the sequence once the end is reached
Checks
Checks
■ Defining the check type
■ Extracting
■ Transforming
■ Validating
■ Saving
http("My Request").get("myUrl").check(status.is(200))
http("loginoneuser") .post("/login").headers(headers_0).formParam("email",
username).formParam("password", password)
.check(headerRegex("Set-Cookie", "XSRF-TOKEN=(.*)").saveAs("xsrf_token"))
Assertions
Assertions
// Assert that the max response time of all requests is less than 100 ms
setUp(scn).assertions(global.responseTime.max.lt(100))
// Assert that every request has no more than 5% of failing requests
setUp(scn).assertions(forAll.failedRequests.percent.lte(5))
// Assert that the percentage of failed requests named "Index" in the group "Search"
// is exactly 0 %
setUp(scn).assertions(details("Search" / "Index").failedRequests.percent.is(0))
// Assert that the rate of requests per seconds for the group "Search"
setUp(scn).assertions(details("Search").requestsPerSec.between(100, 1000))
References
■ https://gatling.io/documentation/
Thank You
For questions or suggestions
mailto: xt-hyderabad@thoughtworks.com
nalinim@thoughtworks.com
Xtreme Testing

More Related Content

What's hot

Gevent rabbit rpc
Gevent rabbit rpcGevent rabbit rpc
Gevent rabbit rpc
Aleksandr Mokrov
 
CouchDB Day NYC 2017: JSON Documents
CouchDB Day NYC 2017: JSON DocumentsCouchDB Day NYC 2017: JSON Documents
CouchDB Day NYC 2017: JSON Documents
IBM Cloud Data Services
 
お題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part A
お題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part Aお題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part A
お題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part A
Kazuchika Sekiya
 
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
Puppet
 
CouchDB Day NYC 2017: Replication
CouchDB Day NYC 2017: ReplicationCouchDB Day NYC 2017: Replication
CouchDB Day NYC 2017: Replication
IBM Cloud Data Services
 
Cooking pies with Celery
Cooking pies with CeleryCooking pies with Celery
Cooking pies with Celery
Aleksandr Mokrov
 
Go Web Development
Go Web DevelopmentGo Web Development
Go Web Development
Cheng-Yi Yu
 
ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019
ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019
ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019
cocodrips
 
PuppetDB: A Single Source for Storing Your Puppet Data - PUG NY
PuppetDB: A Single Source for Storing Your Puppet Data - PUG NYPuppetDB: A Single Source for Storing Your Puppet Data - PUG NY
PuppetDB: A Single Source for Storing Your Puppet Data - PUG NY
Puppet
 
CouchDB Day NYC 2017: Mango
CouchDB Day NYC 2017: MangoCouchDB Day NYC 2017: Mango
CouchDB Day NYC 2017: Mango
IBM Cloud Data Services
 
Expression Language 3.0
Expression Language 3.0Expression Language 3.0
Expression Language 3.0
Everton Tavares
 
Paver: the build tool you missed
Paver: the build tool you missedPaver: the build tool you missed
Paver: the build tool you missedalmadcz
 
Ruby new wheels_condensed
Ruby new wheels_condensedRuby new wheels_condensed
Ruby new wheels_condensedosake
 
Isolated development in python
Isolated development in pythonIsolated development in python
Isolated development in python
Andrés J. Díaz
 
Git guide
Git guideGit guide
G*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIII
G*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIIIG*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIII
G*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIIITakuma Watabiki
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for Developers
DevDay Dresden
 

What's hot (20)

Gevent rabbit rpc
Gevent rabbit rpcGevent rabbit rpc
Gevent rabbit rpc
 
CouchDB Day NYC 2017: JSON Documents
CouchDB Day NYC 2017: JSON DocumentsCouchDB Day NYC 2017: JSON Documents
CouchDB Day NYC 2017: JSON Documents
 
お題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part A
お題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part Aお題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part A
お題でGroovyăƒ—ăƒ­ă‚°ăƒ©ăƒŸăƒłă‚°: Part A
 
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
 
CouchDB Day NYC 2017: Replication
CouchDB Day NYC 2017: ReplicationCouchDB Day NYC 2017: Replication
CouchDB Day NYC 2017: Replication
 
Cooking pies with Celery
Cooking pies with CeleryCooking pies with Celery
Cooking pies with Celery
 
Go Web Development
Go Web DevelopmentGo Web Development
Go Web Development
 
ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019
ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019
ăƒăƒŒăƒ ăƒĄă‚€ăƒˆăźăŸă‚ă«docstringă‚’æ›žă“ă†ïŒ pyconjp2019
 
PuppetDB: A Single Source for Storing Your Puppet Data - PUG NY
PuppetDB: A Single Source for Storing Your Puppet Data - PUG NYPuppetDB: A Single Source for Storing Your Puppet Data - PUG NY
PuppetDB: A Single Source for Storing Your Puppet Data - PUG NY
 
CouchDB Day NYC 2017: Mango
CouchDB Day NYC 2017: MangoCouchDB Day NYC 2017: Mango
CouchDB Day NYC 2017: Mango
 
Expression Language 3.0
Expression Language 3.0Expression Language 3.0
Expression Language 3.0
 
Paver: the build tool you missed
Paver: the build tool you missedPaver: the build tool you missed
Paver: the build tool you missed
 
Ruby new wheels_condensed
Ruby new wheels_condensedRuby new wheels_condensed
Ruby new wheels_condensed
 
Isolated development in python
Isolated development in pythonIsolated development in python
Isolated development in python
 
Git guide
Git guideGit guide
Git guide
 
Intro django
Intro djangoIntro django
Intro django
 
G*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIII
G*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIIIG*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIII
G*ă«ăŠă‘ă‚‹ă‚œăƒ•ăƒˆă‚Šă‚§ă‚ąăƒ†ă‚čăƒˆăƒ»ă‚·ăƒŒă‚șンIII
 
Test innode
Test innodeTest innode
Test innode
 
clonehd01
clonehd01clonehd01
clonehd01
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for Developers
 

Similar to Gatling.pptx

JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 SpringKiyotaka Oku
 
JavaZone 2014 - goto java;
JavaZone 2014 - goto java;JavaZone 2014 - goto java;
JavaZone 2014 - goto java;
Martin (高銏䞁) Skarsaune
 
goto java; (Jfokus)
goto java; (Jfokus)goto java; (Jfokus)
Jersey Guice AOP
Jersey Guice AOPJersey Guice AOP
Jersey Guice AOP
Domenico Briganti
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°
scalaconfjp
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
Ngoc Dao
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
Peter Eisentraut
 
ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čトする
ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čăƒˆă™ă‚‹ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čトする
ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čトする
Shunsuke Maeda
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and GroovyKiyotaka Oku
 
Testing Java Code Effectively
Testing Java Code EffectivelyTesting Java Code Effectively
Testing Java Code Effectively
Andres Almiray
 
Drive chrome(headless) with puppeteer
Drive chrome(headless) with puppeteerDrive chrome(headless) with puppeteer
Drive chrome(headless) with puppeteer
VodqaBLR
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 201910 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
Matt Raible
 
Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...
Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...
Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...
VĂ­ctor Bolinches
 
Groovy & Grails: Scripting for Modern Web Applications
Groovy & Grails: Scripting for Modern Web ApplicationsGroovy & Grails: Scripting for Modern Web Applications
Groovy & Grails: Scripting for Modern Web Applications
rohitnayak
 
The definitive guide to java agents
The definitive guide to java agentsThe definitive guide to java agents
The definitive guide to java agents
Rafael Winterhalter
 
Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"
Fwdays
 
jQuery Foot-Gun Features
jQuery Foot-Gun FeaturesjQuery Foot-Gun Features
jQuery Foot-Gun Features
dmethvin
 
GroovyServ - Technical Part
GroovyServ - Technical PartGroovyServ - Technical Part
GroovyServ - Technical PartYasuharu Nakano
 
What is new in Go 1.8
What is new in Go 1.8What is new in Go 1.8
What is new in Go 1.8
John Hua
 
Android Bootstrap
Android BootstrapAndroid Bootstrap
Android Bootstrap
donnfelker
 

Similar to Gatling.pptx (20)

JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
 
JavaZone 2014 - goto java;
JavaZone 2014 - goto java;JavaZone 2014 - goto java;
JavaZone 2014 - goto java;
 
goto java; (Jfokus)
goto java; (Jfokus)goto java; (Jfokus)
goto java; (Jfokus)
 
Jersey Guice AOP
Jersey Guice AOPJersey Guice AOP
Jersey Guice AOP
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ăƒ©ă‚€ăƒ–ă‚łăƒŒăƒ‡ă‚Łăƒłă‚°
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 
ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čトする
ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čăƒˆă™ă‚‹ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čトする
ć€–éƒšç’°ćąƒăžăźäŸć­˜ă‚’ăƒ†ă‚čトする
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and Groovy
 
Testing Java Code Effectively
Testing Java Code EffectivelyTesting Java Code Effectively
Testing Java Code Effectively
 
Drive chrome(headless) with puppeteer
Drive chrome(headless) with puppeteerDrive chrome(headless) with puppeteer
Drive chrome(headless) with puppeteer
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 201910 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
 
Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...
Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...
Paradigma FP y OOP usando técnicas avanzadas de Programación | Programacion A...
 
Groovy & Grails: Scripting for Modern Web Applications
Groovy & Grails: Scripting for Modern Web ApplicationsGroovy & Grails: Scripting for Modern Web Applications
Groovy & Grails: Scripting for Modern Web Applications
 
The definitive guide to java agents
The definitive guide to java agentsThe definitive guide to java agents
The definitive guide to java agents
 
Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"Denys Serhiienko "ASGI in depth"
Denys Serhiienko "ASGI in depth"
 
jQuery Foot-Gun Features
jQuery Foot-Gun FeaturesjQuery Foot-Gun Features
jQuery Foot-Gun Features
 
GroovyServ - Technical Part
GroovyServ - Technical PartGroovyServ - Technical Part
GroovyServ - Technical Part
 
What is new in Go 1.8
What is new in Go 1.8What is new in Go 1.8
What is new in Go 1.8
 
Android Bootstrap
Android BootstrapAndroid Bootstrap
Android Bootstrap
 

More from Nalini Kanth

QAing the security way!
QAing the security way!QAing the security way!
QAing the security way!
Nalini Kanth
 
Performance testing
Performance testingPerformance testing
Performance testing
Nalini Kanth
 
Io t ppt
Io t pptIo t ppt
Io t ppt
Nalini Kanth
 
Integration of automation framework with ci tools
Integration of automation framework with ci toolsIntegration of automation framework with ci tools
Integration of automation framework with ci tools
Nalini Kanth
 
Docker in qa space
Docker in qa spaceDocker in qa space
Docker in qa space
Nalini Kanth
 

More from Nalini Kanth (7)

QAing the security way!
QAing the security way!QAing the security way!
QAing the security way!
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Io t ppt
Io t pptIo t ppt
Io t ppt
 
Integration of automation framework with ci tools
Integration of automation framework with ci toolsIntegration of automation framework with ci tools
Integration of automation framework with ci tools
 
Docker in qa space
Docker in qa spaceDocker in qa space
Docker in qa space
 
Q&a mainss
Q&a mainssQ&a mainss
Q&a mainss
 
Q&a prelims
Q&a prelimsQ&a prelims
Q&a prelims
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni GarcĂ­a
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 

Gatling.pptx

  • 4. Request Protocol scenario("Standard User") .exec(http("Access Github").get("https://github.com")) .pause(2, 3) .exec(http("Search for 'gatling'").get("https://github.com/search?q=gatling")) .pause(2)
  • 6. Scenario scenario("Standard User") .exec(http("Access Github").get("https://github.com")) .pause(2, 3) .exec(http("Search for 'gatling'").get("https://github.com/search?q=gatling")) .pause(2)
  • 8. Simulation val stdUser = scenario("Standard User") setUp( stdUser.inject(atOnceUsers(2000)), stdUser.inject(nothingFor(60 seconds), rampUsers(5) over (400 seconds)), stdUser.inject(rampUsers(500) over (200 seconds)))
  • 11. Feeders ■ CSV feeder ■ JSON feeder ■ JDBC feeder ■ Sitemap feeder ■ Redis feeder
  • 12. Feeder val feeder = csv("foo.csv").random val scn1 = scenario("LoginSimulation").feed(feeder) http("loginmultiuser") .post("/login") .headers(headers_0) .formParam("email", "${username}") .formParam("password", "${password}") .check(substring("${displayname}").exists)
  • 13. Feeder val feeder = csv("foo.csv").random .queue // default behavior: use an Iterator on the underlying sequence .random // randomly pick an entry in the sequence .shuffle // shuffle entries, then behave live queue .circular // go back to the top of the sequence once the end is reached
  • 15. Checks ■ Defining the check type ■ Extracting ■ Transforming ■ Validating ■ Saving http("My Request").get("myUrl").check(status.is(200)) http("loginoneuser") .post("/login").headers(headers_0).formParam("email", username).formParam("password", password) .check(headerRegex("Set-Cookie", "XSRF-TOKEN=(.*)").saveAs("xsrf_token"))
  • 17. Assertions // Assert that the max response time of all requests is less than 100 ms setUp(scn).assertions(global.responseTime.max.lt(100)) // Assert that every request has no more than 5% of failing requests setUp(scn).assertions(forAll.failedRequests.percent.lte(5)) // Assert that the percentage of failed requests named "Index" in the group "Search" // is exactly 0 % setUp(scn).assertions(details("Search" / "Index").failedRequests.percent.is(0)) // Assert that the rate of requests per seconds for the group "Search" setUp(scn).assertions(details("Search").requestsPerSec.between(100, 1000))
  • 19. Thank You For questions or suggestions mailto: xt-hyderabad@thoughtworks.com nalinim@thoughtworks.com Xtreme Testing