Book Image

Performance Testing with JMeter 3 - Third Edition

By : Bayo Erinle
Book Image

Performance Testing with JMeter 3 - Third Edition

By: Bayo Erinle

Overview of this book

JMeter is a Java application designed to load and test performance for web application. JMeter extends to improve the functioning of various other static and dynamic resources. This book is a great starting point to learn about JMeter. It covers the new features introduced with JMeter 3 and enables you to dive deep into the new techniques needed for measuring your website performance. The book starts with the basics of performance testing and guides you through recording your first test scenario, before diving deeper into JMeter. You will also learn how to configure JMeter and browsers to help record test plans. Moving on, you will learn how to capture form submission in JMeter, dive into managing sessions with JMeter and see how to leverage some of the components provided by JMeter to handle web application HTTP sessions. You will also learn how JMeter can help monitor tests in real-time. Further, you will go in depth into distributed testing and see how to leverage the capabilities of JMeter to accomplish this. You will get acquainted with some tips and best practices with regard to performance testing. By the end of the book, you will have learned how to take full advantage of the real power behind Apache JMeter.
Table of Contents (17 chapters)
Title Page
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface
Index

Index

A

  • Advance REST Client
    • URL / Posting JSON data
  • Amazon Web Service (AWS) / Configuring JMeter slave nodes
  • Apache Ant
    • URL / Installation
  • Apache JMeter / JMeter to the rescue
  • AWS web console
    • URL / Viewing the results from the virtual machines

B

  • baseline
    • about / Baselines
    • considerations / Baselines
  • BlazeMeter
    • URL / Viewing the results from the virtual machines, Using BlazeMeter
    • using / Using BlazeMeter
  • browser
    • setting up, for proxy server / Setting up your browser to use the proxy server
    • browser extension, using / Using a browser extension
    • machine system settings, modifying / Changing the machine system settings
    • recorded scenario, executing / Running your first recorded scenario
    • Excilys bank case study / Excilys bank case study
    • script, parameterizing / Parameterizing the script
    • information, extracting at test run / Extracting information during test run

C

  • checkboxes
    • handling / Handling checkboxes
  • Chrome developer tools
    • URL / Posting JSON data
  • classpath / JMeter's classpath
  • cloud
    • leveraging, for distributed testing / Leveraging the cloud for distributed testing
  • cloud services
    • using / Using cloud services
    • Flood.io, using / Using Flood.io
    • BlazeMeter, using / Using BlazeMeter
  • Collectd
    • URL / Importing the Grafana dashboard
  • command-line options
    • xml.parser / Configuring JMeter
    • remote_hosts / Configuring JMeter
    • not_in_menu / Configuring JMeter
    • user.properties / Configuring JMeter
    • search_paths / Configuring JMeter
    • user.classpath / Configuring JMeter
    • system.properties / Configuring JMeter
    • ssl.provider / Configuring JMeter
    • -p profile / Configuring JMeter
    • jmeter.properties file / Configuring JMeter
    • -j logfile / Configuring JMeter
  • Command Line Interface (CLI) / Creating an InfluxDB database for our test plan
  • Constant Throughput Timer / The Constant Throughput Timer
  • Constant Timer / The Constant Timer
  • cookies
    • sessions, managing / Managing sessions with cookies

D

  • Debug Sampler
    • about / Debug Sampler
    • adding / Debug Sampler
  • distributed testing
    • cloud, leveraging / Leveraging the cloud for distributed testing
    • secret key, obtaining / Obtaining your access key, secret key, and key pair
    • access key, obtaining / Obtaining your access key, secret key, and key pair
    • key pair, obtaining / Obtaining your access key, secret key, and key pair
    • AWS instance, launching / Launching the AWS instance
    • test plan, executing / Executing the test plan
    • results, viewing from virtual machines / Viewing the results from the virtual machines
  • domain-specific language (DSL) / Performance testing, Using Flood.io
  • Dummy Sampler
    • about / Dummy Sampler
    • installing / Dummy Sampler

E

  • errors
    • tracking, during test execution / Tracking errors during test execution
  • Excilys bank case study / Excilys bank case study

