2023-06-24

Jenkins pipeline for parallel cross browser testing

I need to find solution/s for next case. There is selenoid in docker which runs browsers in containers, the tests should be run in parallel for some browsers. I made pipeline in Jenkins for that goal. And all tests run in parallel for browsers but they work with the same workspace and I got errors from time to time. How can I make Jenkins settings or pipeline configuration to have each browser branch with its own workspace or thomething else to avoid conflicts.

pipeline {
    agent any
    tools {
        maven 'MAVEN_HOME'
    }
    stages {
        stage('setup parameters') {
            steps {
                script {
                    properties([
                        parameters([
                        choice(
                            choices: ['chrome', 'firefox', 'all'],
                            name: 'browser'
                        )
                    ])
                    ])
                }
            }
        }
        stage('clone code') {
            steps {
                echo 'git'
                git branch: 'feature/selenoid-integration', credentialsId: '......', url: 'https://github.com/.../selenide-web-test-project'
            }
        }
        stage('test') {
            steps {
                script {
                    if (browser.equals("chrome")) {
                        echo 'chrome'
                        bat 'mvn clean -Dbrowser.type=chrome test'
                    }
                    if (browser.equals("firefox")) {
                        echo 'firefox'
                        bat 'mvn clean -Dbrowser.type=firefox test'
                    }
                    if (browser.equals("all")) {
                        echo 'all'
                        parallel(
                        chrome: {
                            bat 'mvn clean -Dbrowser.type=chrome test'
                        },
                        firefox: {
                            bat 'mvn clean -Dbrowser.type=firefox test'
                        }
                        )
                    }
                }
            }
        }
    }
}


No comments:

Post a Comment