A Little Deconstruction: Selenium Meetup, San Francisco

It’s been awhile since I’ve had a chance to get out to one of the SF Selenium meet-up nights, so I was glad to get the chance to get out and see some old friends, have some good food, hang out at the Huddler office, and hear an interesting talk about breaking down and understanding the plumbing and inner workings of Remote WebDriver.

Santiago Suarez Odonez led the discussion this evening, specifically focusing on the topic of “Stripping Down Remove WebDriver“. This was a different kind of a talk as opposed to what I have usually seen. This talk was heavy on code and on implementation rather than how-to. For the first time at one of these things, I felt strangely… able to follow along. Many of the code examples that tended to feel very esoteric before were much more accessible. I actually felt like I was able to follow along at least 80% of the way (usually, I feel lost about halfway through these kind of talks).

The Remote WebDriver allows the user to separate the tests from the browser, as well as to test browsers running on different machines with different OS requirements. As can be expected, a major disadvantage is that a remote server is required, and this requirement introduces latency (but when used with Selenium Grid and the ability to run multiple tests in parallel, the net savings could be way more than the latency introduced. The communication is done via HTTP and using the JSON Wire protocol.

Santiago then moved on to talk about the JSON Wire Protocol. The objective is said to be “keep the intent in the test, and the actions only go over the wire”.

This approach excites me, in that it gives me a glimpse into how I could make my current test environment more extensible, and do more automated cross-browser tests. I also liked Santiago being willing to encourage people to get into the applications, downloading the code, and getting over the nervousness of working with it. The more knowledgeable all of us are of the code and its benefits (and limitations) the better our ability to leverage the features and actually make timely and meaningful changes. For the record, Santiago killed it in this talk. Very well organized, focused and engaging, and again, I felt like I understood the large majority of what was being discussed.

My thanks to Ashley Wilson and Sauce Labs for hosting these events. I really appreciate the benefits they provide to our community, and I appreciate the opportunity to meet my fellow developers and testers and learn from them. Here’s hoping that 2012 will give me more opportunities to come out and participate more often.