Master Apache JMeter From load testing to DevOps.
Master Apache JMeter From load testing to DevOps. (The book)
$25.00
Minimum price
$35.00
Suggested price
Master Apache JMeter From load testing to DevOps.

This book is 95% complete

Last updated on 2018-11-17

About the Book

Throughout the chapters, you will discover the richness of JMeter and learn how to use it efficiently and effectively.

From automatic recording that allows you to gain in productivity and realism in writing your scripts, through correlation that makes your test realistic and reusable across environments, the authors put you on the right track to realize your scalability testing campaigns.

They then explore the different protocols offered by the tool through examples drawn from their professional experiences.

Finally, they show how to integrate the tool into the DevOps approach, create professional reports and exploit the richness of its eco-system to integrate new protocols, enrich its monitoring or leverage its power through the use of the Cloud.

About the Authors

Antonio Gomes Rodrigues
Antonio Gomes Rodrigues

Antonio Gomes Rodrigues is an expert in the field of application performance for more than 10 years.

His missions led him to work:


  • On the performance of high traffic websites
  • On the performance of an application for brokers
  • On the performance of rich clients, cloud applications, web applications, etc.
  • With various profilers: JProfiler, Yourkit, PerfView, etc.
  • With various APM: Dynatrace, AppDynamics, Introscope, NewRelic, etc.
  • With various load testing tools: JMeter, LoadRunner, etc.
  • In various missions: load tests, implementation of performance strategies, training, performance audits, troubleshooting, etc.


He shares his knowledge of application performance at conferences, on his blog and during technical book reviews.


He is currently a committer and a PMC member of the JMeter project within the Apache Software Foundation.

Philippe Mouawad
Philippe Mouawad

Philippe Mouawad is a technical expert and architect in J2E and Web environments within the company Ubik-Ingenierie.

He has been using JMeter since 2009 as part of performance improvements missions, load testing of intranet or e-commerce websites and trainings on JMeter.

He has been contributing to JMeter since 2009 first through patches and then as a 'committer' and member of Project Management Committee at Apache.

Among his main contributions, the CSS selector Extractor, the Boundary Extractor, the Backend Listener (allowing to interface among others Graphite, InfluxDB or ElasticSearch),

part of the Web reporting feature and the optimization of the performances of the core, its stabilization and various ergonomic improvements, to his credit more than 400 bugs/improvements.

He also contributes to the JMeter-Plugins project, among his contributions are Redis DataSet, Graphs Generator Listener and various patches to different plugins.

He also manages the JMeter Maven Plugin project, he has been managing it since version 2.3.0 ensuring its compatibility with last JMeter releases and improving its

dependencies management and reporting mechanism.

He is currently a committer and a PMC member of the JMeter project within the Apache Software Foundation.

His Apache ID is pmouawad.

He is also a lead developer of the Ubik Load Pack solution, a set of Enterprise Plugins which provides support for protocols that are not natively supported by JMeter.

Finally, he contributes to the Ubik-Ingenierie blog.

Milamber
Milamber

Bruno Demion, better known as Milamber, is a French computer scientist expatriated in Morocco since 2002, currently living in Témara (near Rabat).

He works in a technology consulting and expertise company as a partner, senior technical expert and technical architect.

Through his work and passion for IT, Milamber has strong skills in performance, troubleshooting, security and technical architectures around web technologies.

Since December 2003, he has been working with JMeter to perform load tests in various missions and training courses.

He contributes as much as possible to the JMeter project in his spare time, in particular on the translation into French of the graphical interface, corrections of anomalies as well as some behaviors (proxy https, new results tree, icon bar, etc.).

He is currently a committer, PMC member and the PMC Chair of the Apache JMeter project within the Apache Software Foundation - ASF. He is also an official ASF member. His Apache ID is milamber.

Milamber also has a personal blog with many articles and tutorials on Apache JMeter, some of which inspired this book.

About the Contributors

Alexander Podelko
Alexander Podelko

