Steps: Selenium IDE: Record and playback Selenium IDE: Export as Java code Selenium RC: Execute Java(Eclipse-Junit) Selenium GRID: distribute on various environments demo: Selenium IDE: record, replay and export Selenium – General Overview
Selenium commands (Selenese) A set of commands that run the tests for a web-based application:
check if the correct UI elements exist;
check the specific content of the UI elements;
S peeds up functional testing of web-applications by leveraging the existing computing infrastructure;
Allows easily running multiple tests in parallel, on multiple machines, in an heterogeneous environment;
Allows running multiple instances of Selenium Remote Control in parallel. Even better, it makes all these Selenium Remote Controls appear as a single one, so the tests do not have to worry about the actual infrastructure;
Selenium Grid cuts down on the time required to run a Selenium test suite to a fraction of the time that a single instance of Selenium instance would take to run.
Pages - Java class for each page under test with the UI elements to be verified and all methods that are used further in the tests;
Panes – Java classes for each panes identified in the pages and the verifying methods for each action;
Common - generic functionality executed in more pages or all pages e.g. navigation between all pages, cleaning/ preparing the database for tests, auto login executed before testing any page, others.
Elements: classes for basic HTML elements such as text field, check box, radio button, etc that encourage OO test code);
Browser Driver: browser driver utility (class) that builds an abstraction layer for selenium RC for controlling the browser (e.g. start, stop) and for implementing user actions methods (e.g. click, type text);
Extending the element location strategy by Injecting the entire jQuery framework into pages under test, in order to verify visibility of elements that appear after dynamic HTML or Ajax calls.
Use case: Open Time Tracking page and register the time in TEMPO application (time punch, time stamps, interval, duration). Check the results on the page.
instantiate page object TimeTrackingPage and within it we:
instantiate TimeTrackingPane – create new time stamp
instantiate TimeListPane – test that a new time stamp is listed
Instantiate TagPane – test that the new tag is loaded and displayed
Instantiate LiveViewPane – test the duration totals
Demo of the automation tests – explanation of the test class. Tempo Project