Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DublinJS - artillery.io

DublinJS - artillery.io

artillery.io - load-testing with Node.js ⚡️

hassy veldstra

February 02, 2016
Tweet

More Decks by hassy veldstra

Other Decks in Technology

Transcript

  1. • Node.js – mostly big companies moving from Java and

    .NET • DevOps – on AWS, with HashiCorp tooling $: whoami
  2. • Load-generator – sends a lot of requests/messages to a

    server, very quickly • Simulates virtual users Artillery?
  3. • Load-generator – sends a lot of requests/messages to a

    server, very quickly • Simulates virtual users • Written in Node.js Artillery?
  4. • Load-generator – sends a lot of requests/messages to a

    server, very quickly • Simulates virtual users • Written in Node.js • Open-source Artillery?
  5. • Building a chat app • Needed to load-test to

    100k concurrent WebSocket connections Origins
  6. • Building a chat app • Needed to load-test to

    100k concurrent WebSocket connections • Tools not up to scratch, got there (1M in fact) but much pain Origins
  7. • Building a chat app • Needed to load-test to

    100k concurrent WebSocket connections • Tools not up to scratch, got there (1M in fact) but much pain • “There has to be a better way” Origins
  8. • You know when you need it • A lot

    of fun can be had with a load-generator Load-testing
  9. • You know when you need it • A lot

    of fun can be had with a load-generator • PDD Load-testing
  10. • You know when you need it • A lot

    of fun can be had with a load-generator • PDD • Load-testing in production (yes!) Load-testing
  11. • You know when you need it • A lot

    of fun can be had with a load-generator • PDD • Load-testing in production (yes!) • Experimental benchmarking Load-testing
  12. • npm install artillery • Nice CLI • Test HTTP(S)

    and WebSockets • Simulate complex behavior / transactions Features
  13. • npm install artillery • Nice CLI • Test HTTP(S)

    and WebSockets • Simulate complex behavior / transactions • Just JSON / YAML Features
  14. • npm install artillery • Nice CLI • Test HTTP(S)

    and WebSockets • Simulate complex behavior / transactions • Just JSON / YAML • Generate graphical reports (nice charts etc) Features
  15. • npm install artillery • Nice CLI • Test HTTP(S)

    and WebSockets • Simulate complex behavior / transactions • Just JSON / YAML • Generate graphical reports (nice charts etc) • Good performance (1.5k RPS on a modest VPS) Features
  16. • HTTP/2 support • Distributed mode (that’s easy to use)

    • HTTP performance improvements Coming in 1.4
  17. • HTTP/2 support • Distributed mode (that’s easy to use)

    • HTTP performance improvements • AMQP support Coming in 1.4
  18. • More protocols supported out of the box • Even

    more performant • Even easier to use Future
  19. • More protocols supported out of the box • Even

    more performant • Even easier to use • Enterprise-grade load-testing, in Node.js Future
  20. • Write an engine • Write a publishing plugin •

    Write a tutorial • Help improve the reports Contribute
  21. • Write an engine • Write a publishing plugin •

    Write a tutorial • Help improve the reports • Use Artillery and file any bugs you find Contribute