Home - rajendrapenumalli/Jmeter GitHub Wiki

Skills Required

  • Understanding Web Application Architecture
  • HTTP Protocol Basics
  • RestFul API Basics
  • Scripting
  • Correlation
  • Analysis
  • Reporting
  • Work-load Modelling
  • Commands and Utilities for Server Monitoring

Key Performance Tuning Objectives (for a Given workload Pattern)

  • Response Time
  • Resource Utilization
  • Application Throughput

Aspects need to focus while designing test

  • Reliability of the AUT.
  • Stability under heavy load.
  • Capacity – What is the point of degradation of the application?
  • Regression – The effect of new functionality on existing performance, such as response time.
  • Varying user load – The behavior of the application under user ramp-up, user peak load, and ramp down loads.

Types of Tests

  • Load
  • Benchmark Testing
  • Stress
  • Soak Testing
  • Regression Testing
  • Reproducing Productions Issues and Retesting

Important Terminologies

  • T-Shirt Size of Server(Where Application Running)
  • Bandwidth Of Server

Knowledge of General Performance Production Issues

  • Memory Leaks
  • Connection Leaks
  • Insufficient Resources
  • Slow DB Response
  • Unexpected Surge/Spike in Traffic
  • Load Balancing(Lack of Load Balancing/No Load Balancing) Issues
  • Network Connectivity Issues
  • Bad Coding Practices or code is not Optimized for performance
  • Failing to optimize bandwidth usage
    • Some of the elements you can include are the minification of JavaScript,
    • the minification of all CSS,
    • server side HTTP compression
    • optimization of image size and resolution.
  • Poor Caching
  • Poor Proxies

Layers Of Application and Performance Tuning

  1. Server Settings
  2. Server Hardware
  3. Application Architecture
  4. Improving Client Side loading and rendering
  5. Optimizing Code to Improve Server side execution
  6. DB Query Tuning

1. Introduction

  • Introduction to Performance Testing of Web applications
  • Technical Jargon
  • Types of Performance Testing
  • Need for Performance Testing
  • Performance Testing Myths
  • Performance Testing Tools
  • Performance Testing Requirements/Needs
  • Performance Test Life Cycle

2. Installation Configuration and Recording a Script

  • JMeter Installation
  • Java Installation
  • Starting JMeter
  • What is a Scenario?
  • Recording a Scenario
  • Using HTTP(S) Test Script Recorder
  • Understanding the recording concept
  • Setting up Proxy
  • Configuring system to use proxy
  • Configuring Firefox to use proxy
  • Filtering Requests
  • Understanding RegEx
  • Recording steps on a website
  • Using HTTP Proxy server
  • Configuring the browser for recording the test script
  • Configuring Firefox Mozilla
  • Configuring Chrome
  • Configuring IE
  • Record and Playback on sample site

3. Jmeter Logic Controllers

  • What are Logic Controllers? Why do we need them?
  • Simple Controller
  • Once Only Controller
  • Random Controller
  • Random Order Controller
  • Interleave Controller
  • Switch Controller
  • Recording Controller
  • Loop Controller
  • Runtime Controller
  • Transaction Controller
  • If Controller
  • While Controller
  • Module Controller
  • Include Controller
  • Throughput Controller
  • Critical Section Controller
  • For-Each Controller

4. JMeter Processors

  • What are Pre-Processors? Why do we need them?
  • HTML Link Parser
  • User Parameters
  • Sample Timeout

5. JMeter Post Processors

  • What are PostProcessors? Why do we need them?
  • Regular Expression Extractor
  • Understanding RegEx
  • Debug Post Processor
  • XPath Extractor

6. Timers

  • What are Timers? Why do we need them?
  • What is Think Time?
  • Constant Timer
  • Contant Throughput Timer
  • Uniform Random Timer
  • Gaussian Random Timer

7. Listeners

  • Introduction to Listeners, Why do we need them?
  • View Results Tree Listener
  • View Results in Table
  • Summary Report
  • Aggregate Report
  • Aggregate Graph
  • Response Time Graph
  • Assertion Results
  • Compare Assertion Visualizer
  • Simple Data Writer
  • Generate Summary Results
  • Save Responses to a File