F

  • file downloads
    • handling / Handling file downloads
  • file uploads
    • handling / Handling file uploads
  • Firebug
    • URL / Posting JSON data
  • Flood.io
    • URL / Viewing the results from the virtual machines, Using Flood.io
    • using / Using Flood.io
  • forms
    • capturing / Capturing simple forms
    • checkboxes, handling / Handling checkboxes
    • radio buttons, handling / Handling radio buttons
    • file uploads, handling / Handling file uploads
    • file downloads, handling / Handling file downloads
    • JSON data, posting / Posting JSON data
    • JSON data, reading / Reading JSON data
    • XML responses, handling / Handling XML responses
  • FoxyProxy
    • URL / Using a browser extension
  • functions
    • about / JMeter functions
    • URL / JMeter functions

G

  • Gaussian Random Timer / The Gaussian Random Timer
  • Grafana
    • setting up / Setting up Grafana
    • URL / Setting up Grafana, Importing the Grafana dashboard
    • reference / Setting up Grafana
    • connecting, to database / Connecting Grafana to the database
    • dashboard, configuring / Putting it all together
    • dashboard, importing / Importing the Grafana dashboard
  • Graphical User Interface (GUI) / JMeter to the rescue
  • Graphite
    • URL / Importing the Grafana dashboard

H

  • H2 database
    • URL / JDBC Request Sampler
    • setting up / Setting up the H2 database
  • HTTP API / Creating an InfluxDB database for our test plan
  • HTTP Cookie Manager / Excilys bank case study

I

  • InfluxDB
    • setting up / Setting up InfluxDB
    • URL / Setting up InfluxDB, Importing the Grafana dashboard
    • reference / Setting up InfluxDB
    • database, creating for test plan / Creating an InfluxDB database for our test plan
    • Grafana, connecting to database / Connecting Grafana to the database

J

  • Java JDK
    • installing / Installing Java JDK
    • URL / Installing Java JDK
  • Java Runtime Environment (JRE) / Remote testing with JMeter
  • JavaScript Object Notation (JSON)
    • about / Posting JSON data
    • reference / Posting JSON data
  • JAVA_HOME environment variable
    • setting up / Setting up JAVA_HOME
    • setting up, on Windows / On Windows
    • setting up, on Unix / On Unix
  • JDBC Request Sampler
    • about / JDBC Request Sampler
    • H2 database, setting up / Setting up the H2 database
    • JDBC Connection Configuration component, configuring / Configuring a JDBC Connection Configuration component
    • adding / Adding a JDBC Request Sampler
    • URL / Adding a JDBC Request Sampler
  • JMeter
    • about / JMeter to the rescue
    • features / JMeter to the rescue
    • installation / Installation
    • URL, for downloading / Installation
    • Java JDK, installing / Installing Java JDK
    • JAVA_HOME environment variable, setting up / Setting up JAVA_HOME
    • executing / Running JMeter
    • command-line options / Command-line options
    • classpath / JMeter's classpath
    • proxy server, configuring / Configuring a proxy server
    • executing, in non-GUI mode / Running in non-GUI mode
    • executing, in server mode / Running in server mode
    • properties, overriding / Overriding properties
    • configuring / Configuring JMeter
    • used, for remote testing / Remote testing with JMeter
    • properties / JMeter properties and variables
    • variables / JMeter properties and variables
    • functions / JMeter functions
  • JMeter-InfluxDB-Writer plugin
    • URL / Importing the Grafana dashboard
  • JMeter test, anatomy
    • about / Anatomy of a JMeter test
    • test plan / Test plan
    • thread groups / Thread groups
    • controllers / Controllers
    • samplers / Samplers
    • logic controllers / Logic controllers
    • test fragments / Test fragments
    • listeners / Listeners
    • timers / Timers
    • assertions / Assertions
    • configuration elements / Configuration elements
    • postprocessor elements / Preprocessor and Postprocessor elements
    • preprocessor element / Preprocessor and Postprocessor elements
  • JSON data
    • posting / Posting JSON data
    • reading / Reading JSON data
    • JSR223 PostProcessor, using / Using JSR223 PostProcessor
  • JSON Path Extractor element / The JSON Path Extractor element
  • JSONPath syntax
    • URL / The JSON Path Extractor element
  • JSR223 / Using JSR223 PostProcessor
  • JSR223 PostProcessor
    • using / Using JSR223 PostProcessor
    • about / Using JSR223 PostProcessor
    • reference / Using JSR223 PostProcessor

