# Awesome JMeter

A curated collection of resources covering Apache JMeter and related stuff and shiny things: plugins, integrations, testing techniques, DevOps practices, etc.

> Apache JMeter is open source, pure Java application designed to load test functional behavior and measure performance.

This list grew up from an occasional answer on Stack Exchange and personal JMeter-related links collection, got further inspiration from awesome project and improved by these amazing contributors.

## Contents

- Official Resources
- Distributions
- Getting Started
- Tutorials
- Best Practices
- Scripting
- Automation
  - DSL
  - Packages
  - Frameworks
  - Conversion
- CI
  - Tools & Plugins
  - Tutorials & Demo
- Distributed Testing
- Cloud Services / SaaS
- Results Processing
  - Results Analysis
  - Reporting & Visualization
- Performance Testing
  - Streaming Protocols
  - Mobile Apps
  - Mainframe Environments
  - RPC Frameworks
  - RESTful API
- Tools
  - Plugins
  - Correlation
  - Extending JMeter
  - IDE Integration
  - Editors
  - Utilities
- APM Integration
- JMeter Performance
- Tips & Tricks
- Books
- Trainings & Courses
- Videos
- Community
  - Blogs
  - Forums
  - Twitter
  - Q&A
- Related
  - Awesome Lists
  - Other

## Official Resources

- Apache JMeter Project - Apache JMeter official website.
- GitHub Repository - Apache JMeter source code repository.
- JMeter Wiki - Apache JMeter official documentation.
- Issue Tracking - Apache JMeter issue tracking system.
- Mailing Lists - Apache JMeter mailing lists.

## Distributions

- Download Apache JMeter - Apache JMeter: Official downloads.
- JMeter for Windows - Package for installation JMeter with plugins.
- JMeter Bootstrap - Solution to setup JMeter and JMeter plugins, suitable to be used as a submodule.

## Getting Started

- Getting Started with Apache JMeter
- The Beginner’s Guide to Performance Testing with Apache JMeter
- JMeter — Performance and Load Testing: Beginner’s Guide: part 1, part 2

## Tutorials

- JMeter Tutorial - By ArtOfTesting.
- Load Testing with JMeter: part 1, part 2, part 3 - By Brandon Konkle.
- JMeter Tutorial - By Tutorials Point.
- JMeter Tutorial for Load Testing: The Ultimate Guide - By Daniel Gutierrez Diez.
- JMeter: Load Development Lifecycle - By DataCadamia.
- Load Testing with Apache JMeter - By Mitchell Anicas @ DigitalOcean.
- JMeter Tutorial for Beginners - By Guru99.
- JMeter Tutorials - By QA Automation Expert.

## Best Practices

- JMeter Official Best Practices
- Optimize JMeter for Large Scale Tests
- Concurrent, High Throughput Performance Testing with JMeter

## Scripting

- Beanshell vs JSR223 vs Java JMeter Scripting - Most popular scripting mechanisms performance comparison.
- Testing with Groovy - Using JMeter and Groovy for load testing.

## Automation

### DSL

- jmeter-java-dsl - Simple Java API to run JMeter performance tests in an VCS and programmers friendly way.
- jmeter-dotnet-dsl - Simple .Net API to run JMeter performance tests in an VCS and programmers friendly way.
- jmeter-groovy-dsl - The Groovy-JMeter project is simple DSL to write JMeter test plans.
- jmeter-as-code - Simple wrapper for JMeter to write and execute JMeter tests with Java.
- pymeter - Simple JMeter performance tests API for Python.

### Packages

- loadtest - An R package for load testing using JMeter.

### Frameworks

- Taurus - Automation-friendly framework for Continuous Testing.
- Performance testing framework - Framework both for backend load testing with Apache JMeter and frontend load testing with sitespeed.io + webpagetest private instance.
- JMeter Load Testing Center - Online web-application/dashboard to run, monitor and analyze results of load tests using JMeter.
- MeterSphere - One-stop open-source enterprise-class continuous testing platform, compatible with open-source standards such as JMeter :cn:.
- Carrier - Continuous test execution platform with ability to perform load testing using customized JMeter and Gatling containers.

### Conversion

- swaggerjmx - Tool to convert Swagger UI specification into JMeter test plans.
- postman2jmx - Postman collection to JMeter jmx file converter.
- convert-postman-jmeter - Convert Postman projects to JMeter.
- fiddler2jmeter - Fiddler or Charles to JMeter script convertor.
- har-convertor-jmeter-tool - Apache JMeter Plugin to convert a HAR file to a JMeter script and Record XML file.
- JMeter HAR Importer Plugin - JMeter plugin to import HTTP Archive (HAR) files into Apache JMeter.

## CI

### Tools & Plugins

- JMeter Ant Task - Ant task to automate running JMeter test plans.
- JMeter Maven Plugin - Maven plugin that provides the ability to run JMeter tests as part of the build.
- JMeter Gradle Plugin - Gradle plugin to execute JMeter tests.
- Jenkins Performance Plugin - Jenkins plugin to capture reports from JMeter and generate graphic charts with the trend report of performance and robustness.
- TeamCity Performance Tests Analysis Plugin - TeamCity plugin to organize simplest performance testing in CI 💀.
- Bamboo JMeter Aggregator Plugin - Bamboo plugin to collect, assert and graph JMeter test results.
- Sonar JMeter Plugin - Plugin to collect JMeter performance tests results and display in Sonar dashboard 💀.
- Lightning - Framework to integrate JMeter non-functional tests with CI/CD server.
- Taurus JMeter Executor - JMeter Executor in Taurus automation framework.
- PerfAction for JMeter - GitHub Action to run performance tests using Apache JMeter and its plugins.
- Apache JMeter GitHub Action - A GitHub Action for carrying out Apache JMeter performance tests.

### Tutorials & Demo

- Jenkins
  - Performance Tests with JMeter, Maven and Hudson
  - CI with Jenkins, Git, Maven, Grunt, and JMeter
  - Continuous automated web tests using Jenkins and JMeter
  - Automating JMeter tests with Maven and Jenkins
  - How to automate JMeter tests with Maven and Jenkins: part 1, part 2
  - JMeter Continuous Performance Testing (JMeter + Ant + Jenkins): part 1, part 2
  - Continuous Integration 101: How to Run JMeter with Jenkins
- Bamboo
  - How to Run JMeter in a Continuous Integration Environment with Bamboo
- TeamCity
  - How to Run JMeter Tests with TeamCity for Continuous Integration
- CircleCI
  - How to integrate JMeter into CircleCI
- SonarQube
  - JMeter with Sonar

## Distributed Testing

- JMeter Distributed Testing Step-by-step
- JMeter Remote Testing
- Setting up a JMeter Cluster for web server load testing
- Dockerized
  - Dockerized JMeter - Distributed load testing workflow with Docker and JMeter.
  - JMeter Docker Images
  - Distributed JMeter testing using Docker
  - A Docker solution to JMeter + InfluxDB + Grafana performance testing
  - AutoMeter - An automation tool for scaling load tests using distributed slaves, based on JMeter master-slave architecture.
  - JMeter Docker Extension - Docker extension to run JMeter tests from Docker Desktop.
