Skip to content

Commit 661ad7c

Browse files
committed
Parallel execution changes
1 parent 27cb719 commit 661ad7c

File tree

9 files changed

+289
-188
lines changed

9 files changed

+289
-188
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ environments {
355355

356356
You use the `environment` system property to determine which environment to run against. For example to run the tests in the staging environment, you could run:
357357
```json
358-
$ mvn clean verify -Denvironment=staging
358+
$ mvn clean test -P TestJunit
359359
```
360360

361361
See [**this article**](https://johnfergusonsmart.com/environment-specific-configuration-in-serenity-bdd/) for more details about this feature.

pom.xml

Lines changed: 167 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -1,184 +1,173 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4-
<modelVersion>4.0.0</modelVersion>
5-
<groupId>net.serenitybdd.starter</groupId>
6-
<artifactId>selenium-cucumber4-demo</artifactId>
7-
<version>1.0.0-SNAPSHOT</version>
8-
<packaging>jar</packaging>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<groupId>net.serenitybdd.starter</groupId>
7+
<artifactId>selenium-cucumber4-demo</artifactId>
8+
<version>1.0.0-SNAPSHOT</version>
9+
<packaging>jar</packaging>
910

10-
<name>Selenium-cucumber4-demo with serenity</name>
11+
<name>Selenium-cucumber4-demo with serenity</name>
1112

12-
<properties>
13-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14-
<serenity.version>2.0.69</serenity.version>
15-
<serenity.maven.version>2.0.69</serenity.maven.version>
16-
<serenity.cucumber.version>1.0.21</serenity.cucumber.version>
17-
<cucumber.version>4.2.0</cucumber.version>
18-
<encoding>UTF-8</encoding>
19-
<tags></tags>
20-
<parallel.tests>4</parallel.tests>
21-
<webdriver.base.url></webdriver.base.url>
22-
</properties>
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
<serenity.version>2.0.69</serenity.version>
16+
<serenity.maven.version>2.0.69</serenity.maven.version>
17+
<serenity.cucumber.version>1.0.21</serenity.cucumber.version>
18+
<cucumber.version>4.2.0</cucumber.version>
19+
<encoding>UTF-8</encoding>
20+
<tags></tags>
21+
<parallel.tests>4</parallel.tests>
22+
<webdriver.base.url></webdriver.base.url>
23+
<surefire.version>2.22.0</surefire.version>
24+
25+
</properties>
2326

24-
<repositories>
25-
<repository>
26-
<snapshots>
27-
<enabled>false</enabled>
28-
</snapshots>
29-
<id>central</id>
30-
<name>bintray</name>
31-
<url>http://jcenter.bintray.com</url>
32-
</repository>
33-
</repositories>
34-
<pluginRepositories>
35-
<pluginRepository>
36-
<snapshots>
37-
<enabled>false</enabled>
38-
</snapshots>
39-
<id>central</id>
40-
<name>bintray-plugins</name>
41-
<url>http://jcenter.bintray.com</url>
42-
</pluginRepository>
43-
</pluginRepositories>
27+
<repositories>
28+
<repository>
29+
<snapshots>
30+
<enabled>false</enabled>
31+
</snapshots>
32+
<id>central</id>
33+
<name>bintray</name>
34+
<url>http://jcenter.bintray.com</url>
35+
</repository>
36+
</repositories>
37+
<pluginRepositories>
38+
<pluginRepository>
39+
<snapshots>
40+
<enabled>false</enabled>
41+
</snapshots>
42+
<id>central</id>
43+
<name>bintray-plugins</name>
44+
<url>http://jcenter.bintray.com</url>
45+
</pluginRepository>
46+
</pluginRepositories>
47+
48+
<dependencies>
49+
<dependency>
50+
<groupId>ch.qos.logback</groupId>
51+
<artifactId>logback-classic</artifactId>
52+
<version>1.0.13</version>
53+
</dependency>
54+
<!-- - To use Cucumber 4, exclude the old Cucumber 2 cucumber-core dependency
55+
from the serenity-core dependency - and include the Cucumber 4 cucumber-java
56+
and cucumber-junit dependencies. -->
57+
<dependency>
58+
<groupId>net.serenity-bdd</groupId>
59+
<artifactId>serenity-core</artifactId>
60+
<version>${serenity.version}</version>
61+
<scope>test</scope>
62+
<exclusions>
63+
<exclusion>
64+
<groupId>io.cucumber</groupId>
65+
<artifactId>cucumber-core</artifactId>
66+
</exclusion>
67+
</exclusions>
68+
</dependency>
69+
<dependency>
70+
<groupId>io.cucumber</groupId>
71+
<artifactId>cucumber-java</artifactId>
72+
<version>${cucumber.version}</version>
73+
</dependency>
74+
<dependency>
75+
<groupId>io.cucumber</groupId>
76+
<artifactId>cucumber-junit</artifactId>
77+
<version>${cucumber.version}</version>
78+
</dependency>
79+
<dependency>
80+
<groupId>net.serenity-bdd</groupId>
81+
<artifactId>serenity-junit</artifactId>
82+
<version>${serenity.version}</version>
83+
<scope>test</scope>
84+
</dependency>
85+
<dependency>
86+
<groupId>net.serenity-bdd</groupId>
87+
<artifactId>serenity-screenplay</artifactId>
88+
<version>${serenity.version}</version>
89+
<scope>test</scope>
90+
</dependency>
91+
<dependency>
92+
<groupId>net.serenity-bdd</groupId>
93+
<artifactId>serenity-screenplay-webdriver</artifactId>
94+
<version>${serenity.version}</version>
95+
<scope>test</scope>
96+
</dependency>
97+
<dependency>
98+
<groupId>net.serenity-bdd</groupId>
99+
<artifactId>serenity-cucumber4</artifactId>
100+
<version>${serenity.cucumber.version}</version>
101+
<scope>test</scope>
102+
</dependency>
103+
<dependency>
104+
<groupId>junit</groupId>
105+
<artifactId>junit</artifactId>
106+
<version>4.12</version>
107+
<scope>test</scope>
108+
</dependency>
109+
<dependency>
110+
<groupId>org.assertj</groupId>
111+
<artifactId>assertj-core</artifactId>
112+
<version>3.6.2</version>
113+
<scope>test</scope>
114+
</dependency>
115+
<dependency>
116+
<groupId>org.hamcrest</groupId>
117+
<artifactId>hamcrest-all</artifactId>
118+
<version>1.3</version>
119+
<scope>test</scope>
120+
</dependency>
121+
</dependencies>
122+
123+
<profiles>
124+
<profile>
125+
<id>TestJunit</id>
126+
<build>
127+
<pluginManagement>
128+
<plugins>
129+
<plugin>
130+
<groupId>org.apache.maven.plugins</groupId>
131+
<artifactId>maven-surefire-plugin</artifactId>
132+
<version>${surefire.version}</version>
133+
134+
<configuration>
135+
<parallel>methods</parallel>
136+
<threadCount>20</threadCount>
137+
<!-- <useUnlimitedThreads>true</useUnlimitedThreads> -->
138+
<includes>
139+
<include>**/*TestSuite.java</include>
140+
</includes>
141+
</configuration>
142+
143+
144+
<dependencies>
145+
<!-- https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html
146+
- You can also manually force a specific provider by adding it as a dependency
147+
to Surefire itself: -->
148+
<dependency>
149+
<groupId>org.apache.maven.surefire</groupId>
150+
<artifactId>surefire-junit47</artifactId>
151+
<version>${surefire.version}</version>
152+
</dependency>
153+
</dependencies>
154+
155+
</plugin>
156+
157+
<plugin>
158+
<groupId>org.apache.maven.plugins</groupId>
159+
<artifactId>maven-compiler-plugin</artifactId>
160+
<version>3.8.0</version>
161+
<configuration>
162+
<source>1.8</source>
163+
<target>1.8</target>
164+
</configuration>
165+
</plugin>
166+
167+
</plugins>
168+
</pluginManagement>
169+
</build>
170+
</profile>
171+
</profiles>
44172

45-
<dependencies>
46-
<dependency>
47-
<groupId>ch.qos.logback</groupId>
48-
<artifactId>logback-classic</artifactId>
49-
<version>1.0.13</version>
50-
</dependency>
51-
<!--
52-
- To use Cucumber 4, exclude the old Cucumber 2 cucumber-core dependency from the serenity-core dependency
53-
- and include the Cucumber 4 cucumber-java and cucumber-junit dependencies.
54-
-->
55-
<dependency>
56-
<groupId>net.serenity-bdd</groupId>
57-
<artifactId>serenity-core</artifactId>
58-
<version>${serenity.version}</version>
59-
<scope>test</scope>
60-
<exclusions>
61-
<exclusion>
62-
<groupId>io.cucumber</groupId>
63-
<artifactId>cucumber-core</artifactId>
64-
</exclusion>
65-
</exclusions>
66-
</dependency>
67-
<dependency>
68-
<groupId>io.cucumber</groupId>
69-
<artifactId>cucumber-java</artifactId>
70-
<version>${cucumber.version}</version>
71-
</dependency>
72-
<dependency>
73-
<groupId>io.cucumber</groupId>
74-
<artifactId>cucumber-junit</artifactId>
75-
<version>${cucumber.version}</version>
76-
</dependency>
77-
<dependency>
78-
<groupId>net.serenity-bdd</groupId>
79-
<artifactId>serenity-junit</artifactId>
80-
<version>${serenity.version}</version>
81-
<scope>test</scope>
82-
</dependency>
83-
<dependency>
84-
<groupId>net.serenity-bdd</groupId>
85-
<artifactId>serenity-screenplay</artifactId>
86-
<version>${serenity.version}</version>
87-
<scope>test</scope>
88-
</dependency>
89-
<dependency>
90-
<groupId>net.serenity-bdd</groupId>
91-
<artifactId>serenity-screenplay-webdriver</artifactId>
92-
<version>${serenity.version}</version>
93-
<scope>test</scope>
94-
</dependency>
95-
<dependency>
96-
<groupId>net.serenity-bdd</groupId>
97-
<artifactId>serenity-cucumber4</artifactId>
98-
<version>${serenity.cucumber.version}</version>
99-
<scope>test</scope>
100-
</dependency>
101-
<dependency>
102-
<groupId>junit</groupId>
103-
<artifactId>junit</artifactId>
104-
<version>4.12</version>
105-
<scope>test</scope>
106-
</dependency>
107-
<dependency>
108-
<groupId>org.assertj</groupId>
109-
<artifactId>assertj-core</artifactId>
110-
<version>3.6.2</version>
111-
<scope>test</scope>
112-
</dependency>
113-
<dependency>
114-
<groupId>org.hamcrest</groupId>
115-
<artifactId>hamcrest-all</artifactId>
116-
<version>1.3</version>
117-
<scope>test</scope>
118-
</dependency>
119-
</dependencies>
120-
<build>
121-
<plugins>
122-
<plugin>
123-
<groupId>org.apache.maven.plugins</groupId>
124-
<artifactId>maven-surefire-plugin</artifactId>
125-
<version>2.22.1</version>
126-
<configuration>
127-
<skip>true</skip>
128-
</configuration>
129-
</plugin>
130-
<plugin>
131-
<artifactId>maven-failsafe-plugin</artifactId>
132-
<version>2.22.1</version>
133-
<configuration>
134-
<includes>
135-
<include>**/*Test.java</include>
136-
<include>**/Test*.java</include>
137-
<include>**/*TestSuite.java</include>
138-
<include>**/When*.java</include>
139-
</includes>
140-
<systemPropertyVariables>
141-
<webdriver.base.url>${webdriver.base.url}</webdriver.base.url>
142-
</systemPropertyVariables>
143-
<parallel>classes</parallel>
144-
<threadCount>${parallel.tests}</threadCount>
145-
<forkCount>${parallel.tests}</forkCount>
146-
</configuration>
147-
<executions>
148-
<execution>
149-
<goals>
150-
<goal>integration-test</goal>
151-
<goal>verify</goal>
152-
</goals>
153-
</execution>
154-
</executions>
155-
</plugin>
156-
<plugin>
157-
<groupId>org.apache.maven.plugins</groupId>
158-
<artifactId>maven-compiler-plugin</artifactId>
159-
<version>3.8.0</version>
160-
<configuration>
161-
<source>1.8</source>
162-
<target>1.8</target>
163-
</configuration>
164-
</plugin>
165-
<plugin>
166-
<groupId>net.serenity-bdd.maven.plugins</groupId>
167-
<artifactId>serenity-maven-plugin</artifactId>
168-
<version>${serenity.maven.version}</version>
169-
<configuration>
170-
<tags>${tags}</tags>
171-
</configuration>
172-
<executions>
173-
<execution>
174-
<id>serenity-reports</id>
175-
<phase>post-integration-test</phase>
176-
<goals>
177-
<goal>aggregate</goal>
178-
</goals>
179-
</execution>
180-
</executions>
181-
</plugin>
182-
</plugins>
183-
</build>
184173
</project>

src/test/java/com/ui/pages/HomePage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ public String getHomePageHeader()
5757
return homePageHeader.getText();
5858
}
5959

60-
public List getPoductList()
60+
public List<String> getPoductList()
6161
{
6262

63-
List<String> productList = new ArrayList<>();
63+
List<String> productList = new ArrayList<String>();
6464

6565
int productSize = productListWebElement.size();
6666
for (int i = 0; i < productSize ; i++)

src/test/java/com/ui/steps/HomePageSteps.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import java.util.List;
77

88
import com.ui.actions.HomePageActions;
9-
import com.ui.utils.CommonUtils;
10-
119
import cucumber.api.java.en.Given;
1210
import cucumber.api.java.en.Then;
1311
import net.thucydides.core.annotations.Steps;
@@ -41,7 +39,7 @@ public void i_should_see_jungle_socks_home_page_header_as(String header)
4139
}
4240

4341
@Then("I should see different products on jungle socks home page")
44-
public void i_should_see_different_products_on_jungle_socks_home_page(List productList)
42+
public void i_should_see_different_products_on_jungle_socks_home_page(List<String> productList)
4543
{
4644
homePageActions.verifyJungleSocksHomeProductDetails(productList);
4745
}

0 commit comments

Comments
 (0)