L

  • load testing / Load and stress testing

M

  • master node
    • about / Remote testing with JMeter
    • configuring / Configuring the master node, Configuring the master node
  • MongoDB
    • using / Using a MongoDB Sampler
    • testing, with JMeter / Using a MongoDB Sampler
    • installing / Using a MongoDB Sampler
    • URL / Using a MongoDB Sampler

N

  • New Relic
    • URL / Using BlazeMeter
  • NoSQL databases
    • reference / Using a MongoDB Sampler

P

  • performance testing
    • about / Performance testing
    • core activities / Performance testing
    • and tuning, relationship between / Performance testing and tuning
    • baselines / Baselines
    • load testing / Load and stress testing
    • stress testing / Load and stress testing
  • performance tests, core activities
    • acceptance criteria, identifying / Performance testing
    • test environment, identifying / Performance testing
    • tests, planning / Performance testing
    • tests, designing / Performance testing
    • test environment, preparing / Performance testing
    • test plan, preparing / Performance testing
    • tests, executing / Performance testing
    • results, analyzing / Performance testing
    • report, analyzing / Performance testing
    • retest, analyzing / Performance testing
  • Plugins Manager
    • URL / Dummy Sampler
  • Poisson Random Timer / The Poisson Random Timer
  • properties / JMeter properties and variables
  • proxy server
    • configuring / Configuring the JMeter HTTP(S) Test Script Recorder
    • browser, setting up / Setting up your browser to use the proxy server

Q

  • Quality Assurance (QA) testers / The aftermath

R

  • radio buttons
    • handling / Handling radio buttons
  • regular expressions
    • reference / Extracting information during test run
  • Regular Expression tester
    • about / The Regular Expression tester
    • reference / The Regular Expression tester
  • remote testing
    • with JMeter / Remote testing with JMeter
    • slave nodes, configuring / Configuring JMeter slave nodes
  • reporting dashboard
    • generating / Working with the reporting dashboard
    • URL / Working with the reporting dashboard
  • REST (Representational State Transfer)
    • about / Posting JSON data
    • reference / Posting JSON data
  • REST Client
    • URL / Posting JSON data
  • RESTful web services
    • handling / Handling RESTful web services

S

  • Selenium
    • URL / Using BlazeMeter
  • sessions
    • managing, with cookies / Managing sessions with cookies
    • managing, with URL rewriting / Managing sessions with URL rewriting
  • slave nodes
    • about / Remote testing with JMeter
    • configuring / Configuring JMeter slave nodes
    • configuring, per machine / Configuring one slave per machine
    • master node, configuring / Configuring the master node, Configuring the master node
    • multiple slave nodes, configuring on single box / Configuring multiple slave nodes on a single box
  • stress testing / Load and stress testing
  • Synchronizing Timer / The Synchronizing Timer

T

  • timers
    • using, in test plan / Using timers in your test plan
    • Constant Timer / The Constant Timer
    • Gaussian Random Timer / The Gaussian Random Timer
    • Uniform Random Timer / The Uniform Random Timer
    • Constant Throughput Timer / The Constant Throughput Timer
    • Synchronizing Timer / The Synchronizing Timer
    • Poisson Random Timer / The Poisson Random Timer
    • reference / The Poisson Random Timer
  • TrainBot
    • issue with / The incident
    • aftermath / The aftermath
  • tuning
    • and performance testing, relationship between / Performance testing and tuning

U

  • Uniform Random Timer / The Uniform Random Timer
  • Universal Resource Indicators (URIs) / Posting JSON data
  • Unix
    • JAVA_HOME environment variable, setting up / On Unix
  • URL rewriting
    • sessions, managing with / Managing sessions with URL rewriting
  • User Acceptance Test (UAT) / JMeter properties and variables
  • User Defined Variables (UDV) / JMeter properties and variables

V

  • Vagrant
    • URL / Configuring JMeter slave nodes
  • vagrant plugin install command
    • URL / Obtaining your access key, secret key, and key pair
  • variables / JMeter properties and variables
  • VirtualBox
    • URL / Configuring JMeter slave nodes

W

  • Windows
    • JAVA_HOME environment variable, setting up / On Windows

X

  • XML responses
    • handling / Handling XML responses