Monday, June 8, 2015

JMeter Dashboard - Realtime monitoring of your JMeter load test.

Date: 06/05/2015

JMeter is a great tool! I used it as a load testing tool for analyzing and measuring the performance of our web application & RESTful APIs. I replaced the "LoadRunner tool" from HP with JMeter, as it was much more cost effective. Since we were the only people in the company to use LoadRunner, it didn't make sense to keep it around.

Of course, commercial products have their values, but for the amount of testing that we do, JMeter is more than sufficient and most importantly... it is FREE!

One of the nice features in LoadRunner is the ability to see a real-time report. It gives you an early indication on how your tests are doing. Based on that information, you may choose to stop it or proceed with it. This is something that you don't quite get in JMeter. Yeah... yeah.... they have listeners.... But listeners are heavy consumers of resources. Each report require a different listener, you might easily end up with multiple listeners in your test plan. It helps when you just try to do basic testing and debugging, but doesn't work well in heavy load. I kept hitting out of resource error when I tried to load tests for a longer period of time even with only 1 listener. I don't know about you... but I also feel that JMeter reports are unattractive. All that said... it is still FREE.

So I was looking for tools that would give me an instantaneous result but I couldn't find any. The closest is from a company called "Blazemeter", where they help to run JMeter scripts from their cloud servers. They have pretty nice real-time reports. They also created an open source tool called "Taurus" which consolidates and automates your JMeter script testing, but I haven't had a chance to work on that yet.

All the tools I found either generate the reports after you have completed the test (example: from "" - acquired by Blazemeter recently) or require you to pay for it (example: Blazemeter). Being the cheapskate that I am, I tried to create it myself. It is not the best thing on earth, but it is definitely a good start.

I called it "JMeterDashboard: Mac-Monitor" (Mac is my dog, I use his name everywhere since I can :) ). This tool is a Windows-based application created with WPF Framework C#.Net. I am using the WPF Toolkit, mainly chartingToolkit. It reads the 'jtl' file while your JMeter Scripts are running, and produces reports. There are some limitations on using the free toolkit for chart creating, but it does the job.

I am putting it in Github so you may download it and use it. Please refer to the Disclaimers, I am sure there are still plenty of bugs in there but hopefully you may be able to help contribute to it. You will have access to all the code and able to see how I calculate the reports. There are many approaches that you can take to analyze your tests and I hope to get some feedb ack from this.

Here are some screen shots:
Real-time monitoring

Summary Report