User Interface Design: Testmaker - Selenium Ide
User Interface Design: Testmaker - Selenium Ide
This is a user interface design proposal for an upcoming version of PushToTest TestMaker for Selenium IDE. Many TestMaker users need the
following solution:
1) A competitive open source alternative to HP Quick Test Professional (QTP) for record/playback of Web application and Rich Internet
Applications (RIA, using Ajax, Flex, Flash)
This document is meant to convey a discussion between the TestMaker developers and community and the Selenium developers and
community. It is a living document.
Note: All trademarks mentioned in this document are the trademarks of their respective holders. For example, HP QuickTest Professional is a
trademark of HP.
2 Open Source Test Automation
Product Roadmaps
TestMaker 5.4 TestMaker 5.5 TestMaker 5.6
This proposes Selenium IDE 2.0 functional requirements and links the release to the TestMaker 5.5 and 5.6 roadmap.
The goals include:
1) Introduce a new Ajax-based record/playback tool that is compatible with MS IE, Firefox, and Safari.
2) Flex record/playback is offered through the Adobe Flex Automation API and FlexMonkey.
3) Enable test operation experience drill-downs to rapidly determine the cause of an application issue.
2) Refactor the TestMaker TestNode architecture to provide a more stable, crash proof, and self-recovering
operation.
3) Implement a test Grid engine to run tests on a group of available TestNodes automatically.
3 Open Source Test Automation
Functional Tests ✓ ✓
Test Management ✓ ✓
Cloud Testing ✓
TestMaker 5.6 provides a compelling open source alternative to HP QTP, LoadRunner, and Quality Center.
5 Open Source Test Automation
Comparison to HP QTP
Selenium IDE 2
Selenium IDE 1.0 HP QTP 10
with TestMaker
Verification ✓ ✓ ✓
Exception Handling ✓ ✓
Data-Driven Testing ✓ ✓
Custom UI Objects ✓ ✓
Add-In Extensibility ✓ ✓
The QTP users I've met are looking for more than documentation and training on how to switch. They need an open source version of QTP.
Selenium does a good job at deliver solutions to technical developers and testers. However, Selenium requires scripting knowledge. The
majority of QTP users are building tests in "Keyword/Tree view" (not in Expert mode.) They depend on QTP to do the script creation for them.
Selenium's architecture makes it possible to deliver a competitive offering provided we keep the needs of today's QTP user in mind. See the
above table for an initial list of feature improvements for Selenium IDE 2.
License Proposals
‣ PushToTest proposes to fund Selenium IDE 2.0 development and
maintenance under GPL v2 license
‣ TestMaker GPL v2
‣ Selenium Core, RC, Grid continue under Apache 2.0
PushToTest distributes TestMaker source code under a GPL v2 license. Most people download the pre-built
and certified TestMaker Command or TestMaker Enterprise product under a commercial license.
Selenium distributes Selenium Core, RC, and Grid under an Apache 2.0 license.
Record/Playback Layout
Browse HtmlUnit Source
Recorder Playback
The Recorder function appears either in an embedded frame within the browser window (with its own drop-
down menus) or in a floating window of its own. The Recorder controls record and playback. Playback happens
in an embedded frame within the browser window. The Playback frame offers the following tabs:
New Test
Cancel OK
Selenium IDE 2 supports multiple recording syntax: Selenese, FlexMonkey. Others are possible in future
releases.
When the user choose File -> New Test Case the Selenium IDE opens a modal dialog box for the user to
identify the test case type:
a) Web application test and Ajax application test save in the Selenese table format.
b) Flash/Flex application test saves in the FlexMonkey format.
When the user chooses Ajax test Selenium IDE senses for a page reload within 10 seconds of a click event.
When there is no reload, Selenium IDE automatically inserts a waitForElementValue command. It is up to the
user to enter the element target.
10 Open Source Test Automation
Tool Bar
Chooser Bar
Steps Editor
The Main Panel Layout provides user interface elements to record and playback tests and test suites.
Drop-down Menus
‣ File - New Test Case, New Test Suite, Export, Save, Save As..., Close
‣ Edit - Cut, Copy, Paste, Clear, Select All
‣ Options - Preferences
‣ Help - About Selenium IDE, User Guide, Selenium HQ
Exported files implement a jUnit-style TestCase class with setUp, runTest, and tearDown methods. Each is
enabled to received a hashmap of input data fields. See the output of the Transformer in TestMaker 5.4 for an
example template.
12 Open Source Test Automation
start_report_test.selenium
login_test.selenium
1 open /products/signin.html
2 type id frank
4 click submit
Ajax Recording
Startup of the Recorder displays a Unititled Test Suite containing one Untitled Test Case, and an insertion point at the top of an empty set of Steps.
Recording button indicates mode. In Recording mode the button displays “Recording!”. Recordable actions (click, type, select) appear as new Steps in the currently selected Test Case. In
Playback mode the button displays “Record”.
Clipboard functions allow drag-and-drop and copy-paste. The Steps Editor uses Drag And Drop techniques described at http://www.extjs.com/deploy/dev/examples/tree/reorder.html
User may switch in and out of Ajax recording mode (with auto insert of waitForElement, setFrame, pause) by clicking the Ajax checkbox element.
13 Open Source Test Automation
Checkpoints
File Edit Tools Help
TextPresent
start_report_test.selenium
ElementPresent
login_test.selenium
4 click submit
Ajax Recording
Click the Insert Checkpoint icon in the Step Editor Toolbar to view the Checkpoint Chooser. Select from Assert,
Verify, Wait. Click OK to insert a new Step into the current selection point.
14 Open Source Test Automation
Data-Driven Tests
File Edit Tools Help
start_report_test.selenium
myCSV Data Source
login_test.selenium
First Name
1 open /products/signin.html
Last Name
2 type id frank
Password
3 type password mypassword
4 click submit
Cancel OK
5
Ajax Recording
Click the Add Datasource icon to identify a Comma Separated Value (CSV) file, Relational Database (RDBMS), or
data generating object to provide operational test data to a step.
Clicking on a data field inserts a placeholder in the currently select step to receive the data field at test run
time.
Logging Panel
Logs Docs Paths Object Repository Data
Info
16 Open Source Test Automation
Paths Panel
Logs Docs Paths Object Repository Data
The Paths panel increases test developer productivity by enabling locator construction and experimentation.
This is our homage to the XPather add-on in Firefox.
17 Open Source Test Automation
Name Log-in
Version 1.0
1 type id frank
3 click submit
A macro editor for groups of Selenium commands. Enables an alternative to QTP Virtual Objects and third-
party custom controls. Object definition is a simple XML format defined at http://downloads.pushtotest.com/
201001/objdef.xsd. Objects are referred to by reference to a URL within the Selenium and Flex Monkey
scripts.
18 Open Source Test Automation
start_report_test.selenium
login_test.selenium
1 open /products/signin.html
2 type id frank
4 click submit
Ajax Recording
IDE SDK
‣ This project must include documentation on how to implement
changes to the IDE, including:
Learn More
‣ http://www.pushtotest.com/docs/forums/testmaker-6-discussion/
422165897