Parallel tests

This commit is contained in:
Guillem Hernandez Sola
2017-11-24 18:22:28 +01:00
parent c516316000
commit b006327ddc
4 changed files with 59 additions and 44 deletions

View File

@@ -11,56 +11,38 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.testng:testng:6.11" level="project" /> <orderEntry type="library" name="Maven: org.testng:testng:6.9.9" level="project" />
<orderEntry type="library" name="Maven: com.beust:jcommander:1.64" level="project" /> <orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.17" level="project" /> <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-java:3.5.3" level="project" /> <orderEntry type="library" name="Maven: com.beust:jcommander:1.48" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-api:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.ant:ant:1.7.0" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-edge-driver:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.ant:ant-launcher:1.7.0" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.15" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-opera-driver:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.beanshell:bsh:2.0b4" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-java:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-api:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:3.5.3" level="project" /> <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-edge-driver:3.7.1" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib-nodep:3.2.4" level="project" /> <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-opera-driver:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:3.7.1" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.5" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" /> <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" /> <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: org.w3c.css:sac:1.3" level="project" /> <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.2" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.cssparser:cssparser:0.9.23" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:23.0" level="project" /> <orderEntry type="library" name="Maven: com.google.guava:guava:23.0" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" /> <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" /> <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" /> <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" /> <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit:2.27" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit-core-js:2.27" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:neko-htmlunit:2.27" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.6" level="project" /> <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.3" level="project" /> <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.4.5.v20170502" level="project" /> <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:3.5.3" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.4.5.v20170502" level="project" /> <orderEntry type="library" name="Maven: cglib:cglib-nodep:3.2.4" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.4.5.v20170502" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.4.5.v20170502" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" /> <orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" /> <orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: com.codeborne:phantomjsdriver:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:htmlunit-driver:2.27" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-api:9.4.5.v20170502" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.4.5.v20170502" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-common:9.4.5.v20170502" level="project" />
<orderEntry type="library" name="Maven: xalan:serializer:2.7.2" level="project" />
<orderEntry type="library" name="Maven: xalan:xalan:2.7.2" level="project" />
<orderEntry type="library" name="Maven: xerces:xercesImpl:2.11.0" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:3.5.3" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:3.5.3" level="project" />
</component> </component>
</module> </module>

16
pom.xml
View File

@@ -8,6 +8,16 @@
<version>17.09.12</version> <version>17.09.12</version>
<build> <build>
<plugins> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/main/resources/suite.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
@@ -28,17 +38,17 @@
<dependency> <dependency>
<groupId>org.testng</groupId> <groupId>org.testng</groupId>
<artifactId>testng</artifactId> <artifactId>testng</artifactId>
<version>6.11</version> <version>6.9.9</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.seleniumhq.selenium</groupId> <groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId> <artifactId>selenium-java</artifactId>
<version>3.5.3</version> <version>3.7.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.seleniumhq.selenium</groupId> <groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId> <artifactId>selenium-firefox-driver</artifactId>
<version>3.5.3</version> <version>3.7.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.seleniumhq.selenium</groupId> <groupId>org.seleniumhq.selenium</groupId>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="StartUsingWebDriver test examples"
allow-return-values="true" verbose="1"
parallel="tests" thread-count="4">
<test name="all" parallel="classes" thread-count="4">
<classes>
<class name="com.itnove.trainings.testng.startUsingWebDriver.AlertsTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.BasicAuth"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.DynamicContentTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.AppTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.ChallengingDomTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.CheckBoxesTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.DisappearingElementsTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.DragAndDropTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.DropdownTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.DynamicContentTest"/>
<class name="com.itnove.trainings.testng.startUsingWebDriver.FramesTest"/>
</classes>
</test>
</suite>

View File

@@ -12,6 +12,7 @@ import org.testng.annotations.BeforeMethod;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -28,18 +29,20 @@ public class BaseTest {
@BeforeMethod @BeforeMethod
public void setUp() throws IOException { public void setUp() throws IOException {
String browser = System.getProperty("browser"); String browser = System.getProperty("browser");
DesiredCapabilities capabilities;
if (browser != null && browser.equalsIgnoreCase("chrome")) { if (browser != null && browser.equalsIgnoreCase("chrome")) {
DesiredCapabilities capabilities = DesiredCapabilities.chrome(); capabilities = DesiredCapabilities.chrome();
System.setProperty("webdriver.chrome.driver", "src" + File.separator + "main" + File.separator + "resources" + File.separator + "chromedriver-linux"); System.setProperty("webdriver.chrome.driver", "src" + File.separator + "main" + File.separator + "resources" + File.separator + "chromedriver-linux");
driver = new ChromeDriver(capabilities); driver = new ChromeDriver(capabilities);
} else { } else {
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities = DesiredCapabilities.firefox();
System.setProperty("webdriver.gecko.driver", System.setProperty("webdriver.gecko.driver",
"src" + File.separator + "main" "src" + File.separator + "main"
+ File.separator + "resources" + File.separator + "resources"
+ File.separator + "geckodriver-linux"); + File.separator + "geckodriver-linux");
driver = new FirefoxDriver(capabilities); driver = new FirefoxDriver(capabilities);
} }
//driver = new RemoteWebDriver(new URL("http://0.0.0.0:4444/wd/hub"), capabilities);
wait = new LocalRemoteWebDriverWait(driver, timeOut); wait = new LocalRemoteWebDriverWait(driver, timeOut);
hover = new Actions(driver); hover = new Actions(driver);
driver.manage().deleteAllCookies(); driver.manage().deleteAllCookies();