BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Catching up with Selenium: Testing Ajax, v0.8 Released

Catching up with Selenium: Testing Ajax, v0.8 Released

Bookmarks
Selenium is an web app functional testing tool written by ThoughtWorks.  Selenium uses JavaScript and Iframes to embed a test automation engine in your browser, allowing Selenium to execute in any JavaScript-enabled browser. InfoQ spoke to Jeff Xiong, one of the Selenium core developers to find out more about the recent 0.8 release of Selenium core.    Also, in this latest InfoQ article on Selenium, the Selenium team show how to configure the tool for testing Ajax applications using the waitForXxxx Selenium commands;demonstrating how to test a simple Ajax effect - an asynchronous text update - with Selenium.

Read Testing Ajax Apps with Selenium.

On the release of version 0.8, Jeff Xiong explained each of the new features:
  • A "multiWindow" option which places the application-under-test in a  separate window, allowing testing of "frame-busting" apps. In the past Selenium didn't deal with the applications-under-test (AUT) which use frames very well, because it put the AUT in an embeded frame instead of stand-alone window. That was one of the largest problems preventing people from using Selenium. In 0.8, we provided an option to put the AUT in a stand-alone window, so that we can deal with all kinds of AUT actions that previously might have broken Selenium (e.g. change location of "window.parent" or "window.top"). This is the most important improvement in this new version.
  •  More reliable page-load detection for popup windows. There's a bug makes firefox cannot detect "children" windows' page-load status. That means with the combination of older version of Selenium and firefox, there may be some unpredicatable test failures. In this new version we provided a firefox plugin, which enhances firefox and makes the test more reliable.
  • New cookie-management actions. The past versions cannot deal with cookies. Users had to set up cookie environment in AUT by themselves to test cookie-related functionalities like "login". 0.8 provided cookie-handling actions like "createCookie", "deleteCookie" and "storeCookie", so that users can setup and teardown cookie environment in test cases.
  • Run-speed slider and "Pause" button which replace the old Run/Walk/Step radio-buttons.  In past versions we provided only 2 different speed
    options: fast "Run" and slow "Walk". In 0.8 we provided a slider to control the speed. Users can choose any speed between "very fast" and "very slow", allowing them to observe the tests in action.
Selenium is open source and maintained by ThoughtWorks. The tool was designed specifically for the acceptance testing requirements of Agile teams.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • very cool feature

    by Alex Popescu,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I must confess that in the past all my AJAX pages were tested using pause(), and not only because of Selenium limitations, but also because it gave me a way to see what happens when the server timeouts (which by the way is something that must be tested).

    Now, regarding the new commands I am noticing in the above example that you need to provide twice the future value (the waitForX command and also to the assert). I am wondering what were the reasons behind this decission, instead of having a single command/assertion that does both jobs (wait for result and assert).

    ./alex
    --
    :Architect of InfoQ.com:
    .w( the_mindstorm )p.
    Co-founder of InfoQ.com

  • Re: very cool feature

    by Stefan Tilkov,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    For Ruby, an alternative is to use the unit testing support built into script.aculo.us.

  • Commercial tool support

    by Patrick Lightbody,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    We're also very excited about this new release. The original work on the multiWindow mode actually came out of the commercial work we've been doing on HostedQA and AutoQ. The reason is that we didn't want our customers running tests in an iframe (like Selenium requires by default) as opposed to running in a normal browser window. (You can see what the reports/screenshots look like for some popular opensource projects here).

    If you find that you like Selenium, but wished it had some additional features (auto deployment of Java/Rails applications and databases, screenshot support, or refactoring features), then it might be worthwhile to check out our stuff. The nice thing is you can use Selenium IDE to import tests and you are free to export your tests at any time. Combine that with a free trial, and it's pretty much no-risk to check out.

    The next feature we're going to be pushing back in to the Selenium project is HTTPS support. Up until now, there was no way to test HTTPS applications with Selenium RC, but as of this week we've donated some code to the project that will allow this.

  • Re: Commercial tool support

    by Alex Popescu,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Great job Pat! And thanks for contributing it back to the community.

    ./alex
    --
    :Architect of InfoQ.com:
    .w( the_mindstorm )p.
    Co-founder of InfoQ.com

  • AJAX functional Testing

    by Alex F,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    You can also check SWExplorerAutomation SWEA from webiussoft.com. SWEA was specially designed to support AJAX (DHTML) applications. SWEA supports windows (alerts, login) and html dialogs, popup windows, mouse input simulation, file downloads, frames (cross domain) and more. SWEA can test scripts can be used in NUnit and Visual Studio unit tests.

  • Re: AJAX functional Testing

    by meenakshi ghosh,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Can anyone let me know how to capture a piece of data that is created randomly in a test flow using selenium HTML scripts?

    I need to know what command we can use to capture that random data generated in a page. Also I need to store the data and pass as a string in some other page.

    Can anyone throw some lights on this one?

  • Good Article

    by jessica winslet,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I am trying to see if Selenium is good for testing my applicaton or not. Am using the Selenium Ide. I want to know where the core files are installed along with
    meilleur site de jeux de casino the IDE? I need to change the sample files where?

  • Re: Good Article

    by Victor Hugo Saavedra,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Excelent.

    I don't know de waitForXXX, but i can't know the end httpRequest de ajax???


    sorry by my english, I speak and write only spanish, I am from Chile
    --
    Atte.
    Victor Hugo Saavedra.
    vhspiceros.blogspot.com

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT