Watirgrid and Gridinit on Watir Podcast

As the title implies, I get to spend 15 minutes talking about Watirgrid and Gridinit on the Watir podcast.

This family of tools lets you easily distribute watir test cases onto a grid network, the latter being a commercial implementation on EC2 of the former. I’ll be posting more about Gridinit soon as we enter into our beta!

http://watirpodcast.com/44-tim-koopmans-on-watirgrid-and-gridinit/

Read More

How to be a performance tester …

I’ve come to a juncture (read voluntary unemployment) where I’ve had the chance to reflect on my last 6 years as a performance tester, working in the mostly enterprise / commercial test space in and around Australia… Here’s my reflections on what has worked for me as a performance tester:

1. Document templates: Everything from a test strategy through to detailed plans, application simulation models, status updates or summary reports are all based on a template for me now. A template view of things is also a good way of culling back all the unnecessary guff that you often find in these documents. Unless you’re legally obliged to, cut back on the guff and tell them what you’re planning to test, how you’re going to measure it, and what you’re going to do if things fall outside your hypotheses…

2. Look beyond LoadRunner: I’ve gained much self satisfaction and saved employers large sums along the way by looking at tools other than LoadRunner. You may feel like you’re shafting yourself initially as you fumble about in strange GUIs or delve into the command line /code but in reality, you’re making yourself a better tester by understanding what it is you’re trying to test/simulate, and the multitude of ways you can accomplish it. Time to wean yourself off that expensive teat and start looking at the alternatives.

3. Business intelligence: You need to be able to understand machine events and transform them back into business speak. Most managers don’t give a hoot about number of IO’s per second or the vagaries of GC algorithms. You need to transform this data into a language that you can communicate up the chain. Avoid the FUD (Fear, Uncertainty & Doubt) and instead speak in terms of risk (probability, frequency, impact).

4. Monitor and measure: If you can’t monitor then you probably can’t measure. I’ve heard so many times that “you need this one tool because … ” it pulls everything together in one interface … Really, you need to know what you can measure and monitor, what tools support capture (most platforms have native commands to do so) and how you’re going to pull it all together. Timestamps are your friend (for correlating events) and so too are databases for storage. More often than not I’ve employed some form of RRD or RDMS such as MySql and more recently have been looking at the virtues of NoSQL with things like CouchDB or MongoDB.

5. The web server bone’s connected to the, database bone: You need to understand the stack you’re playing in. Most prod environments don’t give you the luxury of prodding around, but VMs are your friend and you’ll probably find most platforms you’re working on have free or developer versions of their products to play with. Chances are if you’ve never installed and configured it, you’re probably not going to have the fuzziest on where to start debugging or tuning it!

6. Adopt a scripting language: You’ll no doubt need to munge data, fake stubs, mock services, crawl for information and the like. I’ve seen some hilarious examples of this using heavyweight tools such as QTP/LoadRunner and some downright painful (although closer to zen) alternatives in shell script. But honestly, adopt a scripting language like Ruby, Python or even Perl, buy the corresponding cookbook, and you’ll have an answer to just about every housekeeping task you might find yourself faced with.

7. Learn from others: Go on, be humble, get yourself an RSS reader and learn from others. My personal favourites to name a few are:

Scott Barber http://www.perftestplus.com/scott_blog.php
Neil Gunther http://perfdynamics.blogspot.com/
Stuart Moncrieff http://www.myloadtest.com/
Corey Coldberg http://www.goldb.org/
Jared Quinert http://www.software-testing.com.au/blog/
Sam Abdelhamid http://mishmashmoo.com/blog/

8. Write your own blog: Got something to share? Want to improve your writing skills? Go on, write your own blog. I often find that in showing someone else either in person or the written form, I get to understand the subject matter better. So what are you waiting for?

Thanks for listening =)

Read More

Watir-Webdriver-Performance gem released

Today I added a simple watir-webdriver-performance gem whose purpose is to collect performance metrics specified for web applications to access timing information related to navigation and elements.

User latency is an important quality benchmark for Web Applications. While JavaScript-based mechanisms can provide comprehensive instrumentation for user latency measurements within an application, in many cases, they are unable to provide a complete end-to-end latency picture.

To address the need for complete information on user experience, this document introduces the PerformanceTiming interfaces. This interface allows JavaScript mechanisms to provide complete client-side latency measurements within applications. With the proposed interface, the previous example can be modified to measure a user’s perceived page load time.

Read More

WatirGrid 1.0.6 released … can haz Selenium?

I’ve just released WatirGrid 1.0.6 which now includes support for Selenium WebDriver… So can I really call it WatirGrid anymore? Realistically the Watir and Selenium projects are headed in the same direction courtesy of WebDriver, so it makes sense to give Watir users (I like to think of them as Ruby users ;) ) the option to use Selenium where it best fits.

Read More

Watir Day and Selenium Conference .. w00t

Wow,

What an awesome experience. Despite spending most of it jet-lagged, travelling to San Francisco was such a great experience for me, and helped reaffirm just how strong the Watir and Selenium community is. Without dropping names, some of the experiences I got to enjoy were:

  1. Sharing late night beers and early morning burgers with the leader of Watir development
  2. Pair coding on watir-webdriver performance extensions with the smartest kid in Norway
  3. Finally meeting perhaps the leader of Australian based Watir testing
  4. Eating chinese with the god-father of Watir and hearing some great anecdotes on the origins of Selenium
  5. Shown the light on page objects, opera and superbad with a Polish born American
  6. Hearing about the inner workings of ‘that other browser’ from a genius at Opera
  7. Learning more about the Watir community and getting a thirst for Croatian micro breweries
  8. Meeting my role model in person and perhaps feeling a bit shied by his awesomeness!
  9. Getting some great advice and tips for my own startup
  10. Being awed and perhaps jealous (in a slightly convict vs. colonial way) of the greatest mind behind webdriver

I met many other people whilst there, did tons of late night coding and got to experience public speaking for the first time. A big thank you to all the organisers of #watirday and #seconf. Looking forward to the next!

Read More