Child pages
  • ERSelenium Framework
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Really Quick Start

You can also use Selenium IDE to create and edit tests:

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).

SeleniumCore is the powerful javascript toolkit for web applications "black-box" testing. It emulates different kinds of user actions such as: clicking the hyperlink, editing text in the input field, choosing item from the list and so on.

Using ERSelenium

You can use ERSelenium directly from workspace:

  1. Specify it as your project's workspace dependency .
  2. Enable it in the project's Properties file:
    SeleniumTestsEnabled=true
    
    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:
http://baseurl/wa/SeleniumStartTesting

Example:
http://127.0.0.1/cgi-bin/WebObjects/SampleProject.woa/-42421/wa/SeleniumStartTesting

To run a specific group of tests, add "/TestGroupName":

http://baseurl/wa/SeleniumStartTesting/TestGroupName
http://127.0.0.1/cgi-bin/WebObjects/SampleProject.woa/-42421/wa/SeleniumStartTesting/registration

Some tips for writing tests for ERSelenium

  • Don't use full URLs with open/openWindow commands (http://baseurl part will be added by ERSelenium):
    |open|/wa/EditPerson|
    |open|/|
    
  • 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"):
    |open|/wa/Selenium/resetSession|
    
  • You can use @repeat-@values-@done metacommands to execute specific part of the test with additional values edited in textboxes, e.g.:
    @repeat
        ...some actions...
        @values user1 user2 user3
        |type|user|user0|
        @values pass1 pass2 pass3
        |type|password|pass0|
        ...some more actions...
      @done
    
    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.

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.
  • No labels