Perl Windows - Grab all the system tray icons & get their co-ordinates

While automating applications on Windows, every now & then I run in to a situation where I have to find a tray icon & do some mouse operations on it. And for the most part, I overlooked it as it was just a small part of my automation needs. Well, it was time to scratch that small itch as it was bothering me. So with the help of Sinan on StackOverflow, I ended up writing this script.

Author's profile picture Aditya Ivaturi on perl, windows, and automation

iperf 2.0.4 Windows (win32) native binary

The last compiled binary for Windows was v1.7.0. But, I like the newer -y option which dumps out the report in CSV format. With the help of this patch, I managed to create a binary for Windows.

Author's profile picture Aditya Ivaturi on iperf, windows, and compiled

Replace QTP with Selenium + AutoIt + Applescript - Part I

I hate QTP. Why? Because it sucks. Of course, QTP fanboys will immediately jump up & down stating that I don't know how to use QTP. On the contrary, I know exactly what I am talking about. As of this writing, QTP still does not support Windows 7, heck it still doesn't support Firefox 3.6! Are you kidding me? Well, apart from HP's snail pace development process, I have other problems with the tool itself. Like its really retarded scripting engine (which uses vbscript), which does not provide you any real mechanism to maintain frameworks.

Author's profile picture Aditya Ivaturi on qtp, selenium, and automation

Hacking Selenium to improve its performance on IE

TL;DR of the post below; You have to perform all these steps & in some instances, you can squeeze out better performance from other browsers too:

Author's profile picture Aditya Ivaturi on selenium, performance, and ie

Add getCSSCount command to Selenium

getXpathCount is a very useful command that Selenium devs provided. And once you started enjoying coding with it, you realized IE was throwing roadblocks since XPath is dog slow on it (what else is new?). So you look around and you're told to switch to CSS Selectors (or locators). Well, the very first thing you're looking for is the count equivalent for CSS and it is conveniently missing. So, I ended up hacking the Selenenium core to add the missing command - "getCSSCount".

Author's profile picture Aditya Ivaturi on hacking, selenium, and getcsscount

Create your own VMWare Connection Broker

First of all, "Connection Broker" is a highly glorified marketing term to say that this piece of software will allow you to connect to your Virtual Machine based on some "rules" (access, authorization, availability etc and the more "rules" you add, it becomes more complex) and hence the "broker" part. In this post, I'll be concentrating on VMware since I am more familiar with it, but you can pretty much implement this connection broker for the Sun & Citrix solutions as well. It looks complicated, but it isn't, that is mostly because the excellent SDK that they provide.

Author's profile picture Aditya Ivaturi on vmware, vm, and connection-broker

VMWare Lab Manager and Perl

VMware's Lab Manager is an amazing tool to have for testing organizations (which was originally designed by a company called Akimbi). But this post is not about what it is & how it can be useful. This post is to give you an example on how you can consume its SOAP API from Perl. We use Lab Manager extensively for all our feature testing & automation. For automation, you can deploy, undeploy and change some of the vm properties using the SOAP API. Lab Manager also has more "internal API", which is not officially supported but can be used for more control of what kind of automation you wanna do.

Author's profile picture Aditya Ivaturi on vmware, vm, and labmanager

Doxygen and Perl POD

If you have ever dealt with Perl modules on CPAN, you will immediately notice the widespread use of POD to document every thing. And then most POD processors do a simple conversion to HTML (or for that matter many other formats) for proper presentation. pod2html is a very good tool for what it does but when you are maintaining frameworks written entirely in Perl, a simple POD wouldn't be the only documentation that you'll need especially if you want your co-worker to just read it & pick up where you left off. You need to present a little bit more "structure" to your documentation than simply providing description & synopsis for each module. So, when some one refers to framework documentation they are typically not looking for just your method descriptions but a lot more than that like for e.g. an object model or inheritance diagram or the whole frameworks package structure. Sure you can tell them to open up the whole package tree & look at it, but that is just rude - especially with Perl.

Author's profile picture Aditya Ivaturi on perl and doxygen