This course introduces Apache JMeter for performance testing web applications and APIs. Participants learn to translate performance requirements into realistic workloads, create reusable test plans, execute load tests, and interpret results.
The course progresses from essential concepts and basic HTTP requests to parameterization, correlation, command-line execution, and performance reporting. It also introduces distributed testing and integration with automated delivery pipelines, providing a foundation for maintaining repeatable performance tests.
Duration 4 Days – 28 hrs.
Objectives
- Explain key performance testing concepts and metrics.
- Install and configure Apache JMeter and its required Java runtime.
- Design test plans for web applications and REST APIs.
- Model realistic user journeys and workload patterns.
- Use parameterization and correlation to manage test data and dynamic values.
- Validate responses using assertions.
- Execute load tests efficiently in command-line mode.
- Analyze response times, throughput, errors, and performance trends.
- Distinguish application performance issues from load-generator limitations.
- Explain the fundamentals of distributed testing and automated test execution.
Target Audience
- Software testers and quality assurance professionals.
- Test automation engineers.
- Software developers involved in application performance.
- Performance testing engineers seeking structured foundational knowledge.
- DevOps engineers and application support personnel.
- Technical professionals responsible for application reliability and capacity planning.
Prerequisites
- Basic understanding of software testing concepts.
- Familiarity with web applications and client-server communication.
- Basic knowledge of HTTP requests, responses, and status codes.
- Familiarity with JSON is helpful; essential concepts are reviewed during the course.
- Basic computer skills, including installing software and navigating files.
- No prior JMeter experience required.
- Programming experience is not required for the core topics; introductory Groovy examples are explained.
- Access to a computer with Apache JMeter, a compatible Java runtime, and an authorized test application or API.
Course Outline
Day 1: Performance Testing Foundations and JMeter Essentials
Module 1: Introduction to Performance Testing
- Performance testing goals and business requirements.
- Load, stress, spike, and endurance testing.
- Response time, latency, throughput, and error rate.
- Concurrent users and request arrival rates.
- Performance targets and acceptance criteria.
- JMeter’s protocol-level approach and browser-rendering limitations.
Module 2: Installation and Test Plan Structure
- Installing JMeter and a compatible Java runtime.
- Navigating the JMeter interface.
- Test plans, thread groups, and samplers.
- Configuration elements, timers, assertions, and listeners.
- Component scope and execution order.
- Organizing and saving test plans.
Module 3: Building an HTTP Test Plan
- Configuring HTTP requests and request defaults.
- Working with methods, parameters, headers, and request bodies.
- Managing cookies and browser-like caching.
- Configuring threads, ramp-up, and loop count.
- Inspecting requests and responses.
- Validating a test plan with a small workload.
Day 2: Recording, Test Data, and Dynamic Workflows
Module 4: Recording and Refining User Journeys
- Configuring the HTTP(S) Test Script Recorder.
- Browser proxy and HTTPS certificate setup.
- Including relevant requests and excluding unnecessary traffic.
- Organizing recorded requests into business transactions.
- Adding think time.
- Cleaning and replaying recorded scenarios.
Module 5: Parameterization and Test Data Management
- User-defined variables and JMeter functions.
- Loading test data with CSV Data Set Config.
- Managing unique users and business records.
- Configuring data sharing and end-of-file behavior.
- Separating environment settings from test logic.
- Preparing repeatable test data.
Module 6: Correlation and Response Validation
- Recognizing dynamic values and session dependencies.
- Extracting values using JSON, boundary, and regular expression extractors.
- Reusing tokens and identifiers in later requests.
- Configuring response and JSON assertions.
- Handling missing or unexpected values.
- Debugging correlation and validation failures.
Day 3: API Testing and Workload Design
Module 7: REST API Performance Testing
- Configuring GET, POST, PUT, PATCH, and DELETE requests.
- Sending JSON payloads and content-type headers.
- Handling authentication headers and bearer tokens.
- Chaining dependent API requests.
- Validating status codes and response content.
- Managing test data creation and cleanup.
Module 8: Designing Realistic Workloads
- Translating usage patterns into test scenarios.
- Defining transaction mix and user concurrency.
- Configuring ramp-up, steady-state operation, and duration.
- Using timers to control pacing and request rates.
- Applying logic and transaction controllers.
- Recognizing limitations of concurrency-based workload models.
Module 9: Reusable Logic and Introductory Scripting
- Reusing components with test fragments and module controllers.
- Understanding variables and properties.
- Using setup and teardown thread groups.
- Introduction to JSR223 elements and Groovy.
- Simple data manipulation and custom validation.
- Avoiding unnecessary scripting overhead.
Day 4: Execution, Analysis, and Operational Integration
Module 10: Efficient Test Execution
- Running tests in command-line mode.
- Passing environment settings through properties.
- Saving results and generating HTML dashboards.
- Reducing listener and result-collection overhead.
- Monitoring load-generator CPU, memory, and network usage.
- Introduction to distributed execution and consistent configuration across generators.
Module 11: Interpreting Performance Results
- Reading summary results and dashboard charts.
- Comparing averages, medians, and response-time percentiles.
- Interpreting throughput and error patterns.
- Comparing baseline and subsequent test runs.
- Correlating test results with application and infrastructure monitoring.
- Documenting findings, limitations, and recommended follow-up actions.
Module 12: Maintaining and Automating Performance Tests
- Organizing test plans and supporting files.
- Managing scripts and configuration in version control.
- Introducing command-line execution in CI/CD pipelines.
- Retaining test results and report artifacts.
- Applying performance thresholds through pipeline logic or supporting tools.
- Maintaining tests as applications and environments change.

