首页 > 解决方案 > 断言是否有任何 TestStep 失败

问题描述

如果任何 TestSteps 使用 Groovy 脚本失败,我如何断言?我编写了一个 groovy 脚本脚本,除其他外,它运行另一个 TestCase,如果它失败,我希望它断言每个 TestStep(称为 TestCase)。目前它检查 TestSteps 但它不包括 Groovy 脚本步骤(其中包含断言的 Groovy 脚本步骤)。

这是我目前所拥有的......

//Get TestStepList from called Project
def assertFinishedStatus = testRunner.testCase.testSuite.project.workspace.getProjectByName(projectName).getTestSuiteByName(testSuitetName).getTestCaseByName(testCaseName).getTestStepList()
//Assert if any step with assertions failed in called TestCase
def moduleStatus = true;
assertFinishedStatus.each{
     // check that testStep has assertionStatus 
    // (for example groovy testSteps hasn't this property since
    // there is no asserts on its)
    if(it.metaClass.hasProperty(it,'assertionStatus')){
        if(it.assertionStatus == AssertionStatus.FAILED){
            log.info "TestStep: ${it.name}   - - - - - - - - - - - -   Status: FAILED"
            return moduleStatus = false;
        }else if(it.assertionStatus == AssertionStatus.VALID || it.assertionStatus == AssertionStatus.UNKNOWN){
            log.info "TestStep: ${it.name}   - - - - - - - - - - - -   Status: OK!"
            return moduleStatus = true;
        }
    }
}
assert(moduleStatus != false)

更新:我希望下面的描述能澄清我想要实现的目标

我使用 Z_TC_DodawanieDwochLiczb_exp 来运行其他测试用例(在不同的项目中)。Groovy Script EXECUTE 完成所有工作(从一个 TestCase 获取属性并将它们设置为不同的,运行另一个 TestCase 等等......)。M_TC_Dodwanie 是我通过 Groovy Script TestStep EXECUTE_Dodawanie 运行的 TestCase,正如您可以看到它在 AssertResult Groovy Script Step 上失败,但没有失败 Z_TC_DodawanieDwochLiczb_exp (如果其他 TestCases 中的任何 TestStep(如 M_TC_Dodawanie)失败,我希望它这样做)。我希望它在 Z_TC_DodawanieDwochLiczb_exp 的 EXECUTE_Dodawanie TestStep 中完成。

我知道我不应该在其他测试用例/项目等之间做任何依赖,但是我必须这样做,因为这不取决于我

两个测试用例和 Groovy 脚本

标签: groovysoapsoapuiassert

解决方案


Groovy 脚本测试步骤在其代码中包含断言,但您可以检查它们的结果

for (r in testRunner.results ) {
  // log.info "TestStep " + r.testStep.name + " status: ${r.getStatus()}"
  assert r.getStatus().toString().equals("OK")
}

检查结果更可靠,因为 Groovy 脚本测试步骤和其他一些没有断言属性。


推荐阅读