A custom load harness for MQ Server

This is another blog in a similar vein to “No LoadRunner, No Problems” where I needed to write a custom test harness for MQ server. IBM kindly provide a complete Java API for getting in to the nitty gritty of MQ messages. Much can be learnt from WebSphere MQ sample code in Java and of course, if you ever get stuck in analyzing problems in your MQ setup you should always visit the MQSeries.net :: Index. Kevin Braithewaite wrote a really good harness that simplifies performance and stress testing with MQJavaRoundTrip. I have since written an extended version of this test harness that takes elements from many sources (including my own) and written a comprehensive test harness for MQ which is detailed in this post.

Read More

Setting up Amazon S3 Storage on Windows …

If you are interested in using Amazon S3 as an alternative backup solution, you may need to move files from your windows box to the S3 storage account. In order to do this I recommend you use a version of rsync written in ruby.

Detailed instructions can be found in this post.

Read More

Getting busy with statistics

The screenshot you see is an example of the graphs you can output in my descriptive statistics Excel templatePicture 1.png without using any macros. I often find moving averages and boxplots / histograms to be extremely useful in analyzing raw data for stress and volume testing …

So what are my favourite descriptive statistics I like to analyse data with?

1. Box plots and histograms are great for displaying distribution and give you a good insight to characteristics of the data you are analyzing. A standard box-whisker chart plots up to 5 data sets using box-whisker symbols. Variants are box plots without the whiskers. The 5 data sets are sometimes called the maximum, 3rd quartile, median, 1st quartile and minimum, although they can represent any kind of quantities.
2. Trend line charts. A trend line is a straight line that fits a number of data points computed using linear regression (the least square method). This is excellent for predictive analysis of data, especially if you get roped into capacity planning activities. You do however need a signficant empirical baseline from which to draw your results, which usually means you have to execute many test runs in order to establish the data.
3. Good old line charts. A line chart with thinned results (for easier presentation) can give immediate insights to where your transaction response times went wrong. This is good for coarse analysis of rows of data. Some variations of the line chart is the moving average as provided by excel. I’m not sure on the accuracy of moving averages though. Can be useful when trying to smooth the curve.
4. In a spline charts, the data points are connected together using cardinal spline curves (as opposed to straight lines). The “tension” of the curve can normally be configured.

Read More

No Load Runner? No problems!

Often you will find yourself just out of reach of some load test tools like LoadRunner, but don’t let that stop you generating load for your web apps. With enough patience and some careful use of live http headers you can achieve the same effect, albeit in a manually defined way. My BOLoader.pl script was written in perl to simulate logging on to a Business Objects server and pulling down canned reports. Simple enough when you use perl (WWW::Mechanize).

Read More

A Perl of an idea for try … catch clauses

The try…catch…finally clause found in languages like Java are very handy for error handling. In scripting languages like Perl you can achieve the same effect using the eval function as the following code snippet demonstrates.


eval{ &yourSubRoutine($parameters); };
$@ ? $yourLogObject->yourErrorMethod("I failed with reason: $@") ):
$yourLogObject->yourTraceMethod("Everything was good: $?") );

Read More