- Testing in Cloud
  - Kubernetes
    - jmeter-kubernetes - JMeter cluster support for Kubernetes and OpenShift.
    - jmeter-k8s-starterkit - JMeter k8s starter kit, with live test reporting, JMeter monitoring, k8s monitoring and mock as a service.
    - kangal - Kubernetes and Go Automatic Loader solution to run performance tests in Kubernetes cluster using multiple load generators.
    - aks_testing_fwk - AKS-based scalable JMeter test framework with Grafana reporting.
  - Amazon Web Services
    - jmeter-ec2 - Automates running Apache JMeter on Amazon EC2.
    - gee - A modified version of JMeter-EC2 project.
    - os-jmeter-aws - Run JMeter on multiple Amazon EC2 instances, view results in ELK.
    - Load Testing with JMeter and Amazon EC2
    - Performance Testing in the Cloud with JMeter & AWS
    - JMeter distributed testing with Amazon EC2
    - jmeter-ecs - JMeter docker image for distributed testing on EC2 Container Service (ECS).
  - DigitalOcean
    - Lightweight JMeter Cloud - Building your own JMeter Cloud using DigitalOcean, JMeter and Docker.
  - Microsoft Azure
    - Load Testing Pipeline with JMeter, ACI and Terraform - Scalable cloud load/stress testing pipeline solution with Apache JMeter and Terraform to dynamically provision and destroy the required infrastructure on Azure.

## Cloud Services / SaaS

List of cloud-based load testing services with support of JMeter test plans execution.

- Perforce BlazeMeter - Performance engineering platform with JMeter and Selenium support.
- OctoPerf - SaaS and On-Premise Load Testing Tool with JMeter and Selenium support.
- RedLine13 - AWS-based load testing service with JMeter, Gatling and Selenium scenarios support.
- LoadRunner Cloud - OpenText cloud-based solution for web and mobile performance testing with JMeter and Gatling support (formerly Micro Focus LoadRunner Cloud, formerly HP StormRunner Load).
- Loadium - AWS-based load testing service with JMeter and Selenium support.
- Azure Microsoft - Azure Load Testing Service use Apache JMeter.

## Results Processing

- JMeter Report Dashboard - JMeter supports dashboard report generation to get graphs and statistics from a test plan.
- Latency Lingo - Publish test results to generate hosted, interactive dashboards containing insights.

### Results Analysis

- JMeter Log Analysis - Suggestions and recipes for JMeter log analysis.
- Analyzing JMeter Results
- JMeter Result Analysis: The Ultimate Guide
- JtlReporter - Online reporting application to generate reports by uploading JTL file.
- JMeter Result Analysis Plugin - Maven plugin that parses JMeter test results and generates detailed reports with charts.
- JMeter Results Analyser - Web-based application for collating, analysing and reporting JMeter test results.
- JMeter Graph Tool Maven Plugin - Maven plugin to create graphs and filter results using CMDRunner and Filter Results Tools from JMeter Plugins; usually used along with the JMeter Maven Plugin and set of “companion” plugins.
- DB Results Collectors
  - JMeter DBCollector Plugin - Plugin to enable results logging into a database for more effective reporting.
  - JMeter MySQLCollector Plugin - Patch to configure listener to log into MySQL database.
- SLA and KPIs
  - JMeter SLA Report - JMeter HTML report generator based on JAMon.
  - JMeter JUnit Reporter - Apache JMeter plugin for generating JUnit Reports in XML format, based on custom KPIs (Key Performance Indicators).
  - Tools to validate results from KPIs:
    - JUnit KPI Reporter from JMeter CSV Report - Tool to generate JUnit Report based on custom KPIs applied to the JMeter Report CSV file.
    - JUnit KPI Reporter from JMeter Dashboard Statistics JSON File - Tool to generate JUnit Report based on custom KPIs applied to the JMeter Dashboard Statistics JSON file.
    - JUnit Report Compare 2 JMeter Report CSV Files - Tool to compare 2 load tests using JMeter Report CSV files and create a JUnit Report based on custom KPIs.

### Reporting & Visualization

