Need to prepare for high load?

$ npm install -g artillery  

Artillery is a modern, powerful & easy-to-use load testing and functional testing toolkit. Use it to ship scalable applications that stay performant & resilient under high load.

♥ by developers, QA engineers and SREs


Artillery Quick Start Guide

Install Artillery and run your first load test with our 5 minute tutorial.

(Looking for something more advanced? Learn about load testing Socket.io apps, adding randomness to your tests, or sending real-time metrics to StatsD)

Star


Why Artillery?

  • Test any API or backend: Artillery allows you to test HTTP, Socket.io, WebSockets, and AWS Kinesis out of the box. Custom engines can be added easily and a number of community engines are available.
  • Emulate complex user behavior with scenarios: Define complex user behavior with multiple steps and transactions, loops, conditionals and custom Javascript code. Perfect for complex apps such as e-commerce backends, transactional APIs, IoT backends, chat services, game backends and all kinds of stateful services.
  • Easy to learn, easy to use: Artillery's scenarios are written in YAML (and as much or little Javascript as you need), making your test scripts easy to read, write and maintain. Everybody on your team can read YAML (developers, QA engineers, SREs, BAs) and Javascript is the most widely known programming language on the planet, which makes cross-functional and cross-team collaboration easier. And of course since everything is code, it can all go into source control.
  • Detailed perfomance metrics: See response times/latency percentiles, requests per second, concurrency, throughput, or track custom application-specific metrics with a tiny bit of Javascript code. All metrics are availble as text or structured JSON, and Artillery can ship those to an external monitoring system such as Datadog, Librato or Influx.
  • Full power of Javascript and NPM: Add custom behavior to your scenarios or to Artillery itself with Javascript. Use any module from NPM to get things done quickly.
  • Actively developed and supported: Artillery is under active development with a variety of community-developed plugins and engines available. Commercial support is available for enterprise teams.
  • Open source: Artillery is open source under MPLv2, which is an OSI-approved, permissive, and non-viral license.
  • Load + functional testing: Re-use the same scenarios to run either load or functional tests. Use assertions and expectations on the responses, and easily extract and store data from responses to re-use in subsequent requests.
  • Scales with your usage: Artillery can generate thousands of requests per second on a laptop or a mid-tier cloud VM, with the ability to take advantage of multicore CPUs. And when you need to run a distributed test, DIY & run it in Docker on your favorite cloud platform such AWS ECS or Google GKE, or use Artillery Pro.
  • Batteries included: Test systems using a number of protocols (HTTP, Socket.io, WebSockets, AWS Kinesis), send metrics to external monitoring systems such as Datadog, Librato or Influx or anything else that speaks StatsD.
  • Automate and extend: Artillery is built with automation in mind. The artillery CLI is nice & Unixy, and easy to wrap in other scripts and integrate with CI/CD systems. JSON log output is supported to enable easy custom reporting or assertions. There's an official Docker image. And Artillery itself is easy to extend in Javascript with custom engines (for additional protocols), plugins (e.g. to generate data for tests or integrate with external systems), or custom reporters (to send metrics and test results to another location).
  • Enterprise-ready: Artillery Pro is a commercial cloud-native solution for performance testing built with the needs of modern cross-functional teams in mind. It runs in your own AWS account, allows your organization to provide a self-serve load testing platform to your teams, and provides unmatched flexibility and cost-efficiency for running large-scale frequent load tests against a large number of services.

performance, scalability, and resilience start with load testing