At today's OCI Java lunch, our resident automated building and testing zealot Mario Aquino talked about an interesting tool called Selenium.
I forgot to blog it while he's talking. So I'm doing a little bit of catching up tonight. And all of this is from my impression from one hour of presentation/demonstration.
Selenium
tests web applications
while running them inside the browser
with FIT style table driven test scripts
that exercises the HTML page's links, buttons, text fields, etc.
and asserts and verifies various on-screen values
for fields selected by IDs, names, or XPath expressions
Selenium scripts
have alternative representations as
Java code that can be put into JUnit tests and become part of the hourly build
Ruby code that can be invoked through rake
or Selenium "wiki" code that's just a tad easier to write than HTML tables
There is a Selenium IDE that can be installed as a Firefox extension. It allows one to write Selenium scripts by recording a browsing session. (In the screenshot you can see me clicking on the Save button to save a draft of this post, and then clicking on the link to the artile on the Drafts screen to resume editing.)
Mario did mention a few quirks. One is that if ran as JUnit tests, Selenium tends to not close the browser when it's done, leaving thousands of open browsers behind on the testing machine. Another is that "clickAndWait" doesn't work with AJAXy buttons or links.
Selenium was developed by ThoughtWorks for one of their projects and is now Open Source (Apache 2.0 License).