- InfluxDB & Grafana
  - Using JMeter with InfluxDB & Grafana - Collection of guides to collect and visualize real-time test results and server monitoring stats using InfluxDB & Grafana.
  - How to Use Grafana to Monitor JMeter Non-GUI Results
  - jmeterReports - Autogenerated JMeter test-run results reported into Confluence, using Grafana custom dashboards :ru:.
  - InfluxDB Community Template for JMeter - Prepackaged InfluxDB configurations that contain everything from dashboards and Telegraf configurations to notifications and alerts in a single manifest file.
  - Grafana Dashboards
    - JMeter Load Test Dashboard - Grafana dashboard shows live load test metrics provided by JMeter (by NovaTec-APM).
    - JMeter Dashboard using Core InfluxdbBackendListenerClient - Monitor your Apache JMeter load test in real time with InfluxDB and Grafana (by Philippe M).
    - JMeter Dashboard (3.2 and up) - Monitor JMeter load test in real time with InfluxDB and Grafana (by adrianbanu).
    - JMeter (via prometheus exporter) - A Grafana dashboard to inspect JMeter metrics via Prometheus exporter (by chiabre).
  - JMeter-InfluxBD-Writer Plugin - JMeter plugin to write load test data on-the-fly into InfluxDB.
  - JMeter Results to InfluxDB - Read JMeter results from csv file and put into InfluxDB database.
- ELK Stack
  - Using ELK - Using Elasticsearch, Logstash, and Kibana to visualize JMeter test results.
  - JMeter + ElasticSearch Live Monitoring - Using the ElasticSearch Backend listener and Grafana/Kibana to monitor results in real time.
  - jmeter-logstash - Parse JTL result with Docker and Logstash in real time or after test end, and send data to Elasticsearch or InfluxDb, to have a nice dashboard and compare different tests.
- Prometheus
  - jmeter-prometheus-plugin - A Prometheus Listener for Apache JMeter that exposes results in HTTP API.
  - jmeter-prometheus-listener - Apache JMeter Backend Listener implementation for Prometheus metrics exporting.
  - ulp-observability-plugin - Allows you to monitor your JMeter CLI performance test from your favorite browser without having to start JMeter in GUI mode.
- ClickHouse
  - JMeter Results from ClickHouse - Using the JMeter Listener pack, ClickHouse and Grafana to collect and monitor test results.
  - jmeter-clickhouse-listener - JMeter plugin allows to write load test data on-the-fly to ClickHouse.
- Backend Listener Implementations
  - jmeter-elasticsearch-backend-listener - JMeter plugin to send test results to an ElasticSearch engine.
  - jmeter-backend-azure - JMeter plugin to send test results to Azure Application Insights.
  - jmeter-backend-listener-kafka - JMeter plugin to send test results to a Kafka server.
  - jmeter-listener - JMeter plugin to write load test data on-the-fly to ClickHouse, InfluxDB, ElasticSearch.
  - jmeter-influxdb2-listener-plugin - InfluxDB v2.0 listener plugin for Apache JMeter.
  - jmeter-datadog-backend-listener - Send JMeter test results to Datadog.
  - jmeter-dynatrace-plugin - A JMeter Backend listener implementation to send the recorded load test metrics via the Dynatrace MINT metric ingest to the configured Dynatrace monitoring environment.
  - jmeter-backend-newrelic - A JMeter plugin to send test results to New Relic Metrics API.
- AWS CloudWatch
  - jmeter-cw-logs - CloudFormation template for publishing JMeter test results to AWS CloudWatch Logs.
- Custom & Deprecated
  - Using Matplotlib & Python - Plotting JMeter load test results with Matplotlib plotting tool and Python.
  - Statistical Aggregate Report - Custom Statistical Aggregate Report listener for enhanced results visualization.
  - JChav - JMeter Chart History and Visualization library.
  - JMeter Dashboard: howto, sources - Real-time monitoring of JMeter load test.
  - Using CMDRunner & Powershell - Create JMeter graphs with CMDRunner with powershell parallel execution.

## Performance Testing

### Streaming Protocols

- Easy and realistic Load Testing of HTTP Live Streaming (HLS) with Apache JMeter
- Using JMeter to Load Test Live HLS Concurrency of Wowza Streaming Engine
- How to Test Video Streaming with JMeter
- HLS JMeter Plugin

