Skip to content

Commit 97dd001

Browse files
committed
AppAutomate: new tests to work for app_testing
1 parent 7c25965 commit 97dd001

22 files changed

+232
-124
lines changed

config/local.testng.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<suite name="Local">
44
<test name="LocalTest">
55
<parameter name="config" value="local.conf.json"/>
6-
<parameter name="environment" value="chrome"/>
6+
<parameter name="environment" value="galaxy_s6"/>
77
<classes>
88
<class name="com.browserstack.LocalTest"/>
99
</classes>

config/parallel.testng.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
33
<suite name="Parallel" thread-count="4" parallel="tests">
4-
<test name="SingleTestChrome">
4+
<test name="SingleTestGalaxyS6">
55
<parameter name="config" value="parallel.conf.json"/>
6-
<parameter name="environment" value="chrome"/>
6+
<parameter name="environment" value="galaxy_s6"/>
77
<classes>
88
<class name="com.browserstack.SingleTest"/>
99
</classes>
1010
</test>
1111

12-
<test name="SingleTestFirefox">
12+
<test name="SingleTestPixel">
1313
<parameter name="config" value="parallel.conf.json"/>
14-
<parameter name="environment" value="firefox"/>
14+
<parameter name="environment" value="pixel"/>
1515
<classes>
1616
<class name="com.browserstack.SingleTest"/>
1717
</classes>
1818
</test>
1919

20-
<test name="SingleTestSafari">
20+
<test name="SingleTestGalaxyS7">
2121
<parameter name="config" value="parallel.conf.json"/>
22-
<parameter name="environment" value="safari"/>
22+
<parameter name="environment" value="galaxy_s7"/>
2323
<classes>
2424
<class name="com.browserstack.SingleTest"/>
2525
</classes>
2626
</test>
2727

28-
<test name="SingleTestIE">
28+
<test name="SingleTestNexus9">
2929
<parameter name="config" value="parallel.conf.json"/>
30-
<parameter name="environment" value="ie"/>
30+
<parameter name="environment" value="nexus_9"/>
3131
<classes>
3232
<class name="com.browserstack.SingleTest"/>
3333
</classes>

config/single.testng.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<suite name="Single">
44
<test name="SingleTest">
55
<parameter name="config" value="single.conf.json"/>
6-
<parameter name="environment" value="chrome"/>
6+
<parameter name="environment" value="galaxy_s6"/>
77
<classes>
88
<class name="com.browserstack.SingleTest"/>
99
</classes>

config/suite.testng.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
33
<suite name="Pool" parallel="tests">
4-
<test name="PoolTestChrome" thread-count="3" parallel="classes">
4+
<test name="PoolTestS6" thread-count="3" parallel="classes">
55
<parameter name="config" value="suite.conf.json"/>
6-
<parameter name="environment" value="chrome"/>
6+
<parameter name="environment" value="galaxy_s6"/>
77
<classes>
88
<class name="com.browserstack.suite.SuiteTest01"/>
99
<class name="com.browserstack.suite.SuiteTest02"/>
@@ -18,9 +18,9 @@
1818
</classes>
1919
</test>
2020

21-
<test name="PoolTestFirefox" thread-count="3" parallel="classes">
21+
<test name="PoolTestPixel" thread-count="3" parallel="classes">
2222
<parameter name="config" value="suite.conf.json"/>
23-
<parameter name="environment" value="firefox"/>
23+
<parameter name="environment" value="pixel"/>
2424
<classes>
2525
<class name="com.browserstack.suite.SuiteTest01"/>
2626
<class name="com.browserstack.suite.SuiteTest02"/>

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
<artifactId>testng</artifactId>
2525
<version>6.9.10</version>
2626
</dependency>
27+
<dependency>
28+
<groupId>io.appium</groupId>
29+
<artifactId>java-client</artifactId>
30+
<version>4.1.2</version>
31+
</dependency>
2732
<dependency>
2833
<groupId>commons-io</groupId>
2934
<artifactId>commons-io</artifactId>

src/test/java/com/browserstack/BrowserStackTestNGTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
import org.json.simple.JSONArray;
1616
import org.json.simple.parser.JSONParser;
1717

18+
import io.appium.java_client.AppiumDriver;
19+
import io.appium.java_client.MobileElement;
20+
import io.appium.java_client.android.AndroidDriver;
21+
1822
import org.openqa.selenium.WebDriver;
1923
import org.openqa.selenium.remote.RemoteWebDriver;
2024
import org.openqa.selenium.remote.DesiredCapabilities;
@@ -74,7 +78,7 @@ public void setUp(String config_file, String environment) throws Exception {
7478
l.start(options);
7579
}
7680

