Skip to content

Commit a6d8f0b

Browse files
committed
testng
0 parents  commit a6d8f0b

File tree

3 files changed

+166
-0
lines changed

3 files changed

+166
-0
lines changed

TestNGParallel.java

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package bs;
2+
3+
import org.testng.annotations.Test;
4+
import org.testng.annotations.AfterClass;
5+
import org.testng.annotations.BeforeClass;
6+
import org.testng.Assert;
7+
8+
import java.io.File;
9+
import java.io.IOException;
10+
import java.net.URL;
11+
12+
import org.apache.commons.io.FileUtils;
13+
import org.openqa.selenium.By;
14+
import org.openqa.selenium.OutputType;
15+
import org.openqa.selenium.TakesScreenshot;
16+
import org.openqa.selenium.WebDriver;
17+
import org.openqa.selenium.WebElement;
18+
import org.openqa.selenium.remote.Augmenter;
19+
import org.openqa.selenium.remote.DesiredCapabilities;
20+
import org.openqa.selenium.remote.RemoteWebDriver;
21+
22+
public class TestNGParallel {
23+
24+
private WebDriver driver;
25+
26+
@BeforeClass
27+
@org.testng.annotations.Parameters(value={"browser","version","platform"})
28+
public void setUp(String browser, String version, String platform) throws Exception {
29+
DesiredCapabilities capability = new DesiredCapabilities();
30+
capability.setCapability("platform",platform);
31+
capability.setCapability("browserName", browser);
32+
capability.setCapability("browserVersion", version);
33+
capability.setCapability("project", "P1");
34+
capability.setCapability("build", "1.0");
35+
driver = new RemoteWebDriver(
36+
new URL("http://USERNAME:[email protected]/wd/hub"),
37+
capability);
38+
}
39+
40+
@Test
41+
public void testSimple() throws Exception {
42+
driver.get("http://www.google.com");
43+
System.out.println("Page title is: " + driver.getTitle());
44+
Assert.assertEquals("Google", driver.getTitle());
45+
WebElement element = driver.findElement(By.name("q"));
46+
element.sendKeys("Browser Stack");
47+
element.submit();
48+
driver = new Augmenter().augment(driver);
49+
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
50+
try {
51+
FileUtils.copyFile(srcFile, new File("Screenshot.png"));
52+
} catch (IOException e) {
53+
e.printStackTrace();
54+
}
55+
}
56+
57+
@AfterClass
58+
public void tearDown() throws Exception {
59+
driver.quit();
60+
}
61+
}

TestNGSample.java

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.browserstack;
2+
3+
import org.testng.annotations.DataProvider;
4+
import org.testng.annotations.Factory;
5+
import org.testng.annotations.Test;
6+
import org.testng.annotations.AfterClass;
7+
import org.testng.annotations.BeforeClass;
8+
import org.testng.Assert;
9+
10+
import java.io.File;
11+
import java.io.IOException;
12+
import java.net.URL;
13+
14+
import org.apache.commons.io.FileUtils;
15+
import org.openqa.selenium.By;
16+
import org.openqa.selenium.OutputType;
17+
import org.openqa.selenium.Platform;
18+
import org.openqa.selenium.TakesScreenshot;
19+
import org.openqa.selenium.WebDriver;
20+
import org.openqa.selenium.WebElement;
21+
import org.openqa.selenium.remote.Augmenter;
22+
import org.openqa.selenium.remote.DesiredCapabilities;
23+
import org.openqa.selenium.remote.RemoteWebDriver;
24+
25+
public class TestNGSample {
26+
private String platform;
27+
private String browserName;
28+
private String browserVersion;
29+
30+
@Factory(dataProvider = "getBrowsers")
31+
public TestNGSample(String platform,String browserName,String browserVersion) {
32+
this.platform = platform;
33+
this.browserName = browserName;
34+
this.browserVersion = browserVersion;
35+
}
36+
37+
private WebDriver driver;
38+
39+
@BeforeClass
40+
public void setUp() throws Exception {
41+
DesiredCapabilities capability = new DesiredCapabilities();
42+
capability.setCapability("platform",platform);
43+
capability.setCapability("browser", browserName);
44+
capability.setCapability("browserVersion", browserVersion);
45+
driver = new RemoteWebDriver(new URL("http://USERNAME:[email protected]/wd/hub"), capability);
46+
}
47+
48+
@Test
49+
public void testSimple() throws Exception {
50+
driver.get("http://www.google.com");
51+
System.out.println("Page title is: " + driver.getTitle());
52+
Assert.assertEquals("Google", driver.getTitle());
53+
WebElement element = driver.findElement(By.name("q"));
54+
element.sendKeys("Browser Stack");
55+
element.submit();
56+
driver = new Augmenter().augment(driver);
57+
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
58+
try {
59+
FileUtils.copyFile(srcFile, new File("Screenshot.png"));
60+
} catch (IOException e) {
61+
e.printStackTrace();
62+
}
63+
}
64+
65+
@AfterClass
66+
public void tearDown() throws Exception {
67+
driver.quit();
68+
}
69+
70+
@DataProvider(name = "getBrowsers")
71+
public static Object[][] createData1() {
72+
return new Object[][] {
73+
{ Platform.WINDOWS.toString(), "chrome", "27" },
74+
{ Platform.XP.toString(), "firefox", "19"},
75+
};
76+
}
77+
}

Testng.xml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
3+
<suite thread-count="3" name="Suite" parallel="tests">
4+
<test name="FirstTest">
5+
<parameter name="browser" value="firefox"/>
6+
<parameter name="version" value="20.0"/>
7+
<parameter name="platform" value="MAC"/>
8+
<classes>
9+
<class name="bs.TestNGParallel"/>
10+
</classes>
11+
</test> <!-- Test -->
12+
<test name="SecondTest">
13+
<parameter name="browser" value="chrome"/>
14+
<parameter name="version" value="26.0"/>
15+
<parameter name="platform" value="WINDOWS"/>
16+
<classes>
17+
<class name="bs.TestNGParallel"/>
18+
</classes>
19+
</test> <!-- Test -->
20+
<test name="ThirdTest">
21+
<parameter name="browser" value="safari"/>
22+
<parameter name="version" value="6.0"/>
23+
<parameter name="platform" value="MAC"/>
24+
<classes>
25+
<class name="bs.TestNGParallel"/>
26+
</classes>
27+
</test> <!-- Test -->
28+
</suite> <!-- Suite -->

0 commit comments

Comments
 (0)