### Mobile Apps

- Record iOS application HTTP requests
- Load Testing Mobile Apps Made Easy

### Mainframe Environments

- JMeter RTE Plugin - JMeter RTE (Remote Terminal Emulator protocol) plugin for testing Mainframe applications.

### RPC Frameworks

- JMeter gRPC Plugin - JMeter plugin supports load test gRPC.
- JMeter gRPC Request - JMeter gRPC Request load test plugin.
- JMeter Dubbo Plugin - JMeter plugin for Apache Dubbo.

### RESTful API

- REST API Testing with JMeter. Step by Step Guide

## Tools

### Plugins

- JMeter Plugins - Independent set of plugins for Apache JMeter, with plugin manager references many plugins and simplifies installation.
- Ubik Load Pack - Productivity extensions for Apache JMeter.
- GitHub Topics: jmeter-plugin, jmeter-plugins - Explore JMeter plugins tagged with the `jmeter-plugin` or `jmeter-plugins` labels.

### Correlation

- Correlation Recorder Plugin - JMeter plugin that simplifies the process of recording for applications with Dynamic Variables by providing automatic correlations of variables at recording time.
- Siebel CRM Plugin - JMeter plugin to simplify the scripting of Siebel CRM applications by providing automatic correlations of variables at recording time ❄️.
- ULP Auto-correlator Plugin - Commercial plugin for Oracle and Vaadin-based applications from Ubik Load Pack.

### Extending JMeter

- JMeter Developer Manual
- How to write a plugin for JMeter
- How to build a JMeter plugin utilizing Groovy
- How to create a plugin in JMeter
- Custom JMeter Samplers and Config Elements
- Implement Custom JMeter Samplers
- Hello JMeter plugin - A brief, clear & fast guide to create your first JMeter plugin.

### IDE Integration

- Intellij IDEA IDE Plugin - Create run configurations and run JMeter tests from Intellij IDEA.
- JMeter Viewer - Open JMeter test plans inside Intellij IDE.
- JMeter + Eclipse HOWTO - Develop the JMeter project with Eclipse IDE.
- Using a Load Generator in NetBeans IDE

### Editors

Alternative editors for JMX files, in addition to standard JMeter GUI and XML editors.

- BlocklyJMX Editor - A web-based viewer and editor for JMeter test plan files (part of JMeter Plugins project).
- JEval - A Python-based utility which evaluates JMeter test plan and provides recommendations and best practices by analyzing each element.
- JMX Enhancer - A solution to expedite preparation of JMeter test plans.
- jmx.js - Web-based editor for JMeter JMX files 💀.

### Utilities

- Hamster - Swiftly launch your JMeter test plans from Mac menubar.

## APM Integration

Integration with Application Performance Monitoring (APM) tools to analyze the performance of application servers, database servers, and web services.

- Servers Performance Monitoring Plugin - Server monitoring plugin from JMeter Plugins project.
- CA App Synthetic Monitor - Transaction monitoring & testing solution with JMeter support.
- Performance Remediation using New Relic and JMeter: part 1, part 2
- Elastic APM integration - Manages the integration of Elastic Application Performance Monitoring API in Apache JMeter script.

## JMeter Performance

- JMeter Performance - JMeter performance evolution across versions.
- JMeter Performance and Tuning Tips - By Ubik Ingenierie.
- How to speed up JMeter: part 1, part 2

## Tips & Tricks

- JMeter tips - JMeter tips and tricks scratchpad.

## Books

