Starting from Scratch with RC, Python and Py.Saunter
So the San Jose Selenium meetup featured Py.Saunter which is both awesome(!) and sad that someone else other than me publicly demoed my framework before I have. Here is some annotations to go along with Mary Ann’s presentation which was recorded using Adobe Connect and can be viewed from her blog.
- 1:40 – Why RC? – Now, the decision between RC and WebDriver is much easier. Use WebDriver unless you have a large investment in RC. And, well, even then, just stop writing RC scripts and start using WebDriver.
- 2:40 – Dropping Perl and PHP – It wasn’t for anything malicious; more that no one stood up and said that they wanted to maintain drivers for it. No maintainer, no driver.
- 6:05 – Flags – I personally would also add in either a ‘shallow’ or ‘deep’ tag. She uses ‘smoke’ or ‘regression’ to indication the same, but I like things that are logical opposites.
- 11:11 – Why the modules directory? – Why not? I could have called it ‘lib’ or ‘stuff’ or something else. But it holds modules (and packages…) so modules it is
- 12:30 – Asserting in loops – For a script like this, you really want a soft assert (verify) rather than a hard assert. The way the script is written here, as soon as a key is missing the script will end and the remainder will not be checked
- 15:08 – Link locators – See death to visible content as locators in automated tests for what Mary Ann is talking about
- 16:32 – Locator Generation – Re Eliza’s question, you the scripter need to generate the locators. One of the knocks on Se-IDE is that it tries to generate locators but they can be pretty darn brittle.
- 18:04 – files dir – I would put this in support/*
- 19:42 – Screenshots – The commands that get snapshots taken in them can be seen in SaunterSelenium.py
- 21:30 – Viewing Screenshots – An idea would be to use a photo album tool and point its root directory at the logs directory
- 22:55 – Can’t find things its not looking for – People should remember that automation will happily pass something that is ‘wrong’ that it isn’t expecting
- 27:40 – Directories – Yes. If you have 1000 tests and are taking screenshots you will end up with 1000 directories. Run it in ci; then zip up the directory and store it as an run artifact
- 31:40 – TestLink integration – It’s manual, but baby-steps. I could see a situation where it launches things and reports failures back to the system automatically
- 34:50 – FogBugz integration – FogBugz has a nice API, so things could get logged automatically that fail
- 41:15 – Testing the Test – Nice trick! pdb is black magic…
- 45:50 – Mailing List – Ask and you shall receive (first post moderation is enabled for spam trapping…)
- 45:55 – Future of Py.Saunter – I don’t expect it to go away since I use it. But its also open source…
- 46:00 – Future of RC – Details of this are starting to
- 46:30 – Docs no good? – Where do I need better information? These are the official ones
Thanks Mary Ann! Oh and I’ll be speaking at the July meetup.