Artillery is a tool for generating load on HTTP, Socket.io, and WebSocket-based applications. It provides support for scripting complex virtual user interactions (for example acquiring an auth token, performing a search operation, and then loading one of the search results), as well as detailed stats and graphical reports to help analyse performance.
Artillery is great for testing ecommerce websites, API servers, microservices or any applications that speak HTTP, Socket.io or WebSockets.
Artillery has a strong focus on developer happiness and a batteries-included philosophy.
Artillery is open-source like ab, wrk, JMeter and Gatling.
Artillery has a "quick" mode which allows for it to be used in a manner similar to ab or wrk. JMeter and Gatling require that a full scenario be written for every test.
Artillery supports scripting virtual user behavior like JMeter and Gatling (but not ab or wrk).
JMeter and Gatling run on the JVM, whereas Artillery is written in Node.js making it easier to install and more lightweight.
Artillery has WebSocket support out of the box, like Gatling. JMeter requires a plugin (ab and wrk only support HTTP). Artillery has native support for Socket.io unlike either JMeter or Gatling.
You can expect to generate around 1.2k RPS on an entry level VPS. We are working on an extensive suite of benchmarks to be published soon.
If you run Artillery in distributed mode, then the load is only constrained by the number of machines and their specs.