Board director for the Computer Measurement Group (CMG), a worldwide organization of performance and capacity management professionals.

Over the last twenty years Alex Podelko supported major performance initiatives for OracleHyperionAetna, and Intel in different roles including performance tester, performance analyst, performance architect, and performance engineer.

Currently he is Consulting Member of Technical Staff at Oracle, responsible for performance testing and tuning of Hyperion (a.k.a. Enterprise Performance Management and Business Intelligence) products. Before specializing in performance, Alex led software development for Rodnik Software.

Having more than thirty years of overall experience in the software industry, he holds a PhD in Computer Science from Gubkin University and an MBA from Bellevue University.

Alex periodically talks and writes about performance-related topics, advocating tearing down silo walls between different groups of performance professionals. He currently serves as a board director for the Computer Measurement Group (CMG), a worldwide organization of performance and capacity management professionals.

Table of Contents

  • Copyright
  • Presentation of the authors
    • Antonio Gomes Rodrigues
    • Bruno Demion (Milamber)
    • Philippe Mouawad (Philippe M.)
  • Preface by Alexander Podelko
    • Alexander Podelko bio
  • Quick start with JMeter
    • Our process
    • Setup JMeter to record our browsing session
    • Configure your browser
    • Save our script
    • Validate our script with only one user
    • Setup our load test and launch it
    • Run our load test and analyze it
  • JMeter overview
    • JMeter overview
    • Types of load tests supported
    • Supported test protocols
    • Reporting
  • Designing a test case
    • Introduction
    • Warning
    • Type of load test
      • Performance/Load Test
      • Stress Test
      • Soak/Endurance Test
      • Failover/Resilience Test
      • Spike Test
      • Other
    • Load model
      • Concurrency user (Closed model)
      • Throughput (Open model)
      • Arrivals rate (Open model)
    • Structure of a test case
      • Ramp Up
      • Plateau/Step
      • Ramp Down
      • Example: step load test
    • Identify critical business scenarios to script
      • Frequent
      • Vital
      • Risky
    • How many virtual users do I need?
    • Parameters to take into account when creating a scenario
      • Vary user input
      • Reuse the same values
      • Vary the type of users
      • Vary and adjust the reflection times
      • Adjust the ramp up time
      • Adjust the test duration
      • Error handling
      • User connection type
      • Size of the scenarios
      • Meeting point/rendez-vous
      • Cookie Management
      • Cache Management
    • Conclusion
  • Preparing the test environments (injectors and tested system)
    • Introduction
    • Setting up the injectors
      • Never host injectors on the same servers as the tested system
      • Calibrating your test
      • Monitor injectors
      • IP Spoofing
      • Use the latest version
      • JMeter memory configuration
      • Avoid load testing behind a proxy
    • Preparation of the tested system
      • A tested environment
      • An environment consistent with the target
      • Datasets
      • Take into account calls to third party services
      • Disable protection systems
      • Isolated environment
      • License Management
      • Monitoring
    • Conclusion
  • Being productive with JMeter
    • Introduction
    • Good practices when recording a script
      • Use the HTTP(S) Test Script Recorder element
      • BlazeMeter Chrome Extension
      • Pre-populate HTTP Request Defaults before recording the script
      • Static Resources
      • Put timeouts
      • Apply a naming convention for transactions/requests
      • Global Assertion
      • Mutualize script parts
      • Recording an HTTPS website
      • Keyboard shortcuts
    • Debugging a script
      • Using View Results Tree
      • Capture errors
      • Debug Sampler
      • jp@gc - Dummy Sampler
      • Log Viewer
      • BlazeMeter Step-by-step Debugger
      • The old-fashioned way in the console
      • Use a third-party tool
    • Finalize a script
      • Change the name of a transaction according to a parameter
      • Share an object between different Thread Groups
      • Get the most out of CSV files
      • Mark a response as an error
      • Using Regular Expression Extractor on content with spaces and multiple lines
      • Execute an action based on the status of the previous one
      • Add headers to our HTTP requests
      • Waiting with While Controller
      • The right Extractor at the right time
      • Handle cookies
    • Conclusion
  • Load Testing a website
    • A few theory
    • Set up with JMeter
    • Methodology
    • Put into practice with JMeter
      • Example 1: Simulate realistic load
      • Example 2: Technical tests with Byteman
      • Example 3: Technical tests with JProfiler
      • Example 4: Tricking captchas with a Java Request
    • Conclusion
  • Load Testing web services
    • Few concepts
      • WS-* web services
      • REST (REpresentational State Transfer) web services
    • Set up with JMeter
    • Methodology
    • Practice with JMeter
      • SOAP/XML-RPC web-service
      • REST Web-Service: Discussion Forum
      • REST web service: Customer Database
    • Conclusion
  • Load Testing a database server
    • A bit of theory
    • Methodology
    • Setup with JMeter
    • Putting theory into practice with JMeter
      • Example 1: Load test of a database
      • Example 2: Studying indexes impact on performance
      • Example 3 : ETL
    • Conclusion
  • Load Testing message-oriented messaging (MOM) via JMS
    • A bit of theory
      • Asynchronous messages
      • Decoupling
      • Back pressure
      • Communication models
      • What is a message composed of?
    • Set up with JMeter
      • Installation of MOM libraries
      • JMS Point-to-Point
      • Publish/Subscribe
    • Methodology
    • Put into practice with JMeter
      • Example 1: Test the configuration of a MOM server with point-to-point
      • Example 2: Test the performance of our consumer with JMS Publish/Subscribe
      • Example 3: Testing the configuration of a MOM server with Publish/Subscribe
      • Example 4: Test any MOM
    • Conclusion
  • Performing a load test
    • Introduction
    • Methodology
    • Testing your script with the graphical interface
    • Running your test from the command line
    • Running your test on the command line with Taurus
    • Running your test from Apache Maven
    • Running your test from Jenkins
    • Running your test from Apache Ant
    • Best practices
    • Conclusion
  • Visualizing and analyzing the load testing results
    • Introduction
    • Visualizing the results with listeners
      • View Results Tree
      • Summary Report
      • Aggregate Report
      • Backend Listener
      • Report Dashboard
      • Particularities of the visualization of results for a distributed load test before JMeter 5.0
    • Visualizing the results with third party visualizing tools
    • Visualizing the results with PaaS load testing tools
      • Redline13
      • Blazemeter
    • Some tips to read the results
      • Prefer percentiles over average
      • Be careful with Downsampling and data retention
      • Be careful with metric definition
      • Be careful with response time at beginning of the load test
      • Don’t rely on metrics of a short load test
      • Check response time distribution
    • Some tips to present the results
      • Don’t average percentiles
      • Define the number of metrics to display in a time series line graphs
      • Define the resolution/granularity of the measures
      • Don’t forget to add labels, legends and units in graphs
      • Axis Forced 0
      • Don’t use pie charts
      • Prefer bar graphs when we have sparse metrics
      • Present errors with toplist
      • Timeseries graphs and single-value summaries
    • Conclusion
  • Integration of JMeter in the DevOps tool chain
    • Introduction
    • Set Shift-Left strategy
    • CI integration with Jenkins
    • JMeter Automation with Docker
    • Deployment on the Cloud
    • Integration with APMs (Dynatrace, AppDynamics, New Relic) for analysis
    • Integration with Profilers (Yourkit, JProfiler)
      • Non-regression test of memory consumption with EJ JProfiler
      • Memory leak detection during an endurance test with EJ JProfiler
      • Get SQL queries executed during a load test with YourKit Java Profiler
      • Analysis of the Java GC log file with GCViewer
    • Conclusion

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Write and Publish on Leanpub

Authors, publishers and universities use Leanpub to publish amazing in-progress and completed books and courses, just like this one. You can use Leanpub to write, publish and sell your book or course as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub