Hi,

Yesterday I wanted to add some functional tests for Create page/space actions 
and I found that the Selenium version we're using doesn't work on Snow Leopard 
(my OS) so I started looking at issues and found that the pb was fixed in 
Selenium2/WebDriver. Since I had wanted to explore it for a while I took the 
time to do a quick exploration...

Selenium2 is the merge of Selenium and WebDriver.

Pros of Selenium2:
* No more JS sandbox. In selenium1 all the selenium API is executed as JS in 
the browser. In Selenium2 the browsers are controlled using their native APIs 
(JNA).
* Faster (as a consequence of the previous point)
* Allows to do stuff such as file uploads, etc since there's no longer the 
issue of the JS sandbox
* No need to start a Selenium Proxy. All you need is to start XE and then you 
can run the tests as simple JUnit tests.
* The API is much cleaner (this is to be expected with hindsight). See 
http://seleniumhq.org/docs/09_webdriver.html
* There's a very fast executing HtmlUnit driver (not to be used with tests 
using JS though since it emulates browser JS support and thus cannot guarantee 
the result in the real browser)

Now Selenium2 also recommends to use the PageObject pattern which IMO is a very 
good pattern that we should use. More here:
http://code.google.com/p/selenium/wiki/PageObjects

In order to get a feel of it, I've committed a first test in the sandbox using 
the PageObjects pattern:
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/webdriver-ui-tests/

To run the test:
* Start a local XE on port 8080
* Open the project in your IDE and run LoginTest as a JUnit test

Let me know what you think.

My opinion
* We should test it more, on Ajaxy web pages to verify it's stable and working 
well enough
* If that works well enough then we could make it our default way of writing 
functional UI tests and start migrating existing tests one by one + write new 
ones in it

Thanks
-Vincent

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to