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
- Server Settings
- Server Hardware
- Application Architecture
- Improving Client Side loading and rendering
- Optimizing Code to Improve Server side execution
- 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:
- http://www.agileload.com/performance-testing/performance-testing-methodology/performance-symptoms-and-issues
- http://www.agileload.com/agileload//blog/2013/06/20/performance-improvement-strategies-for-tomcat-server
- http://www.agileload.com/agileload//blog/2013/02/18/web-applications-performance-testing-metrics