Sunday, July 10, 2011

Shutdown RC from browser

http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer

Sunday, June 5, 2011

Download Selenium RC 1.0.3

The most stable version of Selenium RC is available at:

http://code.google.com/p/selenium/downloads/list

Saturday, June 4, 2011

IDE Exercises

Ex-1
Open a specific URL (www.amazon.com)
Select “Books” under Search Select List
Search for a specific text (“Java”) in #1 page
Sort by “Prize: Low to high”
Check whether the windows title matches “Amazon.com: Java: Books”
Check whether the result set contains “Java” text
Click the link #2
Check whether the result set contains “Java” text

Wednesday, June 1, 2011

Selenium IDE 1.0.11 released

Selenium IDE

Selenium IDE is the a Firefox plugin that does record-and-playback of interactions with the browser. Use this to either script simple scripts, or to speed up creation of Selenium RC or Selenium Webdriver scripts.

Download version 1.0.11 released on 30/May/2011 or view the Release Notes

http://seleniumhq.org/download/

Saturday, April 30, 2011

DDT Code

//Data Driven Test Framework using Selenium and TestNG
//This Test performs search for the movie and looks for the attributes on the result page
//Data is read from the Excel SS - imdb_data1.xls
package script;

import com.thoughtworks.selenium.*;

//import org.junit.AfterClass;
import org.openqa.selenium.server.SeleniumServer;
import org.testng.annotations.*;

import java.io.File;
import jxl.*;

public class dataProviderExample extends SeleneseTestCase{

@BeforeClass
public void setUp() throws Exception {
SeleniumServer seleniumserver=new SeleniumServer();
seleniumserver.boot();
seleniumserver.start();
setUp("http://www.imdb.com/", "*firefox");
selenium.open("/");
selenium.windowMaximize();
selenium.windowFocus();
}

@DataProvider(name = "DP1")
public Object[][] createData1() {
Object[][] retObjArr=getTableArray("test\\resources\\data\\imdb_data1.xls",
"DataPool", "imdbTestData1");
return(retObjArr);
}


@Test (dataProvider = "DP1")
public void testDataProviderExample(String movieTitle,
String directorName, String moviePlot, String actorName) throws Exception {
//enter the movie title
selenium.type("q", movieTitle);
//they keep switching the go button to keep the bots away
if (selenium.isElementPresent("nb15go_image"))
selenium.click("nb15go_image");
else
selenium.click("xpath=/descendant::button[@type='submit']");
selenium.waitForPageToLoad("30000");

//click on the movie title in the search result page
selenium.click("xpath=/descendant::a[text()='"+movieTitle+"']");
selenium.waitForPageToLoad("30000");
//verify director name is present in the movie details page
verifyTrue(selenium.isTextPresent(directorName));
//verify movie plot is present in the movie details page
verifyTrue(selenium.isTextPresent(moviePlot));
//verify movie actor name is present in the movie details page
verifyTrue(selenium.isTextPresent(actorName));
}

@AfterClass
public void tearDown(){
selenium.close();
selenium.stop();
}

public String[][] getTableArray(String xlFilePath, String sheetName, String tableName){
String[][] tabArray=null;
try{
Workbook workbook = Workbook.getWorkbook(new File(xlFilePath));
Sheet sheet = workbook.getSheet(sheetName);
int startRow,startCol, endRow, endCol,ci,cj;
Cell tableStart=sheet.findCell(tableName);
startRow=tableStart.getRow();
startCol=tableStart.getColumn();

Cell tableEnd= sheet.findCell(tableName, startCol+1,startRow+1, 100, 64000, false);

endRow=tableEnd.getRow();
endCol=tableEnd.getColumn();

System.out.println("startRow="+startRow+", endRow="+endRow+", " +
"startCol="+startCol+", endCol="+endCol);
tabArray=new String[endRow-startRow-1][endCol-startCol-1];
ci=0;

for (int i=startRow+1;i<endRow;i++,ci++){
cj=0;
for (int j=startCol+1;j<endCol;j++,cj++){
tabArray[ci][cj]=sheet.getCell(j,i).getContents();
}
}
}
catch (Exception e) {
System.out.println("error in getTableArray()");
}

return(tabArray);
}

}//end of class

Sunday, April 24, 2011

Android Apps Testing Tool-kit

Playing around with idea to develop a testing tool-kit for Android. With so many applications being built, there is a dire need to shorten the time to market. That is the main reason, most of the applications available in the market either crash or do not meet user expectation. It is apparent that the quality is veiong sacrificed in order to mee the deadlines. To ensure that the Android apps are delivered with quality and also in time, there is a need for a testing framework that can check on the quality of apps on certain standard parameters as below:

1. Installation testing:
Tester’s need to focus on installation & uninstallation of the app. User will install the app through Market place, but since the app is not in market place testers can use the app installer from marketplace for installation tests.

2. Requirement (Functionality) Testing:
Test for the application functionality according to designed test cases.

3. Widget testing:
Test the widget by adding widget, using widget as per functionality i.e. music widget should play music, deleting widget.

4. Phone Interrupt testing:
Test the application behavior on phone call, SMS & other notifications.

5. Stress testing (monkey test):
There is a command in android where it generates series of events at different frequencies.
Make sure your app passes this monkey test

6. UI testing:
Testing for UI can be done to verify that the app meets standard guidelines.

Refer the link below:
http://developer.android.com/guide/practices/ui_guidelines/index.html

7. Compatibility Test:
Developers do the unit testing on the emulators. Testers need to test on actual environment i.e. devices. There are multiple devices of different resolutions & having various OS i.e. Android 1.5, 1.6. 2.1 & 2.2. We need to check for compatibility on maximum devices.

Tuesday, April 12, 2011

Android App Testing



Robotium

Robotium is java based (jar) and can be run through Eclipse IDE.

Robotium officially supports Android 1.6 and up.

For more information on features of this Apache open-source tool, please click on the above link.