- Apache JMeter: A Practical Beginner’s Guide to Automated Testing and Performance Measurement for Your Websites - By Emily H. Halili (Packt Publishing).
- Performance Testing with JMeter 2.9 - By Bayo Erinle (Packt Publishing); guide to test web applications using Apache JMeter with practical, hands-on examples.
- Performance Testing with JMeter, 2nd Edition - By Bayo Erinle (Packt Publishing).
- Performance Testing with JMeter 3, 3rd Edition - By Bayo Erinle (Packt Publishing).
- JMeter Cookbook - By Bayo Erinle (Packt Publishing); 70 insightful and practical recipes to help successfully use Apache JMeter.
- JMeter by Example - By Sai Matam and Jagdeep Jain (Leanpub); a simple, practical, step-by-step tutorial to measure the performance of websites.
- Pro Apache JMeter: Web Application Performance Testing - By Sai Matam and Jagdeep Jain (Apress).
- Master Apache JMeter: From load testing to DevOps - By Antonio Gomes Rodrigues, Bruno Demion (Milamber) and Philippe Mouawad (Leanpub, Packt Publishing).
- Advanced JMeter Testing - By Penny Curich (Leanpub), guide to write custom components for Apache JMeter 5.0.

## Trainings & Courses

- JMeter: Performance and Load Testing (Feb 2019) - By LinkedIn Learning.
- Advanced JMeter (Jul 2020) - By LinkedIn Learning.
- JMeter Training Courses - By NobleProg.
- BlazeMeter University - By BlazeMeter.
- JMeter Courses collection - By Udemy.
- Web Applications (and Mobile Apps) Performance Testing with JMeter - By Pragmatic Test Labs.
- Training courses on Load Testing with Apache JMeter - By Ubik Ingenierie.
- Apache JMeter Training - By QAInsights.
- JMeter Getting Started Course (Apr 2019) - By Pluralsight.

## Videos

- JMeter Tutorials - By Automation Step by Step.
- Learn Apache JMeter Series - By QAInsights.
- JMeter / Devops/ CI-CD / Cloud - By xavki :fr:.

## Community

### Blogs

- BlazeMeter Blog - BlazeMeter blog about JMeter and performance testing.
- Ubik Load Pack Blog - Ubik Ingenierie blog.
- TestAutomationGuru Blog - Technical blog on test automation.
- RedLine13 Blog - JMeter articles in RedLine13 blog.
- JMeter Blog - Another blog for performance & automation testing using JMeter.
- OctoPerf Blog - OctoPerf blog about JMeter and load testing.
- Abstracta JMeter Archives - Abstracta blog about JMeter.
- JMeter Basics - By João Farias.

### Forums

- JMeterPlugins Google Group

### Twitter

- @ApacheJMeter - Official Twitter account of the Apache JMeter load testing tool.
- @jmeter_plugins - Twitter account of custom plugins project for JMeter load testing tool.
- @BlazeMeter - Official Twitter account of Blazemeter, performance engineering platform for DevOps, based on JMeter.
- @masterjmeter - Official account of the Master Apache JMeter from Load Testing to DevOps book.
- @ubikloadpack - Twitter account of Ubik Load Pack, custom JMeter plugins for Video Streaming & complex protocols load testing.

### Q&A

- `jmeter` on Stack Overflow
- `jmeter` on Gitter
- `#jmeter` on Slack
- `r/jmeter` on Reddit

## Related

### Awesome Lists

- Awesome Software Quality - A list of free software testing and verification resources.
- Awesome Testing - A curated list of testing resources.
- Awesome Tsung - Open-source multi-protocol distributed load testing tool, developed in Erlang.
- Awesome Gatling - Open-source load and performance testing framework based on Scala, Akka and Netty.
- Awesome k6 - Open-source, developer-centric performance monitoring and load testing solution.
- Awesome Locust - Open-source scalable load testing framework written in Python.

### Other

- How They Load Test - A curated collection of publicly available resources on how companies around the world perform load testing.
- Load Testing Toolkit - Collection of open-source tools for debugging, benchmarking, load and stress testing your code or services.

## Contributing

Please take a look at the CONTRIBUTING guidelines first.

jmeter.md Github