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

Load testing your application

Load testing your application

Embark on a comprehensive journey through load testing with this insightful speaker deck, 'Load Testing Your Application'. This presentation thoughtfully commences with Autocannon, then progresses through k6, and culminates with an exploration of Locust, providing a well-rounded understanding of these pivotal tools in application performance testing.

Autocannon – The High-Velocity Start: The deck initiates with Autocannon, a high-performance, HTTP/1.1 benchmarking tool built with Node.js. This section showcases how Autocannon effortlessly conducts thousands of requests per second, making it an ideal choice for gauging the throughput and latency of your HTTP server. With its user-friendly command-line interface and robust programmable API, Autocannon serves as the perfect starting point for developers seeking to stress-test their applications quickly and efficiently.

k6 – The Developer-Friendly Middle: Next, the focus shifts to k6, a modern load testing tool that emphasizes simplicity and developer-friendliness. This portion of the deck delves into k6's capabilities in scripting complex load test scenarios and simulating traffic patterns and user behaviours that mirror real-world conditions. The deck highlights k6's seamless integration into CI/CD pipelines, illustrating its critical role in continuous performance optimization.

Locust – The Python-Powered Finale: Concluding the presentation is an in-depth look at Locust, an open-source load testing tool renowned for its flexible scripting in Python. This section illuminates Locust's strength in creating customizable test scenarios, capable of simulating millions of simultaneous users. The deck underscores Locust’s real-time web UI, allowing users to monitor the performance impact live and identify bottlenecks as they occur.

Attendees will gain valuable insights into selecting and utilizing the right load-testing tools for their specific needs throughout this speaker deck. Each segment is enriched with practical examples, tips, and best practices, making this an indispensable resource for anyone aiming to enhance the resilience and performance of their web applications under diverse load conditions.

Abdulhafeez Abdulraheem

January 13, 2024
Tweet

More Decks by Abdulhafeez Abdulraheem

Other Decks in Technology

Transcript

  1. Load Testing Your Application By AbdulHafeez AbdulRaheem (Feezy | Hendrix

    | Arishem | eHnDrix | Steve Mcqueen and Others).
  2. About Me? • Software Engineer with 7 years experience. •

    Mostly about the backend lifestyle. • Enjoy’s math, chess and video games • Sweet boy supreme. • If you ask me about anything, there’s a 69% chance I know something about it (jk).
  3. What is this load testing? • Simpler term? Setting your

    application on fire, too see how much burn it can take. • Actual term? Load testing is a type of performance testing used to determine a system's behavior under both normal and anticipated peak load conditions
  4. Why you should load test your application? • Performance Benchmarking

    • Scalability Insights • Identifying Bottlenecks • Ensuring Reliability and Stability • Cost Optimization • It’s the “senior” thing to do.
  5. Tools we would be exploring • Http Benchmarking ◦ Autocannon:

    https://github.com/mcollina/autocannon • Load Testing Tool ◦ K6: https://k6.io ◦ Locust: https://locust.io
  6. Autocannon Pros: • An HTTP/1.1 benchmarking tool written in node.

    • ```npm i autocannon -g``` Cons: • Autocannon can saturate the CPU. • It doesn’t compile to binary. • It’s written in Node Fam, get serious.
  7. K6 Pros: • Developer Friendly • Performance • Open Source

    Cons: • Not suitable with client side • Supports limited protocols • No GUI
  8. Locust Pros: • Python based • Web-based UI • Scalable

    and Lightweight Cons: • Python based • Resource Intensive for Large Scale test • Less Suitable for other Protocols
  9. Sadly? Grunt work A load testing report. NB: Mostly done

    by QA • Collect and Aggregate from your load tests • Analyze results and create Visualizations (This helps a lot to paint of mental picture of what's going on with your application). • Write the report (No shit sherlock). • Include performance review suggestions • Report Review by team members