0

As part of one job, I run 3 identical builds with different parameters. Then I collect artifacts from them and combine them into a single report.

pipeline {
agent any
stages {
    stage('test') {
        steps {
            cleanWs()
            script {
                build job: 'Regress',
                        propagate: false,
                        parameters: [string(name: 'backend_url', value: 'http://website1')]
                }
            }
            post {
                always {
                    copyArtifacts filter: 'target/allure-results/*', fingerprintArtifacts: true, projectName: 'Regress', selector: lastSuccessful(), target: 'allure-results1'
                }
            }

    }
    stage('controller') {
        steps {
            script {
                build job: 'Regress',
                        propagate: false,
                        parameters: [string(name: 'backend_url', value: 'http://website2')
                }
            }
            post {
                always {
                    copyArtifacts filter: 'target/allure-results/*', fingerprintArtifacts: true, projectName: 'Regress', selector: lastSuccessful(), target: 'allure-results2'
                }
            }
    }
    stage('editor') {
        steps {
            script {
                build job: 'Regress',
                        propagate: false,
                        parameters: [string(name: 'backend_url', value: 'http://website3')]
            }
        }
            post {
                always {
                    copyArtifacts filter: 'target/allure-results/*', fingerprintArtifacts: true, projectName: 'Regress', selector: lastSuccessful(), target: 'allure-results3'
                }
            }
        }
    }
post('create allure report') {
      always {
          script {
              allure([
                      includeProperties: false,
                      jdk              : '',
                      properties       : [],
                      reportBuildPolicy: 'ALWAYS',
                      results          : [
                      [path: 'allure-results1/target/allure-results'],
                      [path: 'allure-results2/target/allure-results'],
                      [path: 'allure-results3/target/allure-results']]
              ])
          }
      }
  }
}

The problem is that after generating the report, I see only 1 test and 2 retries:

screen1

screen2

How to make the report consist of 3 parts (suites)?

1 Answers1

0

Just put all the 3 results in one folder and give it to allure "path".

Something like this

pipeline {
agent any
stages {
    stage('test') {
        steps {
            cleanWs()
            script {
                build job: 'Regress',
                        propagate: false,
                        parameters: [string(name: 'backend_url', value: 'http://website1')]
                }
            }
            post {
                always {
                    copyArtifacts filter: 'target/allure-results/*', fingerprintArtifacts: true, projectName: 'Regress', selector: lastSuccessful(), target: 'allure-results'
                }
            }

    }
    stage('controller') {
        steps {
            script {
                build job: 'Regress',
                        propagate: false,
                        parameters: [string(name: 'backend_url', value: 'http://website2')
                }
            }
            post {
                always {
                    copyArtifacts filter: 'target/allure-results/*', fingerprintArtifacts: true, projectName: 'Regress', selector: lastSuccessful(), target: 'allure-results'
                }
            }
    }
    stage('editor') {
        steps {
            script {
                build job: 'Regress',
                        propagate: false,
                        parameters: [string(name: 'backend_url', value: 'http://website3')]
            }
        }
            post {
                always {
                    copyArtifacts filter: 'target/allure-results/*', fingerprintArtifacts: true, projectName: 'Regress', selector: lastSuccessful(), target: 'allure-results'
                }
            }
        }
    }
post('create allure report') {
      always {
          script {
              allure([
                      includeProperties: false,
                      jdk              : '',
                      properties       : [],
                      reportBuildPolicy: 'ALWAYS',
                      results          : [
                      [path: 'allure-results']
              ])
          }
      }
  }
}

Source : Combining 2 reports into one 1 in (testng) allure

Mickael Rahmine
  • 372
  • 1
  • 7