SlideShare a Scribd company logo
1 of 21
Open Source Load Testing -
JMeter, Gatling & Taurus
Guy Salton
Sr. Domain Expert
Agenda
1. Introduction to the Gatling Tool
2. Gatling Compared with JMeter
3. Introduction to Taurus
4. Live Demos
5. Q&A Section
Introduction to Gatling Tool
Key Features of Gatling
● Command-line tool
● Scala language for scripting
● Post-test HTML reports
Value of Gatling for Users
● Full power of programming language
● Easy to use custom code pieces and extra libraries
● Flexible load injection profiles
● Asynchronous concurrency model
Demo: Basic Usage of Gatling
● Package, imports, simulation class
● Simulation ≈ scenario + injection profile + protocol
● Simulation file placement
● Simulation file naming convention
Gatling Compared with JMeter
VS
Scripting Approach
● Simple GUI vs Scala for techies
● In JMeter you see one component at a time / Scala is code
● JMeter JMX files are not VCS-friendly / Scala files are
● Code re-use and modularity in JMeter is huge pain
● Coding skills requirement is a limitation for Gatling
VS
Load Profiles
● Arrivals-based injection
● Concurrency-based injection
● RPS throttling
● All is doable in JMeter + Plugins
● In Gatling, it is not as obvious as in JMeter
VS
Community & Popularity
● JMeter is far more popular in net number of users
● Gatling users are more skilled techies on average
● More content on JMeter than on Gatling
● More tools, integrations and services support JMeter
VS
Problems of Gatling Tool
What can be Improved for Gatling
● Easier start for beginners
● Rich real-time report
● Reports storage - collaborative and persistent
● (no) Distributed testing
● Startup time
Introduction to Taurus
http://gettaurus.org
Overview of Taurus
● Simplified scripting
● Convenience for everyday users
● Automation-oriented
● Reporting and scaling
● Simplification for beginners - Scala, files layout, load
● Adds rich real-time reports
● Enables persistent reports storage (through BlazeMeter)
● Enables distributed tests (through BlazeMeter
● Enables heterogeneous tests (Gatling + Selenium)
Value of Taurus for Gatling Users
Live Demos
+
Demo: Simplified Scripting
● HTTP requests, headers
● Assertions
● Simplified load injection settings
+
Demo: Real-Time Reporting and Cloud Scaling
● Distributed testing with 1000s of machines
● Multi-geo tests enablement
● Reports are persistent and have trends
+
Final Summary
1. Gatling is very similar to JMeter
2. Requires more technical skills
3. Taurus mitigates its problems
4. BlazeMeter for reports and scaling
Q&A Time
Next Steps
● Create your free account at blazemeter.com
● Taurus – gettaurus.org
● Gatling – gatling.io
● Performance Testing Blog – blazemeter.com/blog
● Learning Resources – blazemeter.com/resources
Stay tuned!

More Related Content

What's hot

Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with JmeterPrashanth Kumar
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101Nikita Sharma
 
Postman: An Introduction for Testers
Postman: An Introduction for TestersPostman: An Introduction for Testers
Postman: An Introduction for TestersPostman
 
Gatling overview
Gatling overviewGatling overview
Gatling overviewViral Jain
 
Spring Security
Spring SecuritySpring Security
Spring SecuritySumit Gole
 
Continuous Performance Testing with Taurus and Jmeter
Continuous Performance Testing with Taurus and JmeterContinuous Performance Testing with Taurus and Jmeter
Continuous Performance Testing with Taurus and JmeterAgile Testing Alliance
 
Postman 101 for Students
Postman 101 for StudentsPostman 101 for Students
Postman 101 for StudentsPostman
 
Gatling Performance Workshop
Gatling Performance WorkshopGatling Performance Workshop
Gatling Performance WorkshopSai Krishna
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 frameworkSvetlin Nakov
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
 
Performance testing with jmeter
Performance testing with jmeter Performance testing with jmeter
Performance testing with jmeter Knoldus Inc.
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
Apache JMeter - A brief introduction
Apache JMeter - A brief introductionApache JMeter - A brief introduction
Apache JMeter - A brief introductionsilenceIT Inc.
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and MochaAtish Narlawar
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber Knoldus Inc.
 

What's hot (20)

Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with Jmeter
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101
 
Postman: An Introduction for Testers
Postman: An Introduction for TestersPostman: An Introduction for Testers
Postman: An Introduction for Testers
 
Gatling overview
Gatling overviewGatling overview
Gatling overview
 
Spring Security
Spring SecuritySpring Security
Spring Security
 
Continuous Performance Testing with Taurus and Jmeter
Continuous Performance Testing with Taurus and JmeterContinuous Performance Testing with Taurus and Jmeter
Continuous Performance Testing with Taurus and Jmeter
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
 
GraalVM
GraalVMGraalVM
GraalVM
 
Postman 101 for Students
Postman 101 for StudentsPostman 101 for Students
Postman 101 for Students
 
Gatling Performance Workshop
Gatling Performance WorkshopGatling Performance Workshop
Gatling Performance Workshop
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 framework
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 
Performance testing with jmeter
Performance testing with jmeter Performance testing with jmeter
Performance testing with jmeter
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google
 
SELENIUM PPT.pdf
SELENIUM PPT.pdfSELENIUM PPT.pdf
SELENIUM PPT.pdf
 
Apache JMeter - A brief introduction
Apache JMeter - A brief introductionApache JMeter - A brief introduction
Apache JMeter - A brief introduction
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
 

Similar to Open Source Load Testing: JMeter, Gatling and Taurus

Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With GatlingKnoldus Inc.
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projectsIBACZ
 
Modern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving EcosystemsModern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving EcosystemsJulian Warszawski
 
Find the bottleneck of your system
Find the bottleneck of your systemFind the bottleneck of your system
Find the bottleneck of your systemJian-Hong Pan
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerFederico Palladoro
 
Bdd test automation analysis
Bdd test automation analysisBdd test automation analysis
Bdd test automation analysisssuser2e8d4b
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...Linaro
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLinaro
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDGonzalo Marcos Ansoain
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...NETWAYS
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing ToolsDr Ganesh Iyer
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dslKnoldus Inc.
 
Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...
Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...
Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...InfluxData
 

Similar to Open Source Load Testing: JMeter, Gatling and Taurus (20)

Gatling
Gatling Gatling
Gatling
 
Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With Gatling
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Modern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving EcosystemsModern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving Ecosystems
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Find the bottleneck of your system
Find the bottleneck of your systemFind the bottleneck of your system
Find the bottleneck of your system
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on docker
 
Bdd test automation analysis
Bdd test automation analysisBdd test automation analysis
Bdd test automation analysis
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at Linaro
 
Logging for Containers
Logging for ContainersLogging for Containers
Logging for Containers
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dsl
 
Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...
Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...
Wayfair Storefront Performance Monitoring with InfluxEnterprise by Richard La...
 

Recently uploaded

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 

Recently uploaded (20)

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 

Open Source Load Testing: JMeter, Gatling and Taurus

  • 1. Open Source Load Testing - JMeter, Gatling & Taurus Guy Salton Sr. Domain Expert
  • 2. Agenda 1. Introduction to the Gatling Tool 2. Gatling Compared with JMeter 3. Introduction to Taurus 4. Live Demos 5. Q&A Section
  • 4. Key Features of Gatling ● Command-line tool ● Scala language for scripting ● Post-test HTML reports
  • 5. Value of Gatling for Users ● Full power of programming language ● Easy to use custom code pieces and extra libraries ● Flexible load injection profiles ● Asynchronous concurrency model
  • 6. Demo: Basic Usage of Gatling ● Package, imports, simulation class ● Simulation ≈ scenario + injection profile + protocol ● Simulation file placement ● Simulation file naming convention
  • 8. Scripting Approach ● Simple GUI vs Scala for techies ● In JMeter you see one component at a time / Scala is code ● JMeter JMX files are not VCS-friendly / Scala files are ● Code re-use and modularity in JMeter is huge pain ● Coding skills requirement is a limitation for Gatling VS
  • 9. Load Profiles ● Arrivals-based injection ● Concurrency-based injection ● RPS throttling ● All is doable in JMeter + Plugins ● In Gatling, it is not as obvious as in JMeter VS
  • 10. Community & Popularity ● JMeter is far more popular in net number of users ● Gatling users are more skilled techies on average ● More content on JMeter than on Gatling ● More tools, integrations and services support JMeter VS
  • 12. What can be Improved for Gatling ● Easier start for beginners ● Rich real-time report ● Reports storage - collaborative and persistent ● (no) Distributed testing ● Startup time
  • 14. Overview of Taurus ● Simplified scripting ● Convenience for everyday users ● Automation-oriented ● Reporting and scaling
  • 15. ● Simplification for beginners - Scala, files layout, load ● Adds rich real-time reports ● Enables persistent reports storage (through BlazeMeter) ● Enables distributed tests (through BlazeMeter ● Enables heterogeneous tests (Gatling + Selenium) Value of Taurus for Gatling Users
  • 17. Demo: Simplified Scripting ● HTTP requests, headers ● Assertions ● Simplified load injection settings +
  • 18. Demo: Real-Time Reporting and Cloud Scaling ● Distributed testing with 1000s of machines ● Multi-geo tests enablement ● Reports are persistent and have trends +
  • 19. Final Summary 1. Gatling is very similar to JMeter 2. Requires more technical skills 3. Taurus mitigates its problems 4. BlazeMeter for reports and scaling
  • 21. Next Steps ● Create your free account at blazemeter.com ● Taurus – gettaurus.org ● Gatling – gatling.io ● Performance Testing Blog – blazemeter.com/blog ● Learning Resources – blazemeter.com/resources Stay tuned!

Editor's Notes

  1. Gatling is a cross-platform JAVA application Its main purpose is for load and performance testing It has no gui, no web ui, only command line tool style of usage It uses Scala language for scripting – Scala is very much like java, and the whole gatling tool is build with Java and runs on top of JVM. Scala has some specific features which differs it from Java.
  2. Gatling is very good with flexibility of the load injection profiles - out of the box its capabilities are superior to jmeter. It can be compared to Jmeter+plugins Gatling uses Asynchronous concurrency model - It doesn't’t require a operating system thread for each virtual user, instead it uses Asynchronous model where 1 thread can serve many virtual users and many connections. Many users like this because it lets you generate many users from a single machine.
  3. To install gatling just unpack the zip folder BasicSimulation.scala Package declaration which is optional Set of imports we need to reference the gatling dsl instructions for our Scala script We declare the simulation file - this is one of the key things, it specifies the test execution Then the actual configuration for the protocol: http target http with some headers, our protocol definition which we will use later and the scenario flow itself The scenario is the sequence of steps to perform which represents the virtual users behavior Last, on the setUp part, we specify the load profile and specify which protocol to use (Httpconf that we configured before) Command line to run gatling: This is the command Line to run: ~/.bzt/gatling-taurus/2.3.0/bin/gatling.sh -sf . -m we set the simulation folder parameter to the current directory in my case -m makes it more silent (if we don’t use it, gatling will ask me a lot of questions) it take a few seconds for gatling to start and then if I have several simulations declared in the same directory, it will ask me which one to use It ran my test, the test specifies just 1 iteration so its really fast, it gives me some basic numbers and also a hyperlink to an html report that I can open in a browser this is the report of gatling tool, this is the basic gatling usage Simulation is the joint is scenario+injection profile+protocol You should point gatling to the location of your simulation file There is also an important simulation files naming convention - the file holding the simulation, should match the name of the simulation class because of JVM usage, the way to resolve the classes and find classes is to have matching names
  4. Gatling and JMeter mostly match to each other in terms of throughput that they can produce Scripting approach is the major difference JMeter is easier to start with for non-technical people - it doesn’t require knowledge of java naming conventions or programming language structures
  5. if we compare gatling to jmeter+plugins than the load profiles match Arrival based injection is when you look at your google analytics and see that within an hour, you see 500 users coming to your website and doing their job and then leaving - this means that you don’t always know the amount of concurrent users but you only know your arrivals amount.
  6. No rich real-time report - this is crucial as in modern load testing, you can’t allow yourself to run a 1 hour load test and see the results only after 1 hour. This is a really important gap We need our reports to be collaborative and persistent because we don’t work alone! We work in teams, usually multi-geo teams and we need the abiliy to share reports of tests, even before the tests are completed. We need the ability to see trends and compare the results of today’s test to the test that we ran 1 month ago and see if there was an improvement - usually there will be a segregation in performance and we will need to pay additional attention to improve and and more resource on performance. just having a couple of reports laying around is simply not enough for modern performance testing There is simply no distributed testing in gatling - in jmeter there is some and it has limitation but gatling is simply limited to running only on 1 machine out of the box  For large tests, it takes a bit of time for it to startup but this is deep inside gatling and we can’t really do anything to fix it
  7. We tried to collect the solutions for typical problems of jmeter, gatling, selenium and other open-source tools in Taurus File layout - you don’t need to think about where to place your files and how to specify command line parameters for gatling
  8. Show gatling-req.yml and run it. Show the artifact with Scala script that was generated Show gatling-existing.yml
  9. Show gatling-req.yml -cloud Show trend charts Show ‘bzt-locations’ and then multi location gatling test and run it - show previous test that I ran on multi locations
  10. gatling works on the protocol level so it doesn’t parse and execute Ajax requests automatically, you will have to record the interaction between the web page and the backend, and then use the generated script to simulate the network level of the communication. this is the same for jmeter - jmeter does its best to parse the static requests from responses, but for Ajax requests you have to program or record the jmeter script to do the Ajax requests (same thing for gatling)