Load Testing for Developers

A half-day tutorial at the Progressive .NET Tutorials

September sees me picking up the travel baton again and one of the things I'm doing is a half-day session at the Skills Matter Progressive .NET Tutorials in London on the 6th.

Progressive .NET Tutorials

The session is called Load Testing for Developers and it's exactly what it says on the tin ... an introduction to load testing for developers. You can be as progressive as you like with the .NET platform, but performance and scalability problems can still rear their ugly heads regardless of the technology you're using.

Have you ever built a software system and your users have complained that it’s too slow? I have; debugging live performance and scalability issues with business sponsors watching over your shoulder isn’t fun! Load testing is an often forgotten and seemingly difficult task that many people shy away from but a basic level of load testing is often enough to give you confidence that you've satisfied expectations regarding performance and scalability. This tutorial will look at how to load test your website and you’ll learn:
  • What load testing is all about.
  • How to implement a load testing script using the free and open source Apache JMeter tool.
  • How to run a load test and monitor the environment (the load testing client and your website server environment).
  • How to process, analyse and present the results.

The tutorial is a mix of presentation, discussion and hands-on exercises where we'll be looking at some of the theory behind load testing before trying it out with Apache JMeter. Specifically, we will:

  1. Create a basic test plan using the proxy feature of JMeter.
  2. Clean-up the test plan plan and make it work for a single user.
  3. Add some test assertions, as you would when unit testing.
  4. Modify the test plan to work for a number of concurrent users.
  5. Run the plan in JMeter headless mode.
  6. Parameterise the number of threads (users), website hostname and port.
  7. Modify the plan to make it more realistic (e.g. simulating user think time).
  8. Execute the tests and capture the results data.
  9. Process the results and draw conclusions.

Software

If you're coming along and want to participate in the hands-on exercises, you'll need the following installed on your laptop:

  • Microsoft Visual Studio (2008 or 2010; to run a C#/ASP.NET 3.5 web application).
  • Java SE Development Kit (version 6 or 7).
  • Apache JMeter 2.5 (download the ZIP version and unzip it somewhere obvious).
  • Evernote (optional; if you want the enhanced slide pack).

Material

Here are links to download the material we'll be using in the tutorial.

Load testing is a natural extension to should be part of the developer or architect role if you're building web applications and not something that should be left until the very end of the software development lifecycle. Come along if you want to find out how easy load testing can be.

About the author

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.

You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.



Re: Load Testing for Developers

I'm glad to see this kind of articles which are promoting load testing during development and done by developers. This is exactly where the industry trends is headed! If you would like to run your tutorial with a product a bit more up to date with the latest technology and which provide real-time analytics and still free, I recommend you take a look at SOASTA CloudTest Lite http://www.soasta.com/cloudtest/lite/ There are plenty of training videos to get you started: http://cloudlink.soasta.com/t5/Training-Videos/bg-p/TrainingVideos Have fun! Fred

Re: Load Testing for Developers

Thanks Fred ... indeed, there's no real reason why it shouldn't be a part of the day-to-day development practices. Nothing to lose and everything to gain.

Thanks for the links. I've watched the first video and it looks interesting so I'm going to have to download and have a play. Another item on the todo list but at least something I can do while travelling over the next few months. :-)

Re: Load Testing for Developers

It is great to see developers doing load testing! It should be part of every web development project. If you would like to try a tool that gets you testing as quick as possible, without writing code, try out Web Performance Load Tester! http://www.webperformance.com/load-testing/load-tester.html Chris

Re: Load Testing for Developers

Hi Simon,

I'm glad to see the importance of load testing being done by developers and not just the "QA" team being pushed.

I think it's also important to emphasize the use of a solution that fully integrates into the development lifecycle (preferably using a CI tool such as Jenkins or TeamCity).

We built BlazeMeter on top of JMeter with this in mind and allow you to truly do agile development with JMeter load testing (we have plugins to all the major CI tools).

You should check it out: http://BlazeMeter.com

Ophir

Add a comment Send a TrackBack