Friday, October 12, 2007

My last BayPiggies

Well, last night was my last BayPiggies meeting for a few years. The speakers were Mikeal Rogers & Adam Christian from the Open Source Applications Foundation, presenting their new automated web U.I. testing framework, Windmill.

It was a pretty neat demo; if I actually did any serious web development, I would consider using it (or the preexisting Selenium tool) for testing. Being that it was a python user's group rather than a product show-and-tell, I would have liked more details about how Windmill worked, especially from the python side, but I am assured it is "really really really really cool". ;) I guess I'll have to find time to read the code myself.

Anyway, afterwards I got to hang out with my buddies JJ and Zach for a while and chat over a burger. I'm afraid mine was not particularly stimulating conversation, but I'm really looking forward to finding out what exactly it is JJ has been coding up over at MultiCosmic. He assures me it will go live in a few days, and that I'll have to wait to learn what it is when everyone else does. :) I just know it involves FaceBook.

I've only been going to BayPiggies for the past couple of months, but I'm going to miss the monthly chance to learn about some new tool or technology utilizing python. More importantly, I'm going to miss the opportunity to hang out and hear the state-of-web-development address from JJ (he admitted he loves Rails, by the way :) ). Hopefully, I'll still see Zach from time to time in Tokyo.

Speaking of which, I have yet to find a web page for a Python user's group in Tokyo; pyJug doesn't appear to actually hold casual group meetings just weekend retreats and workshop-style meetings. That sounds like fun, but not quite the casual get-together I've gotten used to with BAFUG and BayPiggies meetings.


jjinux said...

I think Windmill works the same way Selenium RC works.

You have some code written in Python. It launches a browser. It can make Web calls to a local Web proxy.

When the browser is launched, it is configured to automatically use the local Web proxy. The Web proxy injects some JavaScript into every page you view.

The JavaScript controls the browser. The proxy is the interface between the JavaScript and your Python. The JavaScript can make XHR requests to the proxy because the proxy can pretend to be any server, thus circumventing the "same domain" security policy that JavaScript is limited by.

Hence, you write tests in Python that control the JavaScript running in the browser in order to make it do your bidding.

The JavaScript itself is pretty neat too in that it has all sorts of ways for manipulating and referring to the DOM, such as XPath, CSS selectors, etc.

Oh, and I thought that the fact that I'm a closet Rails fan was supposed to be a secret between the two of us ;)

Kelly Yancey said...

Hey JJ, that was pretty much what I gathered too. But since the service API is supposedly XML-RPC based, the local proxy service could be written in any language and the result should have been (more or less) the same.

Personally, since it was a Python User's Group meeting, I would have liked to have heard more about the python implementation of the service (other than "python rocks"...I know that :) ). I guess more people are interested in web development than python programming nowadays (of course, the two are not mutually-exclusive).

It was an interesting talk, but a little light on the python. Most of the tests (while possibly exported in python) were composed using a web-based GUI. Again, it could have been implemented in perl and test cases exported in XML for all any user of the demonstrated interface would care, and the result would have been similar.

Anyway, are you just teasing me about the Rails bit? I suspect everyone is a closet Rails fan so to *not* say you are a fan too would be more telling than to say that you are. ;)