Selenium Continuous Integration Runner

selenium At Common Sense Media I wanted to get some functional testing up and running that didn’t require a lot of user training for the QA folks. I also wanted those tests to run in our Rightscale/Amazon EC2 hosted Hudson continuous integration server. As a result I’ve published the:

Selenium Selenese Continuous Integration Runner

on GitHub in the hopes that it will save other people time when trying to get their Selenese tests running from a continuous integration server. It’s very simple but one thing I battled with was that I had to patch the selenium JAR to get it to work with Firefox 3.0. It should work fine in any continuous integration server regardless if it’s Hudson, Cruise, Cruise Control, Bamboo, etc.

The functional testing products I’ve used that drive a real browser include Test Complete (commercial), Selenium, and Watir. I think all 3 do a good job but one thing I like about Selenium is that it’s dirt simple to get a user productive with the Selenium IDE Firefox plugin. However, that benefit is also the most limiting factor of the Selenium IDE which is that to be able to re-open tests in Selenium IDE you have to save them as Selenese (which is the most limited of the testing languages that Selenium supports). Still, I think Selenese is a reasonable choice for a lot of organizations that need a moderately sophisticated functional test suite.

This entry was posted in Agile Development, Continuous Integration, Java, Javascript, Quality Assurance, Software Engineering, Testing. Bookmark the permalink.

4 Responses to Selenium Continuous Integration Runner

  1. David M says:

    Hi Todd,

    We have a few selenese based cases I was wanting to play around with your runner.

    Seemed to work fine with the included case, but when I ran a few of our cases the baseUrl parameter seemed to keep coming up with additions on the URI which caused the cases to fail.

    I did change the startURL in the build.xml to be the correct starting URL, but no luck.

    The URL that it is attempting in the browser is this:

    http://www.yoursite.com/selenium-server/core/TestRunner.html?auto=true&multiWindow=false&defaultLogLevel=info&baseUrl=http%3A%2F%2Fwww.yoursite.com/selenium-server/tests/&resultsUrl=../postResults&test=http%3A%2F%2Fwww.yoursite.com%2Fselenium-server%2Ftests%2Ftest123.html

    What it really should be doing is just baseUrl=http://www.yoursite.com
    without the additions.

    Any thoughts ?

  2. Todd Huss says:

    Hi David, I’m not sure what could be causing that. We’re running it at work with dozens of test cases without any trouble. If you figure out though and it turns out to be a bug in my code please submit a patch or fork it on github and send me a pull request and I’ll incorporate it so others can benefit. You could also try upgrading the lib/selenium-server.jar to the latest version and see if that makes any difference.

  3. Patrick says:

    David M – I am seeing the exact same error:

    http://myserver.com/selenium-server/core/TestRunner.html?auto=true&multiWindow=false&defaultLogLevel=info&baseUrl=http%3A%2F%2Frhel2%3A8080%2Falpgen%2F/selenium-server/tests/&resultsUrl=../postResults&test=http%3A%2F%2Frhel2%3A8080%2Fselenium-server%2Ftests%2FMainSiteTestSuite.html

    I tested version 1.01 of selenium-server.jar and get a NullPointerException.

    Let me know if you have any success.

    Thanks

    Patrick

  4. Leonid Pekker says:

    Hi I am trying to install the selenium ide to run on bamboo. I setup the xml file and when I run ant run i get this error:

    BUILD FAILED
    /Applications/Bamboo/build.xml:29: Problem: failed to create task or type selenese
    Cause: The name is undefined.
    Action: Check the spelling.
    Action: Check that any custom tasks/types have been declared.
    Action: Check that any / declarations have taken place.

    Please let me know if Im doing anything wrong. Thanks in advance!!!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>