Tools I like to keep in my toolbag

Over time I have been putting together a list of tools (mostly freebies) that I use as part of Performance Testing and website performance analysis.

Some I use daily , others once per project.

YSlow

Built by Yahoo and available as an add-on to Firebug for Firefox or as an extension in Chrome.

Gives pages on websites a score – using key metrics – for example whether compression is in use, or whether JS is at top or bottom, cache policies etc

The rules can be tailored – If CDN is not on the radar – take this out of the mix

It also shows component size and time and very usefully  shows cold versus primed cache requests

It gives a raw timing of page load time – this could be on every testers browser then it should be useful even on SIT environments to see if pages > 4 seconds etc….

Firebug

Needed if you are using Firefox and want YSlow – but is great anyway.

Shows the waterfall of the page loading – shows how the page elements drop in and which ones hold up others.

Allows you to see header and request details – highlight elements

Tamper Data

Good security add-on for Firefox – allows you to intercept the request after page validation and before submitting to server – excellent for seeing if userids etc are sent plain – and allows users to tamper with the data (hence the name)

If, for example, you intercept a call with a login id , what happens if you increase the value by 1 – do you see your own data, error or other persons details.

HTTPWatch (free or paid)

Much like firebug it shows the waterfall of the page elements – free version allows saving and printing (paid version shows more detail of each call)

WebPageTest

You can host your own instance ( needs apache and php ) – this allows you to get waterfall and timings either on demand or regularly (use of WPT monitor)

It’s an end game solution – at a former client we had this monitoring the production site, staging and the UI development boxes to see page size and time changes over a longer period of time.

Xenu Link Sleuth

A fantastic freebie tool for crawling a website to find broken links.

Also I use this for building up lists of URLs for doing site wide tests.

Fiddler

Another tool for seeing what is being sent around – like tamper data

it has some cool add ons like Stress Stimulus which allows some very basic load testing to be done

Dynatrace

lots of options here – the web edition for measuring the response of AJAX

If you’ve got the cash the server version is excellent and will cut down your problem diagnosis time.

Follow up on User Agent and how to test mobile sites

>If you long to see what a site that is optimised for mobile will look like but don’t have a mobile device to hand what do you do?

In yesterday’s post I alluded to a couple of tools for switching your user agent so that smart sites that define their behaviour accordingly are fooled.  Well it’s probably a good idea to give you a some links to these.

My favourite is a firefox addon called User Agent Switcher by chrispederick – and you can get it at:
 https://addons.mozilla.org/en-US/firefox/addon/59/

Safari 5 has an easy built in User agent switcher, to activate you need go into options\preferences – under the advanced tab there is a mysterious check box that says”Show developer menu in menu bar”

Once you’ve ticked this the menu bar will – as indicated – include a “develop” option…. see this image
I rather like the Safari switcher – and if you size the browser you can get quite a realistic looking replica of an iPhone, and because the menu bars auto-hide it’s easy to get good screenshots.
I haven’t yet tried one for chrome – but have found one:
https://chrome.google.com/extensions/detail/aafciojnlamllgpkpdkbamkfgbofhgcj
I’ll try that tomorrow.
And finally the most pointless one of all is for IE8, which you can get at :
 http://www.ieaddons.com/en/details/other/UAPick_UserAgent_Switcher/
I say this one is pointless – because IE8 doesn’t use webkit so from what I found today you get none of the groovy mobile functionality.  No transitions, in fact, for me the site under test was not functional.  
But then when you try and get IE to pretend to be an iPhone what do you really expect?

Another day – another feature discovered

I’ve been getting ready to test a website that is being optimised for mobile technologies. To test this I’ve been using Safari 5, where you can spoof the User-Agent to be iPhone, iPad or iPod Touch, and also Firefox with the excellent add-on of User Agent Switcher.

Both of these allowed me to see how the site was coming along – but when it came to recording for my load tests I had to think for a moment.
I’ve always just used Internet Explorer in VUgen, but now the super smarts of the website under test would detect it and… show the main website – not the mobile optimised site.
Not to worry – I installed Safari 5 and changed the settings in the recording options to use Safari instead…. No worries.
I already knew that I could set the User-Agent in the Runtime settings – but I wasn’t to pleased with this as it is a little hit or miss as to whether someone checks them all before running.
Not to worry – I extended the use of the web_add_header which I have previously used for testing the website with and without HTTPZip compression.
So just by adding :
web_add_header(“User-Agent”,”Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3″);

I was able to programmatically test as if I was an iPhone.
This pleased me and allowed me to run my tests , now I just need to figure out how to get Xenu Link Sleuth to pretend to be an iPhone too!

I love discovering a new feature in Loadrunner

>

It’s not often you get a “wow” moment when you’re running performance tests, but yesterday I had one.

I’d been running tests using vugen and Loadrunner controller – but everytime I wanted to shift environments I would recode the script either with a “Hostname” parameter file or by using lr_save_string to store the base url for the environment under test.
No big deal really – except I’ve just built an all singing all dancing Hour in the Life of scenario. A scenario with 20 different scripts all set to run at different rates – comparable to a single servers expected load on our site.
Again not particularly earth shattering.
However….
I have just received 3 new servers with Windows Server 2008 R2 – and
I wanted to run the same HILO test against this to get a comparative benchmark of the better hardware , running with a newer O/S.
Suddenly it dawned on me – I was going to have to change each of the 20 script files everytime I wished to change the target of my test.
But then while fishing around (really I was googling) and playing around in the run-time settings on the controller I discovered a mysterio setting – that I’ve been overlooking for years…

Additional attributes.
To use this all I needed to do was to change the lr_save_string command to read the additional attributes and then all would be good.
For example : lr_save_string(lr_get_attrib_string(“ServerName”),”Hostname”);
Now I realise I still need to update all 20 files with this – but I was going to have to do this anyway. But when I want to change it next time I can make the change in the controller in the run-time settings, rather than having to open each file in turn, make the change and then save it.
Okay, I understand it’s a little win – but it’s just made my day so much easier.