Sunday, June 29, 2008

Running Selenium inside JUnit

Selenium is a framework which makes testing a web application possible, in an automated fashion. It helps us record test scripts in various formats and run it on the web application.
Selenium brings you three components. One of those, Selenium-ide is available as a firefox extension which can record your actions on a web page and then re-run it. Another component called selenium-core helps you copy the test-scripts over to the server and run it from there. This is helpful when you need more control over the way tests are run. Third one, which we are particularly interested in, is the selenium-remote. Selenium-remote has a server and client architecture.

JUnit is a unit testing framework (okay, I know you know that!). It is possible to
combine jUnit and Selelnium to write powerful client side test scripts. One advantage is that selenium testscripts can be made part of your build process.


Now, lets get into action. Download the selenium-remote.

First step would be to run the selenium-server. The server acts as a intercepting server
for the client (the client is mostly the browser).

$java -jar selenium-server.jar
19:18:09.156 INFO - Java: Sun Microsystems Inc. 10.0-b22
19:18:09.156 INFO - OS: Windows XP 5.1 x86
19:18:09.156 INFO - v0.9.2 [2006], with Core v0.8.3 [1879]
19:18:09.500 INFO - Version Jetty/5.1.x
19:18:09.500 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
19:18:09.500 INFO - Started HttpContext[/selenium-server,/selenium-server]
19:18:09.500 INFO - Started HttpContext[/,/]
19:18:09.828 INFO - Started SocketListener on 0.0.0.0:4444
19:18:09.828 INFO - Started org.mortbay.jetty.Server@6d084b


Server is up and running on port 4444 (of course you can change the port, take a look at the command line options)

You are now ready for the jUnit test case. A simple one :

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

import junit.framework.TestCase;


public class DummyTest extends TestCase {

Selenium selenium = null; // selenium object represents the browser

public void setUp() {
// Open the browser, connect to selenium server on localhost:4444. the basedomain is www.inapp.com
// *firefox is the browser command for Firefox, *iexplore for IE.
selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://www.inapp.com" );
}

public void testDummyFunction() throws Exception {
selenium.open("http://www.inapp.com"); // open the url in browser
assertTrue(selenium.getTitle().startsWith("InApp")); // the test!
selenium.close();
}
}


Note that you have to specify a base-domain while instantiating DefaultBrowser. A url from another domain cannot be opened from the browser for security reasons.
Dont forget to include selenium-java-client.jar in your classpath.


Lets look at another example :

import com.thoughtworks.selenium.SeleneseTestCase;

public class DummyTest extends SeleneseTestCase { //Notice that we extend 'SeleneseTestCase' instead of 'TestCase'

public void testDummyFunction() throws Exception {
setUp("http://www.inapp.com", "*firefox"); // initialize the DefaultBrowser
selenium.open("http://www.inapp.com"); // open the url in browser
assertTrue(selenium.getTitle().startsWith("InApp")); // the test!
selenium.close();
}
}


We make use of SeleneseTestCase provided by selenium remote. It makes the code concise.

The DefaultBrowser class have lot of methods which we can use in order to validate the content in the browser and fire events. You event have a 'captureScreenshot' method to get a screenshot of your browser. So next time you have a test fail, get the screenshot mailed to you :)

Tuesday, June 24, 2008

Why GNU/Linux must be used in Schools

Most people think its the cost benefit of Gnu/Linux or free(as in freedom) software
which is the main advantage it gives. Well, in fact cost is just one among many reasons for using Free (as in freedom) Software.
Read this.

Thursday, June 19, 2008

The catholics ridicule themselves !

"It's a dangerous trend. Our community is shrinking day by day," Archbishop Thazhath told UCA News Sept 10. Other communities are "growing steadily" and the "trend should open our eyes," he added.


News here.

RIDICULOUS !!!!

Saturday, June 14, 2008

ദസ്തയോവ്സ്കിയും ദൈവവും.

"ദൈവം എന്നേപ്പോലെ
തിരസ്കൃതനും ദരിദ്രനും
രോഗിയും ഏകാകിയുമായിരുന്നെങ്കില്‍
ഞാന്‍ പറയുന്നത്‌ കുറേക്കൂടി
നന്നായി അദ്ദേഹത്തിന്‌ മനസ്സിലാകുമായിരുന്നു"

-ദസ്തയോവ്സ്കി

എവിടെയാണ് വായിച്ചെതെന്നു ഓര്‍ക്കുന്നില്ല....

Thursday, June 12, 2008

The story of stuff

From its extraction through sale, use and disposal, all the stuff in our lives affects communities at home and abroad, yet most of this is hidden from view. The Story of Stuff is a 20-minute, fast-paced, fact-filled look at the underside of our production and consumption patterns. The Story of Stuff exposes the connections between a huge number of environmental and social issues, and calls us together to create a more sustainable and just world. It'll teach you something, it'll make you laugh, and it just may change the way you look at all the stuff in your life forever.

The Story of Stuff

Bookmark

AddThis Social Bookmark Button