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.
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:
- Create a basic test plan using the proxy feature of JMeter.
- Clean-up the test plan plan and make it work for a single user.
- Add some test assertions, as you would when unit testing.
- Modify the test plan to work for a number of concurrent users.
- Run the plan in JMeter headless mode.
- Parameterise the number of threads (users), website hostname and port.
- Modify the plan to make it more realistic (e.g. simulating user think time).
- Execute the tests and capture the results data.
- 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.
- Slides (online view)
- Slides (PDF; 8MB)
- Enhanced slide pack (Evernote format; 20MB)
- ASP.NET web app (Visual Studio solution)
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.