Wednesday, July 28, 2010

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?


Tuesday, July 27, 2010

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!


Thursday, July 15, 2010

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.