77-
driver = new RemoteWebDriver(new URL("http://"+username+":"+accessKey+"@"+config.get("server")+"/wd/hub"), capabilities);
81+
driver = new AndroidDriver(new URL("http://"+username+":"+accessKey+"@"+config.get("server")+"/wd/hub"), capabilities);
7882
}
7983

8084
@AfterMethod(alwaysRun=true)

src/test/java/com/browserstack/LocalTest.java

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,46 @@
33
import org.testng.Assert;
44
import org.testng.annotations.Test;
55

6+
import java.io.File;
7+
import java.util.List;
8+
import org.apache.commons.io.FileUtils;
9+
10+
import org.openqa.selenium.By;
11+
import org.openqa.selenium.WebElement;
12+
import org.openqa.selenium.OutputType;
13+
import org.openqa.selenium.TakesScreenshot;
14+
import org.openqa.selenium.support.ui.WebDriverWait;
15+
import org.openqa.selenium.support.ui.ExpectedConditions;
16+
617
public class LocalTest extends BrowserStackTestNGTest {
718

819
@Test
920
public void test() throws Exception {
10-
driver.get("http://bs-local.com:45691/check");
21+
WebElement searchElement = new WebDriverWait(driver, 30).until(
22+
ExpectedConditions.elementToBeClickable(By.id("com.example.android.basicnetworking:id/test_action")));
23+
searchElement.click();
24+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
25+
ExpectedConditions.elementToBeClickable(By.className("android.widget.TextView")));
1126

12-
Assert.assertTrue(driver.getPageSource().contains("Up and running"));
27+
WebElement testElement = null;
28+
List<WebElement> allTextViewElements = driver.findElements(By.className("android.widget.TextView"));
29+
Thread.sleep(10);
30+
for(WebElement textElement : allTextViewElements) {
31+
System.out.println(textElement.getText());
32+
if(textElement.getText().contains("The active connection is")) {
33+
testElement = textElement;
34+
}
35+
}
36+
37+
if(testElement == null) {
38+
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
39+
FileUtils.copyFile(scrFile, new File(System.getProperty("user.dir") + "screenshot.png"));
40+
System.out.println("Screenshot stored at " + System.getProperty("user.dir") + "screenshot.png");
41+
throw new Error("Cannot find the needed TextView element from app");
42+
}
43+
String matchedString = testElement.getText();
44+
System.out.println(matchedString);
45+
Assert.assertTrue(matchedString.contains("The active connection is wifi"));
46+
Assert.assertTrue(matchedString.contains("Up and running"));
1347
}
1448
}

src/test/java/com/browserstack/SingleTest.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,26 @@
22

33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.ui.WebDriverWait;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
57

68
import org.testng.Assert;
79
import org.testng.annotations.Test;
10+
import java.util.List;
811

