Book Image

Performance Testing with JMeter 2.9

By : Bayo Erinle
Book Image

Performance Testing with JMeter 2.9

By: Bayo Erinle

Overview of this book

Performance testing with JMeter 2.9 is critical to the success of any software product launch and continued scalability. Irrespective of the size of the application's user base, it's vital to deliver the best user experience to consumers. Apache JMeter is an excellent testing tool that provides an insight into how applications might behave under load enabling organizations to focus on making adequate preparations. Performance Testing with JMeter 2.9 is a practical, hands-on guide that equips you with all the essential skills needed to effectively use JMeter to test web applications using a number of clear and practical step-by-step guides. It allows you take full advantage of the real power behind Apache JMeter, quickly taking you from novice to master. Performance Testing with JMeter 2.9 begins with the fundamentals of performance testing and gets you acquainted with JMeter. It will guide you through recording realistic and maintainable scripts. You will acquire new skills working with tools such as Vagrant, Puppet, and AWS, allowing you to leverage the cloud to aid in distributed testing. You will learn how to do some BeanShell scripting and take advantage of regular expressions, JMeter properties, and extension points to build comprehensive and robust test suites. Also, you will learn how to test RESTful web services, deal with XML, JSON, file downloads/uploads, and much more. Topics like resource monitoring, distributed testing, managing sessions, and extending JMeter are also covered. Performance Testing with JMeter 2.9 will teach you all you need to know to take full advantage of JMeter for testing web applications, dazzle your co-workers, and impress your boss! You will go from novice to pro in no time.
Table of Contents (14 chapters)

Index

A

  • Advance REST Client
    • URL / Posting JSON data
  • anatomy, 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
    • pre-processor element / Pre-processor and post-processor elements
    • post-processor element / Pre-processor and post-processor elements
  • Apache Tomcat Server
    • setting up / Setting up Apache Tomcat Server
  • assertions
    • about / Assertions
  • AWS (Amazon Web Service) / Leveraging the cloud for distributed testing

B

  • baseline
    • about / Baselines
  • basic server monitoring
    • about / Basic server monitoring
  • browser configuration
    • about / Setting up your browser to use the proxy server
    • browser extension, using / Using a browser extension
    • machine system settings, changing / Changing the system settings
    • recorded scenario, running / Running your first recorded scenario
  • BSF (Bean Scripting Framework) / Using the BSF PostProcessor
  • BSF PostProcessor
    • using / Using the BSF PostProcessor

C

  • checkboxes, simple forms
    • handling / Handling checkboxes
  • Chrome developer tools
    • URL / Posting JSON data
  • cloud, leveraging for distributed testing
    • about / Leveraging the cloud for distributed testing
    • access key, obtaining / Obtaining your access key, secret key, and key pair
    • secret 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 an AWS instance
    • test plan, executing / Executing the test plan
    • results, viewing from virtual machines / Viewing the results from the virtual machines
  • command-line options, JMeter
    • 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
  • configuration elements
    • about / Configuration elements
  • Constant throughput timer
    • about / The Constant throughput timer
  • Constant timer
    • about / The Constant timer
  • controllers
    • about / Controllers
    • sampler controllers / Controllers
    • logical controllers / Controllers
  • cookies
    • used, for managing sessions / Managing sessions with cookies

D

  • debug sampler
    • about / The Debug sampler
  • dummy sampler
    • adding / A Dummy sampler

E

  • executable scripts, JMeter
    • jmeter.sh / Running JMeter
    • jmeter-n.sh / Running JMeter
    • jmeter-n-r.sh / Running JMeter
    • jmeter-t.sh / Running JMeter
    • jmeter-server.sh / Running JMeter
    • mirror-server.sh / Running JMeter
    • shutdown.sh / Running JMeter
    • stoptest.sh / Running JMeter

F

  • file downloads, simple forms
    • handling / Handling file downloads
  • file uploads, simple forms
    • handling / Handling file uploads
  • Firebug
    • URL / Posting JSON data

G

  • Gaussian random timer
    • about / The Gaussian random timer

H

  • H2 database
    • setting up / Setting up an H2 database

J

  • Java JDK
    • installing / Installing Java JDK
  • JavaScript Object Notation / Posting JSON data
  • JAVA_HOME
    • setting / Setting JAVA_HOME
    • setting, on Windows / On Windows
    • setting, on Unix / On Unix
  • JDBC Connection Configuration component
    • configuring / Configuring a JDBC Connection Configuration component
  • JDBC Request sampler
    • about / The JDBC Request sampler
    • H2 database, setting up / Setting up an H2 database
    • JDBC Connection Configuration component, configuring / Configuring a JDBC Connection Configuration component
    • adding / Adding a JDBC Request sampler
    • , adding / Adding a JDBC Request sampler
  • JMeter
    • about / JMeter to the rescue, Remote testing with JMeter
    • features / JMeter to the rescue
    • installing / Installation
    • downloading / Installation
    • folder / Installation
    • bin folder / Installation
    • docs folder / Installation
    • extras folder / Installation
    • lib folder / Installation
    • printable_docs folder / Installation
    • Java JDK, installing / Installing Java JDK
    • JAVA_HOME, setting / Setting JAVA_HOME
    • running / Running JMeter
    • executable scripts / Running JMeter
    • command-line options / Command-line options, Configuring JMeter
    • classpath / JMeter's Classpath
    • proxy server, configuring / Configuring the proxy server
    • non-GUI mode, running / Running in non-GUI mode
    • server mode, running / Running in server mode
    • properties, overriding / Overriding properties
    • errors, tracking / Tracking errors during test execution
    • configuring / Configuring JMeter
    • monitor controller, setting up / Setting up a monitor controller in JMeter
    • monitor listeners, adding / Adding monitor listeners to the test plan
    • remote testing / Remote testing with JMeter
  • jmeter-n-r.sh script / Running JMeter
  • jmeter-n.sh script / Running JMeter
  • jmeter-server.sh script / Running JMeter
  • jmeter-t.sh script / Running JMeter
  • jmeter.sh script / Running JMeter
  • JMeterEngine / Remote testing with JMeter
  • JMeter functions
    • about / JMeter functions
  • JMeter GUI
    • about / Running JMeter
  • JMeter HTTP proxy server
    • configuring / Configuring the JMeter HTTP proxy server
  • JMeter plugin
    • used, for monitoring server / Monitoring the server with a JMeter plugin
  • JMeter plugins
    • installing / Installing the plugins
  • JMeter properties
    • about / JMeter properties and variables
  • JMeter slave nodes
    • configuring / Configuring JMeter slave nodes
    • one slave per machine, configuring / Configuring one slave per machine
    • master node, configuring / Configuring the master node to be tested against one slave per machine
    • multiple slave nodes, configuring on single box / Configuring multiple slave nodes on a single box
    • master node, configuring for testing multiple slave nodes / Configuring the master node to be tested against multiple slave nodes on a single box
  • JMeter test
    • anatomy / Anatomy of a JMeter test
  • JMeter variables
    • about / JMeter properties and variables
  • JMX
    • about / Basic server monitoring
  • JSON data, simple forms
    • posting / Posting JSON data
    • reading / Reading JSON data
    • BSF PostProcessor, using / Using the BSF PostProcessor
  • JSON Path Extractor element
    • about / The JSON Path Extractor element

