In previous post we have see only once test to run on cloud services like Testing bot or BrowserStack.
Now in this post we will see how to run parallel test with Browser Stack.
The script should launch three different browser like IE, Firefox and Chrome in three different OS.
We need two files
1. Testng Script
2. Testng.xml file (this file will have three different test with parameter like browser, version and platform )
1. TesNG Script :
Now in this post we will see how to run parallel test with Browser Stack.
The script should launch three different browser like IE, Firefox and Chrome in three different OS.
We need two files
1. Testng Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.test; | |
import java.io.File; | |
import java.io.IOException; | |
import java.net.URL; | |
import org.apache.commons.io.FileUtils; | |
import org.openqa.selenium.By; | |
import org.openqa.selenium.OutputType; | |
import org.openqa.selenium.TakesScreenshot; | |
import org.openqa.selenium.WebDriver; | |
import org.openqa.selenium.WebElement; | |
import org.openqa.selenium.remote.Augmenter; | |
import org.openqa.selenium.remote.DesiredCapabilities; | |
import org.openqa.selenium.remote.RemoteWebDriver; | |
import org.testng.Assert; | |
import org.testng.annotations.AfterClass; | |
import org.testng.annotations.BeforeClass; | |
import org.testng.annotations.Test; | |
public class BrowserStackParallelTest { | |
private WebDriver driver; | |
@BeforeClass | |
@org.testng.annotations.Parameters(value={"browser","version","platform"}) | |
public void setUp(String browser, String version, String platform) throws Exception { | |
DesiredCapabilities capability = new DesiredCapabilities(); | |
capability.setCapability("platform",platform); | |
capability.setCapability("browserName", browser); | |
capability.setCapability("browserVersion", version); | |
capability.setCapability("project", "P1"); | |
capability.setCapability("build", "1.0"); | |
driver = new RemoteWebDriver( | |
new URL("http://gururajhm:yourkey@hub.browserstack.com/wd/hub"), | |
capability); | |
} | |
@Test | |
public void testSimple() throws Exception { | |
driver.get("http://www.google.com"); | |
System.out.println("Page title is: " + driver.getTitle()); | |
Assert.assertEquals("Google", driver.getTitle()); | |
WebElement element = driver.findElement(By.name("q")); | |
element.sendKeys("Browser Stack"); | |
element.submit(); | |
driver = new Augmenter().augment(driver); | |
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); | |
try { | |
FileUtils.copyFile(srcFile, new File("Screenshot.png")); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
@AfterClass | |
public void tearDown() throws Exception { | |
driver.quit(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2. Testng XML file : tesng.xml | |
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> | |
<suite thread-count="3" name="Suite" parallel="tests"> | |
<test name="FirstTest"> | |
<parameter name="browser" value="firefox"/> | |
<parameter name="version" value="30.0"/> | |
<parameter name="platform" value="MAC"/> | |
<classes> | |
<class name="com.test.BrowserStackParallelTest"/> | |
</classes> | |
</test> <!-- Test --> | |
<test name="SecondTest"> | |
<parameter name="browser" value="chrome"/> | |
<parameter name="version" value="35.0"/> | |
<parameter name="platform" value="WINDOWS"/> | |
<classes> | |
<class name="com.test.BrowserStackParallelTest"/> | |
</classes> | |
</test> <!-- Test --> | |
<test name="ThirdTest"> | |
<parameter name="browser" value="IE"/> | |
<parameter name="version" value="7.0"/> | |
<parameter name="platform" value="XP"/> | |
<classes> | |
<class name="com.test.BrowserStackParallelTest"/> | |
</classes> | |
</test> <!-- Test --> | |
</suite> <!-- Suite --> |
1. TesNG Script :
Right click testng.xml file and run as TestngSuite
Now login to BrowserStack under Automate tab should be able see three threads or parallel test running