912
public class SingleTest extends BrowserStackTestNGTest {
1013

1114
@Test
1215
public void test() throws Exception {
13-
driver.get("https://www.google.com/ncr");
14-
WebElement element = driver.findElement(By.name("q"));
15-
element.sendKeys("BrowserStack");
16-
element.submit();
17-
Thread.sleep(5000);
16+
WebElement searchElement = new WebDriverWait(driver, 30).until(
17+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
18+
searchElement.click();
19+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
20+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
21+
insertTextElement.sendKeys("BrowserStack");
22+
Thread.sleep(5000);
1823

19-
Assert.assertEquals("BrowserStack - Google Search", driver.getTitle());
24+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
25+
Assert.assertTrue(allProductsName.size() > 0);
2026
}
2127
}

src/test/java/com/browserstack/suite/SuiteTest01.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,28 @@
22

33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.ui.WebDriverWait;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
57

68
import org.testng.Assert;
79
import org.testng.annotations.Test;
10+
import java.util.List;
811

912
import com.browserstack.BrowserStackTestNGTest;
1013

1114
public class SuiteTest01 extends BrowserStackTestNGTest {
1215

1316
@Test
1417
public void test_01() throws Exception {
15-
driver.get("https://www.google.com/ncr");
16-
WebElement element = driver.findElement(By.name("q"));
17-
element.sendKeys("BrowserStack Test 01");
18-
element.submit();
19-
Thread.sleep(5000);
18+
WebElement searchElement = new WebDriverWait(driver, 30).until(
19+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
20+
searchElement.click();
21+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
22+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
23+
insertTextElement.sendKeys("BrowserStack 01");
24+
Thread.sleep(5000);
2025

21-
Assert.assertEquals("BrowserStack Test 01 - Google Search", driver.getTitle());
26+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
27+
Assert.assertTrue(allProductsName.size() > 0);
2228
}
2329
}

src/test/java/com/browserstack/suite/SuiteTest02.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,28 @@
22

33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.ui.WebDriverWait;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
57

68
import org.testng.Assert;
79
import org.testng.annotations.Test;
10+
import java.util.List;
811

912
import com.browserstack.BrowserStackTestNGTest;
1013

1114
public class SuiteTest02 extends BrowserStackTestNGTest {
1215

1316
@Test
1417
public void test_02() throws Exception {
15-
driver.get("https://www.google.com/ncr");
16-
Thread.sleep(5000);
17-
WebElement element = driver.findElement(By.name("q"));
18-
element.sendKeys("BrowserStack Test 02");
19-
element.submit();
20-
Thread.sleep(5000);
18+
WebElement searchElement = new WebDriverWait(driver, 30).until(
19+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
20+
searchElement.click();
21+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
22+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
23+
insertTextElement.sendKeys("BrowserStack 02");
24+
Thread.sleep(5000);
2125

22-
Assert.assertEquals("BrowserStack Test 02 - Google Search", driver.getTitle());
26+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
27+
Assert.assertTrue(allProductsName.size() > 0);
2328
}
2429
}

src/test/java/com/browserstack/suite/SuiteTest03.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,28 @@
22

33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.ui.WebDriverWait;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
57

68
import org.testng.Assert;
79
import org.testng.annotations.Test;
10+
import java.util.List;
811

912
import com.browserstack.BrowserStackTestNGTest;
1013

1114
public class SuiteTest03 extends BrowserStackTestNGTest {
1215

1316
@Test
1417
public void test_03() throws Exception {
15-
driver.get("https://www.google.com/ncr");
16-
Thread.sleep(5000);
17-
WebElement element = driver.findElement(By.name("q"));
18-
element.sendKeys("BrowserStack Test 03");
19-
Thread.sleep(5000);
20-
element.submit();
21-
Thread.sleep(5000);
18+
WebElement searchElement = new WebDriverWait(driver, 30).until(
19+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
20+
searchElement.click();
21+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
22+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
23+
insertTextElement.sendKeys("BrowserStack 03");
24+
Thread.sleep(5000);
2225

23-
Assert.assertEquals("BrowserStack Test 03 - Google Search", driver.getTitle());
26+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
27+
Assert.assertTrue(allProductsName.size() > 0);
2428
}
2529
}

src/test/java/com/browserstack/suite/SuiteTest04.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,28 @@
22

33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.ui.WebDriverWait;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
57

68
import org.testng.Assert;
79
import org.testng.annotations.Test;
10+
import java.util.List;
811

912
import com.browserstack.BrowserStackTestNGTest;
1013

1114
public class SuiteTest04 extends BrowserStackTestNGTest {
1215

1316
@Test
1417
public void test_04() throws Exception {
15-
driver.get("https://www.google.com/ncr");
16-
WebElement element = driver.findElement(By.name("q"));
17-
element.sendKeys("BrowserStack Test 04");
18-
element.submit();
19-
Thread.sleep(7000);
18+
WebElement searchElement = new WebDriverWait(driver, 30).until(
19+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
20+
searchElement.click();
21+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
22+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
23+
insertTextElement.sendKeys("BrowserStack 04");
24+
Thread.sleep(5000);
2025

21-
Assert.assertEquals("BrowserStack Test 04 - Google Search", driver.getTitle());
26+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
27+
Assert.assertTrue(allProductsName.size() > 0);
2228
}
2329
}

src/test/java/com/browserstack/suite/SuiteTest05.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,28 @@
22

33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.ui.WebDriverWait;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
57

68
import org.testng.Assert;
79
import org.testng.annotations.Test;
10+
import java.util.List;
811

912
import com.browserstack.BrowserStackTestNGTest;
1013

1114
public class SuiteTest05 extends BrowserStackTestNGTest {
1215

1316
@Test
1417
public void test_05() throws Exception {
15-
driver.get("https://www.google.com/ncr");
16-
Thread.sleep(7000);
17-
WebElement element = driver.findElement(By.name("q"));
18-
element.sendKeys("BrowserStack Test 05");
19-
element.submit();
20-
Thread.sleep(7000);
18+
WebElement searchElement = new WebDriverWait(driver, 30).until(
19+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
20+
searchElement.click();
21+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
22+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
23+
insertTextElement.sendKeys("BrowserStack 05");
24+
Thread.sleep(5000);
2125

22-
Assert.assertEquals("BrowserStack Test 05 - Google Search", driver.getTitle());
26+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
27+
Assert.assertTrue(allProductsName.size() > 0);
2328
}
2429
}

0 commit comments

Comments
 (0)