Sharing my learnings on Selenium, I share as I learn and I learn as I share..
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
http://code.google.com/p/selenium/downloads/list
Saturday, June 4, 2011
IDE Exercises
Ex-1
•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 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.
Subscribe to:
Posts (Atom)