Scott Hanselman

Two tools for quick and easy web application load testing during development

August 10, 2016 Comment on this post [21] Posted in Open Source
Sponsored By

I was on the ASP.NET Community Standup this morning and Jon mentioned a new tool for load testing called "Netling." This got me to thinking about simple lightweight load testing in general. I've used large enterprise systems like SilkTest  as well as the cloud based load testing tools like those in Azure and Visual Studio. I've also used command-line tools like WCAT, an old but very competent load testing tool.

I thought I'd take a moment and look at two tools run locally. The goal is to see how easily I can do quick load tests and iterate on the results.

Netling

Netling is by Tore Lervik and is a nice little load tester client for easy and quick web testing. It's open source and on GitHub which is always nice. It's fun to read other people's code.

Netling includes both a WPF and Console client and is cleanly factored with a Core project that does all the work. With the WPF version you do test and then optionally mark that test as a baseline. Then you can make small changes as you like and do a quick retest. You'll get red (bad) or green (good) results if things get better. This should probably be adjusted to ensure it is visible for those with red-green color blindness. Regardless, it's a nice clean UI and definitely something you'll want to throw into your utilities folder and call upon often!

Do remember that it's not really nice to do load testing on web servers that you don't own, so be kind.

Note that for now there are no formal "releases" so you'll need to clone the repo and build the app. Fortunately it builds very cleanly with the free version of Visual Studio Community 2015.

Netling is a nice load tester for Windows

The Netling console client is also notable for its cool ASCII charts.

D:\github\Netling\Netling.ConsoleClient\bin\x64\Debug [master ≡]> .\netling.exe http://www.microsoft.com -t 8 -d 20

Running 20s test @ http://www.microsoft.com/
Threads: 8
Pipelining: 1
Thread afinity: OFF

1544 requests in 20.1s
Requests/sec: 77
Bandwidth: 3 mbit
Errors: 0
Latency
Median: 99.876 ms
StdDev: 10.283 ms
Min: 84.998 ms
Max: 330.254 ms





██
███
████████████████████ █ █ █
84.998 ms =========================================================== 330.254 ms

D:\github\Netling\Netling.ConsoleClient\bin\x64\Debug [master ≡]>

I'm sure that Tore would appreciate the help so head over to https://github.com/hallatore/Netling and file some issues but more importantly, perhaps chat with him and offer a pull request?

WebSurge

WebSurge is a more fully featured tool created by Rick Strahl. Rick is known in .NET spaces for his excellent blog. WebSurge is a quick free download for personal use but you should register it and talk to Rick if you plan on using it commercially or a lot as an individual.

WebSurge also speaks the language of the Fiddler Web Debugging Proxy so you can record and playback web traffic and generate somewhat sophisticated load testing scenarios. The session files are just test files that you can put in source control and share with other members of your team.

image

I realize there's LOT of choices out there.  These are just two really quick and easy tools that you can use as a developer to easily create HTTP requests and then play back at will and iterate during the development process.

What do YOU use for load testing and iterating on performance during development? Let us all know in the comments.


Sponsor: Big thanks to Redgate for sponsoring the feed this week. Could you deploy 1,000 databases? Imagine working in a 70-strong IT team, with 91 applications and 1,000+ databases. Now imagine deployment time. It’s not fiction, it’s fact. Read FlexiGroup's story.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
August 10, 2016 5:11
Damian showed Netling in NDC Sydney. Was really nice to see such a handy tool. Of course there are CLI tools around already but this one is really handy and easy to quickly start with.
August 10, 2016 5:15
We have used VS2012 LOAD testing.
Now exploring jmeter .
August 10, 2016 6:02
Looks Promising. I liked this one : http://www.loadtestingtool.com/
August 10, 2016 8:23
We go all in with VSTS and Azure for load testing and perf analytics. Gives good integration in the lifecycle. http://clemensreijnen.nl/post/2016/06/15/Load-and-Performance-monitoring-and-analyzing-with-VSTS-and-Azure
August 10, 2016 10:19
Thanks for introducing these tools, will explore them soon.
August 10, 2016 12:13
In the article when you say this "I'm sure that Tore would appreciate the help so head over to https://github.com/hallatore/Netling and file some issues but more importantly, perhaps chat with him and offer a pull request?"

I'm confused - new to Git guy, hating it that all the GUI tools are deficient in some way - pull means updating your repo from some other repo, for me this has typically been pulling from origin/develop during working on a new version. So surely this should say "offer a push" if you are contributing code?
August 10, 2016 12:46
Hi Peter,

It's a "Pull Request". You are requesting him to pull your changes so he can look at them.

Regards,

Andrew
August 10, 2016 14:20
Scott: One major part of Netling is it's performance. It will give Kestrel a run for it's money on localhost while using little CPU itself.

That's also why it works well for localhost testing, since it uses little CPU compared to others I've tested.
August 10, 2016 16:16
I'm assuming Netling is related to Gatling, which is another tool - and I haven't tried any of them :(
August 10, 2016 16:44
Sam Judson: I was using Gatling when I created Netling. So the name is somewhat releated, but they are very different. (Gatling does more, more features etc. But it also takes more time to set up and uses more cpu)
August 10, 2016 18:40
For a quick load test I still like Apache Bench (ab.exe)
August 10, 2016 21:22
Do either of these tools have a way to handle forms authentication ?

that's usually the stumbling block for me with these sorts of tools.
August 10, 2016 21:25
Mike J: Forms auth just adds a cookie. Get this cookie from chrome for example and add it to the netling code that you compile yourself. That's the easiest way to get this working.
August 11, 2016 6:00
I used Loader.io before and had a good experience with it.
August 11, 2016 14:19
Nice one, thanks!

Another good option for dev and QA is Loadster - https://www.loadsterperformance.com/
There is a free and paid version, very good reports that can be shared with clients.
Kat
August 12, 2016 2:11
Saw this on ASPNet Community Standup. Glad to see it highlighted here too!
August 12, 2016 19:10
RedLine13.com for running load tests on your own cloud, example load test with 90 t2.micro servers for $3.07 USD https://twitter.com/redlinethirteen/status/763436546737315840
August 16, 2016 6:10
Thanks you introduce these tools.
I wonder how come i work in .NET 10+ years,but never found these tools and stay on Fiddler or something like JMeter.
August 16, 2016 16:04
Thanks for sharing this post. It's really great piece of information as we were only using Fiddler for this purpose. Never knew these tools exists.
August 17, 2016 17:42
StresStimulus is a load testing Fiddler add-on and a standalone tool. It replays captured or composed traffic with multiple users, and monitors Windows performance counters. Its forte is testing thought applications like Dynamics CRM and NAV. 250 emulated users are free.

September 02, 2016 4:35
I'm confused - new to Git guy, hating it that all the GUI tools are deficient in some way - pull means updating your repo from some other pokevolver repo, for me this has typically been pulling from origin/develop during working on a new version.

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.