Skip to content

Instantly share code, notes, and snippets.

@AshishHypr
Last active January 19, 2024 11:58
Show Gist options
  • Save AshishHypr/820d7aade48e05d74dbdac4001958818 to your computer and use it in GitHub Desktop.
Save AshishHypr/820d7aade48e05d74dbdac4001958818 to your computer and use it in GitHub Desktop.
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ashish</groupId>
<artifactId>AcceptanceTestsFramework</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>AcceptanceTestsFramework</name>
<properties>
<maven.build.timestamp.format>yyyyMMdd.HHmm</maven.build.timestamp.format>
<ARTIFACT_NAME>${project.name}-${project.version}.${maven.build.timestamp}</ARTIFACT_NAME>
<appium.java.client>9.0.0</appium.java.client>
<cucumber.version>7.8.1</cucumber.version>
<cucumber.jvm.version>7.5.0</cucumber.jvm.version>
<java.version>17</java.version>
<junit.version>5.9.0</junit.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<selenium.version>4.16.1</selenium.version>
<saucelabs.version>2.0.4</saucelabs.version>
<restassured.version>5.1.1</restassured.version>
<!--suppress UnresolvedMavenProperty -->
<appcenter.key>${env.APPCENTER_KEY}</appcenter.key>
<!-- OKTA EXTENSIONS Versions -->
<oktaExtensions.version>7.7.0-SNAPSHOT</oktaExtensions.version>
<maven.exec.skip>false</maven.exec.skip>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-bom</artifactId>
<version>${cucumber.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
<!-- cucumber -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit-platform-engine</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-picocontainer</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
</dependency>
<!-- selenium -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
<!-- appium -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>${appium.java.client}</version>
</dependency>
<!-- saucelabs -->
<dependency>
<groupId>com.saucelabs</groupId>
<artifactId>saucerest</artifactId>
<version>${saucelabs.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.1</version>
</dependency>
<!-- QR Code decoding -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.1</version>
</dependency>
<!-- API Testing -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>${restassured.version}</version>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-path</artifactId>
<version>${restassured.version}</version>
</dependency>
<!-- Webdrivers management -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.4.1</version>
</dependency>
<!-- csv file reader-->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.7.1</version>
</dependency>
<!-- Google API-->
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.30.9</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.30.6</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-gmail</artifactId>
<version>v1-rev110-1.25.0</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-drive</artifactId>
<version>v3-rev197-1.25.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-cucumber7-adapter -->
<dependency>
<groupId>tech.grasshopper</groupId>
<artifactId>extentreports-cucumber7-adapter</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>com.epam.reportportal</groupId>
<artifactId>agent-java-cucumber6</artifactId>
<version>5.1.2</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.13.1</version>
</dependency>
</dependencies>
<build>
<!-- Plugins -->
<plugins>
<!-- Maven Assembly Plugin -->
<!-- Commenting the plugin as the jar file execution is not being done atm-->
<!-- <plugin>-->
<!-- <artifactId>maven-assembly-plugin</artifactId>-->
<!-- <version>3.1.0</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>make-assembly</id>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>single</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- <configuration>-->
<!-- <finalName>${ARTIFACT_NAME}</finalName>-->
<!-- <descriptors>-->
<!-- <descriptor>src/assembly/assembly_descriptor.xml</descriptor>-->
<!-- </descriptors>-->
<!-- <descriptorRefs>-->
<!-- <descriptorRef>jar-with-dependencies</descriptorRef>-->
<!-- </descriptorRefs>-->
<!-- <archive>-->
<!-- <manifest>-->
<!-- <addClasspath>true</addClasspath>-->
<!-- <mainClass>-->
<!-- com.ashish.acceptancetest.web.support.WebTestRunner-->
<!-- </mainClass>-->
<!-- </manifest>-->
<!-- <manifestEntries>-->
<!-- <Class-Path>.</Class-Path>-->
<!-- </manifestEntries>-->
<!-- </archive>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- Maven Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<encoding>UTF-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArgument>-Werror</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<!-- ASHISH-One-QA Unreleased IOS App download start -->
<execution>
<id>getUnreleasedIosOne</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/src/main/java/com/ashish/acceptancetest/utility/downloadIpa.sh
</executable>
<arguments>
<argument>TestMode</argument>
<!--suppress UnresolvedMavenProperty -->
<argument>${iOS_version_unreleased}</argument>
<argument>One.ipa</argument>
</arguments>
<workingDirectory>src/main/resources/apps/</workingDirectory>
</configuration>
</execution>
<!-- ASHISH-One-QA Unreleased IOS App download start -->
<!-- ASHISH-One-QA Released Current IOS App download start -->
<execution>
<id>getReleasedCurrentIosOne</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/src/main/java/com/ashish/acceptancetest/utility/downloadIpa.sh
</executable>
<arguments>
<argument>TestMode</argument>
<!--suppress UnresolvedMavenProperty -->
<argument>${iOS_version_release_current}</argument>
<argument>One.ipa</argument>
</arguments>
<workingDirectory>src/main/resources/apps/</workingDirectory>
</configuration>
</execution>
<!-- ASHISH-One-QA Released Current IOS App download ends -->
<!-- ASHISH-One-QA Released 1 IOS App download start -->
<execution>
<id>getReleased1IosOne</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/src/main/java/com/ashish/acceptancetest/utility/downloadIpa.sh
</executable>
<arguments>
<argument>TestMode</argument>
<!--suppress UnresolvedMavenProperty -->
<argument>${iOS_version_release_1}</argument>
<argument>One.ipa</argument>
</arguments>
<workingDirectory>src/main/resources/apps/release1/</workingDirectory>
</configuration>
</execution>
<!-- ASHISH-One-QA Released 1 IOS App download ends -->
<!-- ASHISH-One-QA Released 2 IOS App download start -->
<execution>
<id>getReleased2IosOne</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/src/main/java/com/ashish/acceptancetest/utility/downloadIpa.sh
</executable>
<arguments>
<argument>TestMode</argument>
<!--suppress UnresolvedMavenProperty -->
<argument>${iOS_version_release_2}</argument>
<argument>One.ipa</argument>
</arguments>
<workingDirectory>src/main/resources/apps/release2/</workingDirectory>
</configuration>
</execution>
<!-- ASHISH-One-QA Released 2 IOS App download ends -->
<!-- ASHISH-One-QA Released 3 IOS App download start -->
<execution>
<id>getReleased3IosOne</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/src/main/java/com/ashish/acceptancetest/utility/downloadIpa.sh
</executable>
<arguments>
<argument>TestMode</argument>
<!--suppress UnresolvedMavenProperty -->
<argument>${iOS_version_release_3}</argument>
<argument>One.ipa</argument>
</arguments>
<workingDirectory>src/main/resources/apps/release3/</workingDirectory>
</configuration>
</execution>
<!-- ASHISH-One-QA Released 3 IOS App download ends -->
<!-- Rerun failed tests -->
<execution>
<id>rerunFailedTests</id>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.ashish.acceptancetest.web.support.FailedScenariosRunner</mainClass>
<arguments>
<argument>-ea</argument>
</arguments>
<classpathScope>test</classpathScope>
<keepAlive>true</keepAlive>
<systemProperties>
<systemProperty>
<key>android_version_unreleased</key>
<!--suppress UnresolvedMavenProperty -->
<value>${android_version_unreleased}</value>
</systemProperty>
<systemProperty>
<key>android_version_release_current</key>
<!--suppress UnresolvedMavenProperty -->
<value>${android_version_release_current}</value>
</systemProperty>
<systemProperty>
<key>android_version_release_1</key>
<!--suppress UnresolvedMavenProperty -->
<value>${android_version_release_1}</value>
</systemProperty>
<systemProperty>
<key>android_version_release_2</key>
<!--suppress UnresolvedMavenProperty -->
<value>${android_version_release_2}</value>
</systemProperty>
<systemProperty>
<key>android_version_release_3</key>
<!--suppress UnresolvedMavenProperty -->
<value>${android_version_release_3}</value>
</systemProperty>
<!-- iOS ASHISH One Versions -->
<systemProperty>
<key>iOS_version_unreleased</key>
<!--suppress UnresolvedMavenProperty -->
<value>${iOS_version_unreleased}</value>
</systemProperty>
<systemProperty>
<key>iOS_version_release_current</key>
<!--suppress UnresolvedMavenProperty -->
<value>${iOS_version_release_current}</value>
</systemProperty>
<systemProperty>
<key>iOS_version_release_1</key>
<!--suppress UnresolvedMavenProperty -->
<value>${iOS_version_release_1}</value>
</systemProperty>
<systemProperty>
<key>iOS_version_release_2</key>
<!--suppress UnresolvedMavenProperty -->
<value>${iOS_version_release_2}</value>
</systemProperty>
<systemProperty>
<key>iOS_version_release_3</key>
<!--suppress UnresolvedMavenProperty -->
<value>${iOS_version_release_3}</value>
</systemProperty>
<!-- OKTA EXTENSIONS Versions -->
<systemProperty>
<key>oktaExtensions.version</key>
<value>${oktaExtensions.version}</value>
</systemProperty>
<systemProperty>
<key>buildDirectory</key>
<value>${project.build.directory}</value>
</systemProperty>
</systemProperties>
</configuration>
</execution>
</executions>
</plugin>
<!-- ASHISH-One-QA Android Apk download starts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>unreleased</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<!-- android_version_release_current artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>OneTestMode</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_unreleased}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps</outputDirectory>
<destFileName>One.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
</artifactItems>
<localRepositoryDirectory>${basedir}/target/localRepo</localRepositoryDirectory>
</configuration>
</execution>
<execution>
<id>released</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<!-- android_version_release_current artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>OneTestMode</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_release_current}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps</outputDirectory>
<destFileName>One.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
<!-- android_version_release_current artifactItems End-->
<!-- android_version_release_1 artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>OneTestMode</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_release_1}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps/release1</outputDirectory>
<destFileName>One.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
<!-- android_version_release_1 artifactItems End-->
<!-- android_version_release_2 artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>OneTestMode</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_release_2}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps/release2</outputDirectory>
<destFileName>One.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
<!-- android_version_release_2 artifactItems End-->
<!-- android_version_release_3 artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>OneTestMode</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_release_3}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps/release3</outputDirectory>
<destFileName>One.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
<!-- android_version_release_3 artifactItems End-->
<!-- DEV artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>DevAppQaAutomation</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_release_current}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps</outputDirectory>
<destFileName>Dev.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
<!-- Dev artifactItems End-->
<!-- FCA artifactItems Start-->
<artifactItem>
<groupId>com.ashish.androidTest</groupId>
<artifactId>FidoClientTest</artifactId>
<!--suppress UnresolvedMavenProperty -->
<version>${android_version_release_current}</version>
<type>apk</type>
<outputDirectory>${basedir}/src/main/resources/apps</outputDirectory>
<destFileName>FCA.apk</destFileName>
<overWrite>true</overWrite>
</artifactItem>
<!-- FCA artifactItems End-->
</artifactItems>
<localRepositoryDirectory>${basedir}/target/localRepo</localRepositoryDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- ASHISH-One-QA Android Apk download ends -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
<configuration>
<systemPropertyVariables>
<!-- IMPORTANT NOTE: Make sure to add the systemPropertyVariable in 'rerunFailedTests' section -->
<!-- Android ASHISH One Versions -->
<!--suppress UnresolvedMavenProperty -->
<android_version_release_current>${android_version_release_current}
</android_version_release_current>
<!--suppress UnresolvedMavenProperty -->
<android_version_release_1>${android_version_release_1}</android_version_release_1>
<!--suppress UnresolvedMavenProperty -->
<android_version_release_2>${android_version_release_2}</android_version_release_2>
<!--suppress UnresolvedMavenProperty -->
<android_version_release_3>${android_version_release_3}</android_version_release_3>
<!-- iOS ASHISH One Versions -->
<!--suppress UnresolvedMavenProperty -->
<iOS_version_release_current>${iOS_version_release_current}
</iOS_version_release_current>
<!--suppress UnresolvedMavenProperty -->
<iOS_version_release_1>${iOS_version_release_1}</iOS_version_release_1>
<!--suppress UnresolvedMavenProperty -->
<iOS_version_release_2>${iOS_version_release_2}</iOS_version_release_2>
<!--suppress UnresolvedMavenProperty -->
<iOS_version_release_3>${iOS_version_release_3}</iOS_version_release_3>
<!-- OKTA EXTENSIONS Versions -->
<oktaExtensions.version>${oktaExtensions.version}</oktaExtensions.version>
<buildDirectory>${project.build.directory}</buildDirectory>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment