Really Quick Start
- Checkout the Project Wonder - the ERSelenium is in the Wonder/Common/Frameworks folder.
- Examine test cases from ERSeleniumExample/Resources/Selenium/main/ and from BugTracker in Eclipse text editor.
- Launch ERSeleniumExample and point your browser (referably FireFox - there are known issues with Safari) to SeleniumStartTesting Direct Action url (e.g. http://192.168.0.58/cgi-bin/WebObjects/ERSeleniumExample.woa/-42422/wa/SeleniumStartTesting).
You can also use Selenium IDE to create and edit tests:
- Launch FireFox and install Selenium IDE Firefox plugin.
- Using Selenium IDE format plugin installation instructions install Selenese-ide-plugin.js (it is in ERSelenium/Resources).
- Play around with test cases from ERSeleniumExample/Resources/Selenium/ using Selenium IDE.
Overview and Usage Notes
ERSelenium provides several features for effective use of SeleniumCore with WebObjects applications including:
- Custom setup/teardown actions that can be run before/after each test.
- Base URL independence.
- Support of HTML and Selenese test formats (Java support is planned).
- "On-the-fly" generation of test suites from the files in your project's source tree.
- Bookmarkable DirectAction url to run all tests (can be used for automated testing).
- Metacommands (special instructions specified in comments).
You can use ERSelenium directly from workspace:
- Specify it as your project's workspace dependency .
- Enable it in the project's Properties file:
Debug output of ERSelenium can be enabled in Properties by:
log4j.logger.er.selenium = DEBUG
Other ERSelenium properties:
- SeleniumTestsRoot="SomeOtherPath" - change the tests location. By default ERSelenium will search for tests in "Resources/Selenium".
- SeleniumReportPath="PathName" - specified the path to the report file, which is created after the testing is done. "./Contents/Resources/" is the default value.
In your SeleniumTestsRoot folder (Resources/Selenium by default) you should create tests hierarchy. Tests are divided into groups, each group is located in its own folder. In each folder there should be a collection of test files, each in one of the formats, supported by ERSelenium. Example hierarchy:
./Resources ./Selenium ./registration ./successful.sel ./alreadyexists.sel ./shop ./buyitem.html ./notenoughmoney.html ./transfer.sel
You can use both standard HTML and wiki-like Selenese formats for writing tests although Selenese format is usually a preferred choice.
To run all tests point your browser to SeleniumStartTesting Direct Action:
To run a specific group of tests, add "/TestGroupName":
Some tips for writing tests for ERSelenium
- Don't use full URLs with open/openWindow commands (http://baseurl part will be added by ERSelenium):
- You can use setup/teardown methods. They should be implemented as direct actions in the separate class, which should be er.selenium.SeleniumAction-descendant. SeleniumAction class has some handy helper methods and automatically turns your selenium-related actions off when selenium is disabled in Properties. Here's the example of using selenium-related direct actions in the test (suppose that resetSessionAction() is defined in the class "Selenium"):
- You can use @repeat-@values-@done metacommands to execute specific part of the test with additional values edited in textboxes, e.g.:
The commands between @repeat and @done will be repeated several times, each time with new value in "user" and "password" input field. The values are seperated by spaces and if you have multiple @values lines, they all must have the same number of parameters. The @values section applies to the value of the next command.
@repeat ...some actions... @values user1 user2 user3 |type|user|user0| @values pass1 pass2 pass3 |type|password|pass0| ...some more actions... @done
Note: in Selenese format, lines that don't begin with "|" are treated as comments, so metacommands in the example above will be safely processed by Selenium IDE.
- Selenium IDE Firefox plugin and XPath Checker can be very handy for creating and editing Selenium tests. Selenium IDE Selenese source plugin with proper comments support resides in ERSelenium/Resources/selenese-ide-plugin.js.