Selenium Testing IDE
Presentation for:
South Florida PHP Users Group
By:
Adam Culp
Twitter: @adamculp
http://www.geekyboy.com
Selenium Testing IDE
About Me
Work for my own company from my home-based office consulting with
many larger companies.
Zend PHP 5.3 Certified Engineer
Created ReqHarbor.com, OutsourceHarbor.com, more harbors coming.
Projects coming github.com/adamculp
Looking forward to php|tek '12 in a couple weeks
Ultra-runner (still trying to finish a 100 miler), scuba diver, judo player
(black belt), husband, father (of 3), grand-dad (7 times, kids need a
hobby)
Organizer of South Florida PHP Users Group for the past 2 years
Selenium Testing IDE
What is Selenium IDE?
Integrated development environment to
create, edit, and run Selenium
scripts.
Runs as a Firefox plugin but can be
used as Remote Control for any
browser. (We will only cover the
Firefox plugin for time constraint.)
Written in Javascript, considered
another Firefox window.
Handy way to test web forms and other
elements in a web page/application.
Great helper when troubleshooting.
Selenium Testing IDE
Get Started
Install (Firefox addon site is a bit behind)
http://addons.mozilla.org/en-US/firefox/addon/selenium-ide
http://release.seleniumhq.org/selenium-ide/1.8.0/selenium-ide-1.8.0.xpi
Execute
Tools->Selenium IDE
Record new test, or open a saved test
Selenium Testing IDE
Basic keyboard/mouse action recording
Selenium IDE starts recording when it is started (by default).
Click the record button to stop the recording when completed.
Selenium Testing IDE
Breakdown of test case
The test case is broken down into each step/click of the mouse, or input
from the keyboard.
Selenium Testing IDE
Executing a test case
By opening a test case you can execute it by clicking the Play Current Test
Case button.
Selenium Testing IDE
Executing a test suite (collection of test cases)
By opening a test suite you can execute the entire suite by clicking the Play
Entire Test Suite button.
Selenium Testing IDE
Executing a test suite (collection of test cases)
By opening a test suite you can execute the entire suite by clicking the Play
Entire Test Suite button.
Selenium Testing IDE
Why manual commands?
If your form gracefully errors out and
presents a nicely formatted message
the page actually succeeded. There
is no failure for Selenium to catch if
you are simply recording mouse and
keyboard actions.
In Selenium you would need to set
additional assertions to look for
certain elements or text that would
indicate a failure.
Selenium Testing IDE
Although you have a test suite open you can still
select individual test cases within the suite and
execute just that single test case.
Changing in individual test case does not affect
the suite. The suite is a list of pointers to the
cases. (Change a case, save the case. Add a
case, save the case and suite.)
Selenium Testing IDE
If you receive “false” test failures because the
server is responding too slowly you can adjust
the speed in which the IDE executes the test(s).
Selenium Testing IDE
Setting breaks
If you need Selenium to stop
in the middle of a test case
so you can perform an
action, or be alerted of
progress, insert a break.
This is handy to give you
time to perform a needed
action before the rest of the
test suite runs. (ex. - a new
user needs to add a
password or if a password
reset link is sent in email
for the user to manually
perform an action.)
Selenium Testing IDE
Other run comands
If you would like to insert a
point where Selenium
should stop during a
specific run, but not every
time, you can set a
breakpoint. This will not be
saved to the test case, but
will affect the current run.
You can also set/clear start
points if you want a case to
run from a certain point.
You can also tell Selenium to
run a specific line of a
case.
Selenium Testing IDE
Other uses:
Coding and need to test a form/page repeatedly to view outputs.
Automate Google searches and continue cycling through results until you
find your site. (SEO)
Pre-record actions for presentations
Selenium Testing IDE
Thank you
Adam Culp
http://www.geekyboy.com
http://github.com/adamculp
Twitter @adamculp