A collection of videos, talks and tools about performance engineering and testing.
From Wikipedia, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.
Contributions are always welcome!
- Load Testing Tools
- Load Testing Platform
- Application Performance Monitoring Tools
- Browser Performance Testing
- Talks
- Articles
- gatling – highly configurable performance testing framework in scala, support multiple static/dynamic scenarios and html5/csv outputs
- jmeter – Apache JMeter™, complete performance test suite with support for dynamic scenarios and various plugins
- bombardier – benchmarking tool using
fasthttp
- fasthttploader – simple benchmarking tool with basic charting
- goad – AWS Lambda powered distributed load testing tool, good for multi-region testing
- gobench – HTTP/HTTPS load testing and benchmarking tool, lacks configuration
- hey – configurable load generator and load test tool, currently only output csv
- slow_cooker – load tester focused on lifecycle issues and long-running tests with periodic reports
- sniper – high-performance http load tester supports large files, support html5 reports
- vegeta – configurable HTTP load testing tool, can also be used as a library for dynamic scenarios, good outputs.
- ab - the og of benchmarking tools, slow and single threaded
- apib - extension of
ab
with fewer dependencies and non-blocking IO for concurrency - curl-loader -
- httpref -
- weighttp - lightweight benchmarking tool, only support a small fraction of HTTP protocol
- wrk2 - based on original
wrk
by Gil Tene, enhanced to be resistant to coordinated omission problem.
- yandex-tank (python) - extensible load testing tool, uses yandex's own
phantom
engine in the background, capable of generating ~100000 tps. - locust.io (python) - configurable load testing tool, can define user behaviour and run across multiple machines or kubernetes cluster
- artillery (nodejs) - highly configurable load and functional testing toolkit, allows dynamic scenarios and can ship metrics to external monitoring systems
- tsung (erlang) - distributed load testing tool, can simulate hundreds of users from single machine or distribute them on clusters
- postman/newman - using
newman
cli as a postman collection runner
- BlazeMeter - scalable, open source-based performance tests against web apps and services, support multiple performance script jMeter, Gatling etc...
- Gatling Frontline - enterprise version of gatling.
- Artillery Pro - load test tool deployed to your AWS account, allows distributed load testing
- flood.io - platform to execute load tests in the cloud, highly scalable, supports selenium, jmeter and gatling scripts.
https://github.com/bestiejs/benchmark.js
- New Relic APM - real time application performance monitoring, end to end transaction tracing
- New Relic Browser - client side error and performance monitoring, observes page loads, response time and establish baseline for ongoing monitoring.
- Nginx Amplify - a tool for comprehensive NGINX monitoring. With NGINX Amplify it's easy to proactively analyze and fix problems related to running and scaling NGINX-based web applications.
- jHiccup - jvm agent to monitor for 'hiccup' in application
- tigerprof - Java profiling tool which uses JVM TI. It can be used in conjugation with Flamegraph
- HdrHistogram - library used to create high dynamic range histogram or percentile plot, available in various languages.
- using open source tools for performance testing - Goranka Bjedov
- Performance tests with Gatling - Andrzej Ludwikowski
- How NOT to measure latency - Gil Tene