1

我有一些用于回归测试的脚本。我创建了管道并把隔离测试放在了一个自由式的工作中。

在使用 MicroFocus 插件的作业中,我们可以设置配置,使用向导,因此我们可以选择优于保存在脚本中的 UFT 脚本配置的设备、应用程序和应用程序版本等。
在管道中,我们没有该选项,因此会自动读取脚本中的配置并执行测试。

关键是让开发团队能够运行脚本,而无需我重新配置脚本,保存并推送到 GIT,而他们想要测试的新版本。

基本上这是我的代码:

pipeline{
    agent{
       label 'NODE' // Put node
    }
    options {
        timeout(time: 30, unit: 'MINUTES')
    }
    stages{
        stage('Checkout') { 
            steps {
                checkout scm: [$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'LocalBranch', localBranch: '**']], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/xxx']]]
            }
        }
        stage('Delete Report TC1'){ 
            steps{
              bat 'del /S /Q "P:\\TA\\Mobile\\ANDROID\\PAGAMENTOS\\001. Recargas Telefonicas\\Report"' 
            }
        }
        stage('MOB-AND-PAGAMENTO-001'){ // Name of the test
            steps {
                uftScenarioLoad archiveTestResultsMode: 'ONLY_ARCHIVE_FAILED_TESTS_REPORT', fsUftRunMode: 'Normal', testPaths:  "${env.WORKSPACE}" + '''\\Mobile\\ANDROID\\PAGAMENTOS\\001. Recargas Telefonicas'''   
            }
        }
     }
}

我正在尝试的解决方法是调用构建,而不是 uftcenario。像这样的东西:

pipeline{
    agent{
       label 'NODE' 
    } 
    options {
        timeout(time: 30, unit: 'MINUTES') 
    }
    stages{
        stage('Checkout') {
            steps {
                checkout scm: [$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'LocalBranch', localBranch: '**']], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/xxx']]]
            }
        }
        stage('MOB-DCS-AND-CHEQUES-001'){ // The stage name
            steps {
                build 'MOB-DCS-AND-CHEQUES-001'   
            }
        }
        stage('MOB-DCS-AND-CHEQUES-002'){ // The stage name
            steps {
                build 'MOB-DCS-AND-CHEQUES-002'  
            }
        }
        stage('MOB-DCS-AND-CHEQUES-003'){ // The stage name
            steps {
                build 'MOB-DCS-AND-CHEQUES-003'  
            }
        }

    }
}

不知道这是否是最好的方法。

谢谢您最好的问候

4

1 回答 1

1

好的,所以你不能或者我没有找到一种方法来设置脚本上的配置以优于脚本本身的配置。

所以我重新编写代码来调用构建/作业,而不是从 git 调用脚本。这使得测试运行在构建/作业配置中。

构建设置为从 git 获取脚本,但允许开发团队配置和选择设备、应用程序、版本应用程序等......

首先,管道在第一次构建开始时停止。并说詹金斯正在等待执行人可用。

所以基本上,我发现的是,如果你创建一个管道并且脚本调用构建/作业,你将需要增加节点中执行器的数量。

为此,请转到 Manage Jenkins --> Manage Nodes --> 选择 Configure using dropbox on node --> 在这里说“# of executors”并增加数量。

在我的管道中,我需要 2 个,一个用于管道本身,另一个用于构建。如果您要并行运行,则需要根据需要增加。

最后我简化了我的代码。

pipeline{
    agent{
        label 'xxx' //Insert node here
    }
    options {
        timeout(time: 30, unit: 'MINUTES') // set timeout if you need
    }
    stages{
        stage('xxx'){ // Give stage name
            steps {
                build 'xxxx'   // Name of the build/job here
            }
        }
    }
}

希望有一天它对某人有所帮助。:)

于 2019-10-03T08:59:16.650 回答