Sample usage
public class TestReporter implements ITestListener {
static int count;
public void onFinish(ITestContext arg0) {
System.out.println("Test Finished !!!!!!!!");
}
public void onStart(ITestContext arg0) {
ISuite suite = arg0.getSuite();
System.out.println("Driver is : ");
ITestNGMethod[] value = arg0.getAllTestMethods();
System.out.println("Method Number : "+value.length);
count = value.length;
}
@Override
public void onTestFailure(ITestResult arg0) {
// System.out.println("Finished Executing Test: "+arg0.getName()+" Status: Failed"+"\n Reason:"+arg0.getThrowable());
}
@Override
public void onTestSkipped(ITestResult arg0) {
// System.out.println("Skipped test: "+arg0.getName()+".Reason"+arg0.getThrowable());
}
@Override
public void onTestStart(ITestResult arg0) {
// System.out.println("Starting Test: "+arg0.getName());
// System.out.println("\n Starting Test: "+count--);
}
@Override
public void onTestSuccess(ITestResult arg0) {
System.out.println("Finished Executing Test: "+arg0.getName()+" Status: Success.");
System.out.println("Class Name : "+arg0.getTestClass());
Object[] ab = arg0.getParameters();
System.out.println("Param Set : "+ab.length);
for(int i = 0 ; i < ab.length ; i++)
System.out.print(ab[i]+" ");
// System.out.println("Method Name : "+arg0.getMethod().getMethodName());
}
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// System.out.println("Test failed but within success percentage");
}
}
public class SuiteReporter implements ISuiteListener {
@Override
public void onFinish(ISuite arg0) {
System.out.println("Finished executing the suite");
System.out.println("********Results*******");
}
@Override
public void onStart(ISuite arg0) {
System.out.println("Starting Execution");
//Print suiteName
System.out.println("Suite Name:"+arg0.getName());
//Print HostName
// System.out.println("Host Name:"+arg0.getHost());
//Returns null if it runs locally
}
}
<suite name="Sample Suite">
<!--
<listeners>
<listener class-name="com.clearspring.qa.tellurium.SuiteReporter" />
<listener class-name="com.clearspring.qa.tellurium.TestReporter" />
</listeners>
<test>
</test>
</suite>
Wednesday, January 4, 2012
Saturday, December 17, 2011
Clear Browser Cache
We can press Control + F5 using webdriver to clear the browser cache.
Actions actionObject = new Actions(driver);
actionObject.keyDown(Keys.CONTROL).sendKeys(Keys.F5).keyUp(Keys.CONTROL).perform();
Actions actionObject = new Actions(driver);
actionObject.keyDown(Keys.CONTROL).sendKeys(Keys.F5).keyUp(Keys.CONTROL).perform();
Disabling caching in ChromeDriver
For disabling caching in ChromeDriver we can use the chrome switches with DesiredCapabilities
DesiredCapabilities dc = DesiredCapabilities.chrome();
ArrayList<String> switches = new ArrayList<String>();
switches.add("--proxy-server="+InetAddress.getLocalHost().getHostAddress()+ ":" + Integer.parseInt(port));
switches.add("--proxy-bypass-list=local.addthis.com");
switches.add("--disable-application-cache");
dc.setCapability("chrome.switches", switches);
More details about chrome switches
DesiredCapabilities dc = DesiredCapabilities.chrome();
ArrayList<String> switches = new ArrayList<String>();
switches.add("--proxy-server="+InetAddress.getLocalHost().getHostAddress()+ ":" + Integer.parseInt(port));
switches.add("--proxy-bypass-list=local.addthis.com");
switches.add("--disable-application-cache");
dc.setCapability("chrome.switches", switches);
More details about chrome switches
Maven ant run plugin
Simulate all the tasks of ant script and also used to call external ant targets from a maven pom.
<groupId>org.apache.maven.plugins</groupId>Sample Usage : mvn antrun:run
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<configuration>
<tasks>
<echo message="hello ant, from Maven!" />
<echo>Maybe this will work?</echo>
<ant antfile="${basedir}/build.xml">
<target name="test" />
</ant>
<exec dir="${basedir}" executable="cmd"
failonerror="true">
<arg line="/K start" />
<arg line="one.bat" />
</exec>
</tasks>
</configuration>
</plugin>
Tuesday, November 1, 2011
Disabling caching in FirefoxDriver
Firefox profile with no caching enabled.
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.cache.disk.enable", false);
profile.setPreference("browser.cache.memory.enable", false);
profile.setPreference("browser.cache.offline.enable", false);
profile.setPreference("network.http.use-cache", false);
WebDriver driver = new FirefoxDriver(profile);
Similarly profile with alert, prompt etc disabled
profile.setPreference("capability.policy.policynames", "strict") ;
profile.setPreference("capability.policy.strict.Window.alert", "noAccess") ;
profile.setPreference("capability.policy.strict.Window.confirm", "noAccess") ;
profile.setPreference("capability.policy.strict.Window.prompt", "noAccess") ;
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.cache.disk.enable", false);
profile.setPreference("browser.cache.memory.enable", false);
profile.setPreference("browser.cache.offline.enable", false);
profile.setPreference("network.http.use-cache", false);
WebDriver driver = new FirefoxDriver(profile);
Similarly profile with alert, prompt etc disabled
profile.setPreference("capability.policy.policynames", "strict") ;
profile.setPreference("capability.policy.strict.Window.alert", "noAccess") ;
profile.setPreference("capability.policy.strict.Window.confirm", "noAccess") ;
profile.setPreference("capability.policy.strict.Window.prompt", "noAccess") ;
Saturday, October 29, 2011
CSS selectors
For selecting a particular column in a table.
XPATH : //table[@class='stb']//tr[2]/td[2]
CSS : css=table.stb tr:nth-child(2)>td:nth-child(1)
XPATH : //input[@name="myName"]
CSS : css=input[name=myName]
XPATH : //a[@title="Sign In"]
CSS : css=a[title='Sign In']
css=a.addthis_counter>a:nth-child(2)
More information here
XPATH : //table[@class='stb']//tr[2]/td[2]
CSS : css=table.stb tr:nth-child(2)>td:nth-child(1)
XPATH : //input[@name="myName"]
CSS : css=input[name=myName]
XPATH : //a[@title="Sign In"]
CSS : css=a[title='Sign In']
css=a.addthis_counter>a:nth-child(2)
a class="addthis_counter addthis_bubble_style" //With space btw css
driver.findElement(By. cssSelector("a[class~=' addthis_bubble_style']"));
More information here
Using properties file
There are a number of ways to perform data driven testing. Here i will mention how to use a properties file to get data and use it for testing purpose.
InputStream is = this.getClass().getResourceAsStream("/conf/datasuite.properties");
Properties prop = new Properties();
prop.load(is);
String directory = prop.getProperty("Directory");
String numberOfFiles = prop.getProperty("NumberOfFiles");
String fileExtension = prop.getProperty("Extension");
is.close();
System.out.println(directory+" "+numberOfFiles+" "+fileExtension);
Contents of datasuite.properties file.
Directory = C:/prodFiles/
NumberOfFiles = 25
Extension = javaworlddfg
One thing to note is that the 'conf' folder is referenced with respect to the class files created.
InputStream is = this.getClass().getResourceAsStream("/conf/datasuite.properties");
Properties prop = new Properties();
prop.load(is);
String directory = prop.getProperty("Directory");
String numberOfFiles = prop.getProperty("NumberOfFiles");
String fileExtension = prop.getProperty("Extension");
is.close();
System.out.println(directory+" "+numberOfFiles+" "+fileExtension);
Contents of datasuite.properties file.
Directory = C:/prodFiles/
NumberOfFiles = 25
Extension = javaworlddfg
One thing to note is that the 'conf' folder is referenced with respect to the class files created.
Subscribe to:
Posts (Atom)