Skip to content

E2E Tests

E2E Tests #1947

Workflow file for this run

name: E2E Tests
on:
pull_request:
branches: [ main ]
schedule:
- cron: '00 1 * * *'
workflow_dispatch:
env:
GLOBAL_TESTING_SCOPE: "!%regex[.*DatabaseActions.*], !%regex[.*CLI.*], !%regex[.*DB.*], !%regex[.*Db.*], !%regex[.*db.*], !%regex[.*API.*], !%regex[.*Api.*], !%regex[.*uestBuilder.*], !%regex[.*Rest.*], !%regex[.*Json.*], !%regex[.*JSON.*], !%regex[.*json.*], !%regex[.*ndroid.*], !%regex[.*IOS.*], !%regex[.*obile.*], !%regex[.*CucumberTests.*], !%regex[.*LT.*]"
jobs:
Ubuntu_Database:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Connect to PostgreSQL
run: |
cd src/main/resources/docker-compose/postgres/
npm install pg
node client.js
env:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Run tests
continue-on-error: true
run: mvn -e test "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*DatabaseActions.*], %regex[.*DB.*], %regex[.*Db.*], %regex[.*db.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Ubuntu_Database_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Ubuntu_APIs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*API.*], %regex[.*Api.*], %regex[.*uestBuilder.*], %regex[.*Rest.*], %regex[.*Json.*], %regex[.*JSON.*], %regex[.*json.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Ubuntu_APIs_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Ubuntu_Firefox_Grid:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up Native Selenium Grid
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=0 --scale edge=0 --scale firefox=10 -d
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Check running containers
run: docker ps
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=firefox" "-DheadlessExecution=true" "-DgenerateAllureReportArchive=true" "-Dtest=${GLOBAL_TESTING_SCOPE}"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Ubuntu_Firefox_Grid_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Ubuntu_Chrome_Grid:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up Native Selenium Grid
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=10 --scale edge=0 --scale firefox=0 -d
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Check running containers
run: docker ps
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=chrome" "-DheadlessExecution=true" "-DgenerateAllureReportArchive=true" "-Dtest=${GLOBAL_TESTING_SCOPE}"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Ubuntu_Chrome_Grid_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Ubuntu_Edge_Grid:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up Native Selenium Grid
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=0 --scale edge=10 --scale firefox=0 -d
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Check running containers
run: docker ps
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=MicrosoftEdge" "-DheadlessExecution=true" "-DgenerateAllureReportArchive=true" "-Dtest=${GLOBAL_TESTING_SCOPE}"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Ubuntu_Edge_Grid_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Android_Native_BrowserStack:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=60" "-DretryMaximumNumberOfAttempts=2" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=android" "-Dmobile_automationName=UIAutomator2" "-DbrowserStack.platformVersion=13.0" "-DbrowserStack.deviceName=Google Pixel 7" "-DbrowserStack.appName=ApiDemos-debug.apk" "-DbrowserStack.appRelativeFilePath=src/test/resources/testDataFiles/apps/ApiDemos-debug.apk" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*ndroidBasic.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Android_Native_BrowserStack_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
iOS_Web_SAFARI_BrowserStack:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=iOS" "-Dmobile_automationName=XCuiTest" "-DbrowserStack.osVersion=16" "-DbrowserStack.deviceName=iPhone 14" "-Dmobile_browserName=safari" "-DbrowserStack.appName=" "-DbrowserStack.appRelativeFilePath=" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*MobileWebTest.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: iOS_Web_SAFARI_BrowserStack_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Android_Web_Chrome_BrowserStack:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=android" "-Dmobile_automationName=UIAutomator2" "-DbrowserStack.osVersion=13.0" "-DbrowserStack.deviceName=Samsung Galaxy S23" "-Dmobile_browserName=chrome" "-DbrowserStack.appName=" "-DbrowserStack.appRelativeFilePath=" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*MobileWebTest.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Android_Web_Chrome_BrowserStack_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Android_Web_Samsung_BrowserStack:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=android" "-Dmobile_automationName=UIAutomator2" "-DbrowserStack.osVersion=13.0" "-DbrowserStack.deviceName=Samsung Galaxy S23" "-Dmobile_browserName=samsung" "-DbrowserStack.appName=" "-DbrowserStack.appRelativeFilePath=" "-DbrowserStack.appUrl=" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*MobileWebTest.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Android_Web_Samsung_BrowserStack_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
MacOSX_Safari_BrowserStack:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=MAC" "-DtargetBrowserName=Safari" "-DbrowserStack.os=OS X" "-DbrowserStack.osVersion=Sonoma" "-DbrowserStack.browserVersion=17.0" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*BrowserActionsTests.*], %regex[.*BigPageActionsTest.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: MacOSX_Safari_BrowserStack_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
Ubuntu_Chrome_Cucumber_Grid:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '16'
- name: Set up Native Selenium Grid
if: runner.os == 'Linux'
run: docker compose -f src/main/resources/docker-compose/selenium4.yml up --scale chrome=10 --scale edge=0 --scale firefox=0 -d
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Check running containers
if: runner.os == 'Linux'
run: docker ps
- name: Run tests on Linux/MacOS
if: runner.os != 'Windows'
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DsetParallelMode=DYNAMIC" "-DsetParallel=METHODS" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX" "-DtargetBrowserName=chrome" "-DmaximumPerformanceMode=2" "-DgenerateAllureReportArchive=true" "-Dtest=%regex[.*CucumberTests.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: Ubuntu_Chrome_Cucumber_Grid_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()
MacOSX_Safari_Cucumber_BrowserStack:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '16'
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
cache: 'maven'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.5
- name: Run tests
continue-on-error: true
run: mvn -e test "-DdefaultElementIdentificationTimeout=5" "-DretryMaximumNumberOfAttempts=1" "-DexecutionAddress=browserstack" "-DtargetOperatingSystem=MAC" "-DtargetBrowserName=Safari" "-DmaximumPerformanceMode=1" "-DbrowserStack.os=OS X" "-DbrowserStack.osVersion=Sonoma" "-DbrowserStack.browserVersion=17.0" -DgenerateAllureReportArchive="true" -Dtest="%regex[.*CucumberTests.*]"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
files: ./target/jacoco/jacoco.xml
verbose: true
- name: Upload Allure Report as Pipeline Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: MacOSX_Safari_Cucumber_BrowserStack_Allure
path: "allure-report/*.html"
- name: Test Summary
uses: test-summary/action@v2
with:
paths: "target/surefire-reports/junitreports/TEST-*.xml"
if: always()