9. Functions

  • __threadNum
  • __intSum
  • __longSum
  • __doubleSum
  • __StringFromFile
  • __javaScript
  • __BeanShell
  • __machineIP
  • __machineName
  • __TestPlanName
  • __log
  • __Random
  • __RandomString
  • __property
  • __P
  • __setProperty
  • __time
  • __samplerName
  • __V
  • __FileToString
  • -Custom Functions / User defined Functions

9. Bean Shell Scripting (Outdated)

  • Introduction to BeanShell Scripting
  • Setting up BeanShell
  • Eclipse IDE
  • BeanShell Scripting Syntax
  • BeanShell Samplers
  • BeanShell Pre-Processor
  • BeanShell Post-Processor
  • BeanShell Assertion
  • BeanShell Timer
  • BeanShell Listener

10. JSR 223/Groovy Scripting (Best One)

  • Introduction to Groovy Scripting
  • Groovy Scripting Basics
  • Groovy Samplers
  • Groovy Pre-Processor
  • Groovy Post-Processor
  • Groovy Assertion
  • Groovy Timer
  • Groovy Listener

11. Correlation

  • Working on correlation scenarios
  • Extraction of data
  • Modification of Data
  • Usage of Modified data

12. Plugins, Files, Databases and WebServices

  • What are Plugins?
  • What is a Plugins Manager?
  • How to download Plugins Manager?
  • Installing Plugins Manager
  • Installing Plugins through JMeter Plugins Manager

13. Downloading and Uploading of a file from server

  • Downloading a file from server
  • Uploading a file to server

14. Testing Databases with JMeter

  • Database Testing with JMeter
  • Setting up jar files
  • JDBC with Oracle
  • JDBC with SQL Server
  • JDBC with MySQL
  • SQL Statements

15. Non-GUI (Command Line)

  • Why Non-GUI?
  • Executing tests in command line
  • Editing a test plan in a text/XML editor
  • JMeter test results in Non-gui mode
  • Load Generation in Command Line

16. JMeter in Distributed Mode

  • What is Distributed Mode?
  • What is Master Slave Configuration?
  • Using multiple machines for executing tests.
  • Analysing results

17. Report Analysis And Monitoring Resources

  • Statistics available from JMeter
  • Average, Median, Deviation
  • Throughput, 90 Percentile
  • Server Monitoring using JMeter Plugin
  • Resource Utilization Monitoring
  • Perfmon Metric collector Listener
  • Server Agent Batch file
  • Server metrics such as CPU & Memory usage
  • Monitoring and analyzing CPU resources
  • Monitoring Memory Utilization
  • Driving JMeter Tests with ANT

18. Grafana

  • Why Grafana?
  • Installing Grafana
  • Installing Linux
  • Installing InfluxDB
  • Configuring InfluxDB
  • Configuring Graphite

19. Sample Projects

  • with
    • Correlation
    • Grafana
    • JMeter Plugins
    • Thread Groups

20. Deploying Application on AWS

  • Installation of Web Application
  • Script Generation
  • Load Generation
  • Monitoring Resources
  • Analyzing Responses
  • Analyzing Results
  • Analyzing Performance

21 .Web Socket Project

  • Custom Sample Plugin
  • Script Generation
  • Load Generation
  • Monitoring Resources
  • Analyzing Responses
  • Analyzing Results
  • Analyzing Performance

22 .Sample Projects

  • For Load Testing
  • For Soak Testing
  • For Web Socket Project
  • For API Test Harness

23 .Debugging Options In Jmeter

  • Console Log
  • Debug Sampler
  • Property View

24 .Cloud/Saas Based JMeter Test Service Providers

  • Blaze meter
  • Lodium
  • Flood.io

References:

  1. http://www.agileload.com/performance-testing/performance-testing-methodology/performance-symptoms-and-issues
  2. http://www.agileload.com/agileload//blog/2013/06/20/performance-improvement-strategies-for-tomcat-server
  3. http://www.agileload.com/agileload//blog/2013/02/18/web-applications-performance-testing-metrics