Monday, August 2, 2010

A simple, little web load tool

There are many ways of doing performance testing of web applications. In the good ol’ days I remember starting up Microsofts Application Center Test (ACT) and recording some vbscripts that could later be executed. Nowadays ACT is a lot sexier – but now it comes with Visual Studio 2010 but unfortunately only in Ultimate edition. I tried to persuade my wife to spend the $11000 on the ultimate edition – but she failed to see why this was more important than buying her a car.

Another good option is to use WebLoad. It’s a neat tool – and even if you buy it (to actually get a compiled and running version instead of the do-it-yourself-open-source) it still comes at a more decent price point. I recently played around with it – and it does solve a lot of your performance testing needs – but it’s almost a bit too much overkill for my need (which is essentially to find out how many request/s a web site can handle). I also didn’t like that it hijacked all my browsers and forced them to go through a proxy (in order for it to record what was going on) – and then failing to reset the proxy selection afterwards.

In the end I decided to spend the 30 min it would take to do a simple little performance tester of my own – that does exactly what I want it to.

I came up with AWebLoadTesting which is a compact and ultra-simple console app. It takes an input file which is essentially a text file with a list of urls to visit for each visitor during the test, an output filename – in which it will put a csv file with saved statistics – and that’s about it. If you need to you can also specify a hostname to run the test against – and even a custom UserAgent for the requests.


When it starts you have 0 visitors active. Then, by pressing “+” you can add visitors one at a time – and by pressing “1” and “5” you can add chunks of 10 or 50 visitors at a time. Each visitor is started in its own thread and will continuously go through the urls from the input file again and again.

“u” updates your view, “r” resets the counters", “s” saves the current data to the output file, “-“ removes a visitor” and of course “q” quits.

You’ll constantly be presented with the measured numbers: Time measured (s), Requests / s, Visitor count, Max load time, average load time and min. load time. On top of that it will show you a prioritized list of which urls are the slowest to return. That’s it.

The screenshot above is a test against a local EPiServer CMS 6.0 web site on my laptop, running with ASP.NET caching turned on (Set cache-expiration to 1h in episerver.config, site settings).

Download the binary here and the entire project here. Use AS-IS, LGPL 2.0, Quick&Dirty.

Monday, May 17, 2010

And a (non-virtual) role change

May 1st I arrived back in Denmark after spending a year in the US assisting with assembling and training the GREAT team that we have there now as well as working with some truly skilled and passionate partners (you know who you are). I must say it’s been a great learning experience as well as a very exciting time – both for EPiServer but also for me personally.

Now, that I’m back in the old world again it seemed like a good time to try a new angle at producing great software – and as luck would have it I was offered to try on the shoes as product manager. Even though I’ve always had a deep passion for coding I’d love a chance to really influence the future of creating great web sites in a way that only a product manager at EPiServer can do it.

I believe that the most important job for any software product company is to create software that solves real problems that people in their markets have. This is the key factor that more than anything should be driving both the development and sales process – solving real problems for real people. And of course solving the problems in a carefully designed and planned manner so the solutions adapts to the users needs and skills – and not the other way around. Too many times have I seen countless examples of technology and features in various products (in all industries) that are there for no other other reason than adding a feature – but not solving any real problems. Flashy as some of it may seem it’s still essentially useless. The consequence: development time that could have been spend solving problems wasted, and users confused with features that doesn’t make sense.

Luckily EPiServers history shows that we have been very successful in solving real problems. And I believe that’s why so many web sites, editors, developers and marketing people use our entire product portfolio as their platform of choice today. But of course we can still do even better. Especially with YOUR help. I want to learn how you use EPiServer CMS. And even if you don’t use it – tell me how you manage your online content and which problems we could solve for you.

Wednesday, May 5, 2010

Yo, Halo Reach Beta Peeps

A long time ago I wrote about shotcodes and for that purpose I even put a shotcode on the web site linking to this web site. It would finally seem like I now get my 15 sec of fame, since Halo Reach supposedly have used a graphic with some similarity to my shotcode in the game (see the computer terminal to the right here). After Zoidberg25 “cracked” this in the Bungie forums I’ve gotten a certain amount of visitors looking through my blog for hidden clues – or maybe even an ARG.

Although I appreciate all traffic and every single visitor to my blog is very welcome, I feel that I should probably come clean. I can deny any and all rumors that this blog is part of an intricate scheme to hide secret game codes or Easter eggs. Or maybe not. Feel free to read through every single post and comment – look for hidden codes and clues (remember that the classical Substitution Cipher is always a popular way to hide secret stuff in plain view. While you are trying to crack this one, feel free to click the links and read what my sponsors have to say. And if the adds generate enough revenue I might even buy that silly game of yours and see what all the fuzz is about (if I actually manage to clean the dust off my Xbox 360).

Sunday, February 14, 2010

Awesome nostalgia trip!

Do you remember the good old Sierra Quest games? Well – I do. I loved those games. Especially police quest I->IV which could run on my dad’s old PC. I’d play them again and again during the late 80’ies / early 90’ies and to this day I hold them responsible for me learning english (although my english teacher in primary school did give it a nice try as well). Of course, Space Quest, Kings Quest and the immortal Leisure Suit Larry were classics I played as well.

Anyway, yesterday sitting in Philadelphia airport waiting for my flight back to civilization (Chicago) made me think: If only someone would port those old abandon-ware classics so I could run them on my iPhone. And guess what – Martin Kool has. And not just to the iPhone – they have been converted to javascript and can run on pretty much any modern browser. And now they even have multiplayer mode.

Check out the great web site here – but be prepared that it will take you hours before you can once again escape from nostalgia land.

Martin: I’m a great fan of your work. Keep it up – can’t wait to see more classics out there.