2015-07-01 2 views
1

Если вы запустите testStep и посмотрите утверждения. SoapUI возвращает утверждение Green/Red, а также добавляет «- VALID» или «- FAILED»Как я могу захватить список утверждений soapui со статусом

Вопрос: Есть ли способ захватить эту полную строку? Имя + статус

т.е. SOAP Response - ДЕЙСТВИТЕЛЬНО XPath Match - ДЕЙСТВИТЕЛЬНО Содержит - ДЕЙСТВИТЕЛЬНО Не содержит - FAILED

В настоящее время я потянув assertionsList - но я хочу лишний кусок статус идти вместе с ним.

Спасибо, Роб

+0

Да, это возможно, чтобы получить имя утверждает и добавить статус к нему с помощью заводного сценария, вы можете поделиться вашим фактическим заводным кодом для работы с ним в порядке чтобы дать вам возможный ответ? ':)' – albciff

ответ

1

Чтобы напечатать все утверждения из всех testSteps внутри testCase вы можете использовать следовать заводной скрипт в tearDown script из ваших testCase, это использовать getAssertionList(), который возвращает TestAssertion список, а затем итерация над ним с помощью label и status свойства:

testRunner.testCase.testSteps.each{ name,props -> 
    log.info "Test step name: $name" 
    // check that the testStep class support assertions 
    // (for example groovy testStep doesn't) 
    if(props.metaClass.respondsTo(props, "getAssertionList")){ 
     // get assertionList 
     props.getAssertionList().each{ 
      log.info "$it.label - $it.status" 
     } 
    } 
} 

Примечания: Не всех видов testStep игрового есть утверждения (например, Groovy скрипт testStep не делает), так что необходимо проверить его перед использованием getAssertionList())

enter image description here

Если вы хотите, чтобы получить все утверждения от одного конкретного testStep вы можете использовать тот же подход в заводной сценарий:

// get the testStep 
def testStep = testRunner.testCase.getTestStepByName('Test Request') 

// check that the testStep specific class support assertions 
// (for example groovy testStep doesn't) 
if(testStep.metaClass.respondsTo(testStep, "getAssertionList")){ 
    // print assertion names an its status 
    testStep.getAssertionList().each{ 
     log.info "$it.label - $it.status"  
    } 
} 

Надежда это помогает,

+0

Это похоже на то, что все в порядке, но часть getAssertionList() дает мне это в журнале ошибок: «ERROR: groovy.lang.MissingMethodException: Нет сигнатуры метода: com.eviware.soapui.impl .wsdl.teststeps.WsdlGroovyScriptTestStep.getAssertionList() применим для типов аргументов:() values: [] " – laurencemadill

+1

@laurencemadill. Я обновлю свой ответ, чтобы избежать вашей проблемы. Дело в том, что шаги * Groovy script * (которые реализованы с использованием 'com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestS tep' не имеют утверждений. – albciff

+0

Отлично. Я должен был заметить это на моем. вы очень любите, я поддержал ваш ответ – laurencemadill