Artillery
Modern load testing toolkit with YAML scenarios and JavaScript hooks.
Pricing
Freemium
Type
Automation
Languages
JavaScript, TypeScript
// VERDICT
Reach for Artillery when you want config-first load (and smoke) tests in YAML/JS that drop easily into CI, with cloud scaling when needed. Skip it when you want a GUI (JMeter), a different ecosystem (Gatling/Locust), or enterprise protocol breadth.
Best for
Modern load and smoke testing defined in YAML (or JS) - quick to start, good for HTTP/WebSocket/Socket.io, with cloud/serverless scaling, suited to JS/TS teams who want config-first load tests.
Avoid when
You want a GUI tool, a JVM/Python stack, or the deepest enterprise protocol coverage.
CI/CD fit
Artillery CLI · GitHub Actions · GitLab CI · Jenkins · AWS Lambda/Fargate scaling
Languages
JavaScript · TypeScript
Team fit
JS/TS teams · Teams wanting config-first load tests · DevOps adding load to CI
Setup
Maintenance
Learning
Licence
// BEST FOR
- Defining load tests declaratively in YAML (or JS for logic)
- Quick HTTP, WebSocket and Socket.io load testing
- Running smoke + load checks from the same tool
- Scaling out via serverless (Lambda/Fargate) when needed
- JS/TS teams wanting load tests in a familiar ecosystem
- Dropping load checks into CI with minimal setup
// AVOID WHEN
- You want a GUI / record-and-playback tool (JMeter)
- Your stack is JVM (Gatling) or Python (Locust)
- You need the deepest enterprise protocol coverage (LoadRunner)
- Complex scenarios outgrow the YAML model (drop to JS or another tool)
- A managed enterprise platform with support is required
- You only need a quick one-off HTTP benchmark (wrk/Vegeta)
// QUICK START
npm install -g artillery
# config.yml: phases (arrivalRate/duration) + scenarios (flow of requests)
artillery run config.yml// ALTERNATIVES TO CONSIDER
| Tool | Choose it when |
|---|---|
| k6 | You want a scripting-first JS engine with strong thresholds. |
| Locust | You prefer Python and code-defined user behaviour. |
| Apache JMeter | You want a GUI/record-based tool with broad protocol support. |
// FEATURES
- YAML-based scenarios with JS hooks
- HTTP, WebSocket, Socket.io, gRPC, and Playwright engines
- Browser-based load testing via Playwright
- Distributed testing in AWS (Artillery Cloud)
- Plugin ecosystem and custom processors
- Detailed JSON reports and dashboards
// PROS
- Low barrier to entry with YAML
- JS hooks unlock arbitrary complexity
- Browser load testing is a unique niche
- CI-friendly out of the box
// CONS
- Distributed testing requires AWS and the paid tier
- Reporting less detailed than Gatling out of the box
- Node.js single-process throughput limits
// EXAMPLE QA WORKFLOW
Install Artillery (npm)
Write a YAML test with arrival-rate phases and scenarios
Add JS for custom logic where needed
Run via the CLI locally
Add thresholds and gate CI on them
Scale out via serverless for higher load
// RELATED QA.CODES RESOURCES
Cheat sheets
Glossary
Practice