The testIT WebTester framework is a best practice solution for testing web applications. It is based on the Selenium web testing framework and extends it with a streamlined type-save API for interacting with elements of your web application.
The most prominent features are:
- Type-save API
Button, TextFieldand a whole lot of other functional classes instead of a generic
- Extendable Event System
Each interaction with the browser produces events. These events are send to a central service where listeners can be registered in order to react to all or just specific events. Out of the box a logger, screenshots on exception and html protocol listener are provided.
- Everything is a Page Object
Every element class you encounter is a page object (see "Page Object Pattern"). Page objects can be nested to any degree needed. This makes re-usability and custom component creation easier then ever.
- Optional Interaction Marking
Activating this feature highlights every UI-element the framework interacts with by changeing its CSS properties. This allows for more traceability when watching or recording a test.
- Full Power of Selenium
WebTester is build around the Selenium WebDriver API. In cases where the framework does not provide a necessary function, it is still possible to get to the underlying selenium classes like WebDriver or WebElement.
Page Object Pattern
The Page Object Pattern is the basic design principle on which the testIT WebTester was build. Page Objects are classes that represent a page of your web application. They provide methods that allow the test developer to interact with the page without having to know any of the actual HTML or other implementation details of that page. They provide an abstraction layer that encapsulates the "How" an interaction with a web page is done and lets the test developer focus on the "What" to do with the application.
What distinguishes the testIT WebTester from its Selenium base is the fact that all elements you interact with (buttons, links, textfields etc.) are implemented as page objects. That makes it easy to build custom components fitting your project needs because anything that is a page object can be used in the same way as all the "out of the box" elements. Creating custom components was never easier!
For more information on the Page Object Pattern see also: