QA/Tools/Selenium/AMO Automation

From MozillaWiki
< QA
Jump to: navigation, search

Selenium IDE/RC and AMO, or: How I Learned to Stop Worrying and Love Automation

Questions? Feedback/suggestions? Email

How to record and play back Selenium IDE scripts

  1. Record the script(s) with Selenium IDE
    1. Be sure to record relative, not absolute paths (i.e. /en-US/firefox/some/AMO/url/, rather than
      1. When finished, File | Save Test Case As..., and be sure it has a .HTML extension
  2. Download and unpack Selenium RC -- literally just extract the contents into their own new folder
    1. In the root of your Selenium RC folder, create a folder called |htmlSuite|
    2. Drop your |testcase.html| file(s) into the |htmlSuite| directory
    3. In |htmlSuite|, create an HTML file called |testSuite.html|, following the markup in
    4. Change the |href=| filename attributes to match each of your testcase's filename
  3. From the command line, CD into the selenium-server folder (something like ~/Desktop/selenium-remote-control-1.0-SNAPSHOT/selenium-server-1.0-SNAPSHOT), and issue:
    • java -jar selenium-server.jar -htmlSuite "*chrome" "" [1 -- just a footnote, don't enter me!] "/Users/stephend/Desktop/selenium-remote-control-1.0-SNAPSHOT/htmlSuite/testSuite.html" "/Users/stephend/Desktop/results.html" (substituting, of course, the folder name of your RC version and path/to/tests and path/to/results.html)
  4. If all goes, well, your first testcase will begin running; when it's finished, it'll run the next testcase, and once that's completed, it'll quit Firefox and write out |results.html| -- sample results.html

[1] This is the base URL, and what your test scripts will key off of

Testcases I'm working on


Sounds great and all, but what does this do for / how does this help AMO?


  1. The idea is not to regress critical things like search, other functionality/page views
  2. Should let us focus on verifying new functionality works as expected
  3. Rapid turnaround on automating user actions


  1. Not a substitute for a unit test
  2. Can't really test layout well
  3. Want to use the |pause| command? Too bad; it apparently doesn't work :-(