L

  • listeners
    • about / Listeners
  • load testing
    • about / Load and stress testing
  • logical controllers
    • about / Controllers
  • logic controllers
    • about / Logic controllers

M

  • master node
    • configuring, for testing against one slave per machine / Configuring the master node to be tested against one slave per machine
    • configuring, for testing against multiple slave nnodes / Configuring the master node to be tested against multiple slave nodes on a single box
  • mirror-server.sh script / Running JMeter
  • monitor controller, JMeter
    • setting up / Setting up a monitor controller in JMeter
  • multiple slave nodes
    • configuring, on single box / Configuring multiple slave nodes on a single box

N

  • not_in_menu, command-line options
    • about / Configuring JMeter

O

  • one slave node per machine
    • configuring / Configuring one slave per machine

P

  • PerfMon Metrics Collector listener
    • adding / Adding monitor listeners to the test plan
  • performance testing
    • about / Performance testing
    • test environment, identifying / Performance testing
    • acceptance criteria, identifying / Performance testing
    • plan and design test / Performance testing
    • test environment, preparing / Performance testing
    • test plan, recording / Performance testing
    • tests, running / Performance testing
    • results, analyzing / Performance testing
    • tuning / Performance testing and tuning
    • baselines / Baselines
    • load testing / Load and stress testing
    • stress testing / Load and stress testing
  • Poisson random timer
    • about / The Poisson random timer
  • post-processor element
    • about / Pre-processor and post-processor elements
  • pre-processor element
    • about / Pre-processor and post-processor elements

R

  • radio buttons, simple forms
    • handling / Handling radio buttons
  • Regular Expression tester
    • about / The Regular Expression tester
  • remote_hosts, command-line options
    • about / Configuring JMeter
  • resource monitoring
    • basic server monitoring / Basic server monitoring
    • server, monitoring with JMeter plugin / Monitoring the server with a JMeter plugin
  • Response Times vs Threads listener
    • adding / Adding monitor listeners to the test plan
  • Response Time vs. Threads listener
    • adding / Adding monitor listeners to the test plan
  • REST (REpresentational State Transfer) / Posting JSON data
  • REST Client
    • URL / Posting JSON data
  • RESTful web services
    • handling / Handling RESTful web services

S

  • sampler controllers
    • about / Controllers
  • samplers
    • about / Samplers
    • HTTP Request / Samplers
    • JDBC Request / Samplers
    • LDAP Request / Samplers
    • Soap/XML-RPC request / Samplers
    • Web service (SOAP) request / Samplers
    • FTP Request / Samplers
  • search_paths, command-line options
    • about / Configuring JMeter
  • server
    • monitoring, with JMeter plugin / Monitoring the server with a JMeter plugin
  • session management
    • with cookies / Managing sessions with cookies
    • with URL rewriting / Managing sessions with URL rewriting
  • shutdown.sh script / Running JMeter
  • simple 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
    • BSF PostProcessor / Using the BSF PostProcessor
    • XML response, handling / Handling the XML response
  • stoptest.sh script / Running JMeter
  • stress testing
    • about / Load and stress testing
  • Synchronizing timer
    • about / The Synchronizing timer
  • system.properties, command-line options
    • about / Configuring JMeter

T

  • test fragments
    • about / Test fragments
  • testing tools
    • about / JMeter to the rescue
  • Test Plan
    • about / Test Plan
  • Thread Groups
    • about / Thread Groups
  • timers
    • about / Timers
    • using / 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
  • Tomcat users
    • configuring / Configuring Tomcat users
  • Transactions per Second listener
    • adding / Adding monitor listeners to the test plan

U

  • Uniform random timer
    • about / The Uniform random timer
  • URL rewriting
    • about / Managing sessions with URL rewriting
    • used, for managing sessions / Managing sessions with URL rewriting
  • user.classpath, command-line options
    • about / Configuring JMeter
  • user.properties, command-line options
    • about / Configuring JMeter

X

  • XML (Extensible Markup Language) / Handling the XML response
  • xml.parser, command-line options
    • about / Configuring JMeter
  • XML response, simple forms
    • handling / Handling the XML response