【问题标题】:UFT - UFT Test Result diferent from Jenkins Stage ViewUFT - UFT 测试结果与 Jenkins Stage View 不同
【发布时间】:2020-07-23 13:21:58
【问题描述】:

还有一次我来这里寻求帮助。我会尽力解释最好的方式。

如果某个测试失败,我们运行一个管道时,阶段视图不会显示特定阶段失败。只会让 Build 变得不稳定。

所以我在这里查看了一些关于它的帖子,比如这个 [https://stackoverflow.com/questions/36852310/show-a-jenkins-pipeline-stage-as-failed-without-failing-the-whole-job ]

我尝试了解决方案:catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')。但还是一直这样显示:

如果我强制“sh”退出 1,只是为了检查它是否有效,它会显示失败:

看来我们必须通过 UFT 测试的结果,因此 Stage 呈现相同的结果。

这是我运行的构建 7 的管道,“TESTE 2 QUE FALHA”是我知道 UFT 会失败的测试,而 teste 3 是为了确保管道不会停止并继续运行阶段到即使一两个阶段失败也结束。

我可能遗漏了什么,或者我不理解这个舞台视图的动态。

感谢您的支持。

    agent{
        label 'S-EA311601'
    }
    options {
        timeout(time: 60, unit: 'MINUTES')
    }
    stages{
        stage('1'){
            steps{
              bat 'del /S /Q "P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\001.Transferencia Interbancaria\\Report"'  
            }
        }
        stage('TEST 1'){
            steps{
                uftScenarioLoad archiveTestResultsMode: 'ONLY_ARCHIVE_FAILED_TESTS_REPORT', fsUftRunMode: 'Normal', testPaths: '''P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\001.Transferencia Interbancaria'''
            }
        }
        stage('2'){
            steps{
              bat 'del /S /Q "P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\004.Transferencia Conversao Divisas\\Report"'  
            }
        }
        stage('TESTE 2 QUE FALHA'){
            steps{
                uftScenarioLoad archiveTestResultsMode: 'ONLY_ARCHIVE_FAILED_TESTS_REPORT', fsUftRunMode: 'Normal', testPaths:  '''P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\004.Transferencia Conversao Divisas'''
                catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE'){
                }
            }
        }
        stage('3'){
            steps{
              bat 'del /S /Q "P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\002.Transferencia Interbancaria Outra Conta\\Report"'  
            }
        }
        stage('TESTE 3'){
            steps{
                uftScenarioLoad archiveTestResultsMode: 'ONLY_ARCHIVE_FAILED_TESTS_REPORT', fsUftRunMode: 'Normal', testPaths:  '''P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\002.Transferencia Interbancaria Outra Conta'''
            }
        }
    }
}

【问题讨论】:

  • 有什么可以帮助的 DevOps 吗?

标签: jenkins jenkins-pipeline hp-uft


【解决方案1】:

你可能只是在你的步骤中有一个错字......

试试这个:

        stage('TESTE 2 QUE FALHA'){
            steps{
                catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE'){
                    uftScenarioLoad archiveTestResultsMode: 'ONLY_ARCHIVE_FAILED_TESTS_REPORT', fsUftRunMode: 'Normal', testPaths:  '''P:\\TA\\eBankaPlus\\R3G\\TRANSFERENCIAS\\004.Transferencia Conversao Divisas'''
                }
            }
        }

将 UFT 操作放在捕获错误中。

【讨论】:

  • 嗨@RichEdwards,谢谢你的帮助。我试试你说的,但舞台一直显示绿色。很奇怪,因为构建结束有Unstable,所以它检测到测试失败,但不要将阶段更改为红色和失败的信息。
  • 检查 - 您希望舞台视图返回失败吗?并且您的 uft 测试返回失败,但跑步者未检测到它?
  • 是的@RichEdwards,这就是我们想要做的,所以我们可以很容易地看到哪个阶段失败了。现在发生的情况是所有管道都保持不稳定,我们必须逐步检测哪个失败。
  • 两个想法浮现在脑海 -> 你必须执行脚本还是可以运行一点 VBS? - 创建启动和管理uft(qtp)对象的vbs来运行测试,运行后你可以得到运行的状态。即如果 runStatus == 失败,您可以执行 sh exit 1 - 再想一想,在脚本中调用 exit 1。我假设你有一个框架? (并且该框架不会污染失败结果)因此在步骤之间或在拆卸日志中测试失败然后调用异常终止以强制它根据需要硬失败......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多