#groovy #soap #soapui #assert
Вопрос:
как я могу утверждать, что какой-либо из этапов тестирования не удался с помощью скрипта Groovy? Я написал отличный сценарий, который, помимо прочего, запускает другой тестовый набор, и я хочу, чтобы он утверждал каждый шаг теста (в так называемом тестовом наборе), если он не удался. В настоящее время он проверяет шаги тестирования, но не включает в себя шаги сценария 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 выполняет всю работу (получает свойства из одного тестового набора и устанавливает их в другой, запускает другой тестовый набор и т. Д….). M_TC_Dodwanie-это тестовый набор, который я запускаю с помощью этого тестового шага скрипта Groovy EXECUTE_Dodawanie, как вы можете видеть, он не удался на шаге AssertResult Groovy Script, но не провалил Z_TC_DodawanieDwochLiczb_exp (что я хочу, чтобы он выполнял, если какой-либо тестовый шаг в других тестовых наборах, таких как M_TC_Dodawanie, терпит неудачу). И я хочу, чтобы это было сделано на шаге тестирования EXECUTE_Dodawanie в Z_TC_DodawanieDwochLiczb_exp.
Я знаю, что не должен делать никаких зависимостей между другими тестовыми наборами/проектами и т. Д. однако я должен это сделать, потому что это не от меня зависит
Ответ №1:
В шагах тестирования сценариев Groovy есть утверждения в коде, но вы можете проверить их результаты:
for (r in testRunner.results ) {
// log.info "TestStep " r.testStep.name " status: ${r.getStatus()}"
assert r.getStatus().toString().equals("OK")
}
Проверка результатов более надежна, так как этап тестирования скрипта Groovy и некоторые другие не имеют свойств утверждения.
Комментарии:
1. Я думаю, что я не могу использовать .результаты в других тестовых наборах, которые я запускаю с помощью testRunner.testCase.testSuite.project.workspace.getProjectByName(projectName).getTestSuiteByName(testSuitetName).getTestCaseByName(testCaseName) Я добавил скриншот и обновление к вопросу, так что, возможно, будет более понятно, что я хочу сделать