【问题标题】:Log Test Step response using groovy script in SoapUI在 SoapUI 中使用 groovy 脚本记录测试步骤响应
【发布时间】:2017-03-21 11:53:28
【问题描述】:

我目前有一个包含 76 个 Soap 测试步骤的测试套件,其中所有测试步骤都已运行。但是在日志中,我得到了预期的测试步骤名称,但没有响应。

groovy 脚本和测试步骤都在同一个测试套件中,但测试用例不同。它的结构如下:

  • 测试套件

    • 测试用例响应
      • 测试步骤
    • 测试用例日志
      • Groovy 脚本

Groovy 脚本:

def testCases = context.testCase.testSuite.getTestCaseList()
testCases.each
{

    for(testSteps in it.testStepList)
    {
        log.info "~~~Test Step:" + testSteps.name
        def requestname = testSteps.name
        log.info context.expand('${'+requestname+'#Response}')
    }
}

日志:

Tue Mar 21 11:50:04 GMT 2017:INFO:~~~Test Step:TestStep_0001
Tue Mar 21 11:50:04 GMT 2017:INFO:
Tue Mar 21 11:50:04 GMT 2017:INFO:~~~Test Step:TestStep_0002
Tue Mar 21 11:50:04 GMT 2017:INFO:
Tue Mar 21 11:50:04 GMT 2017:INFO:~~~Test Step:TestStep_0003
Tue Mar 21 11:50:04 GMT 2017:INFO:

为什么我没有得到每个测试步骤响应中的数据?

【问题讨论】:

  • 您已经处理过这些案例了吗?这个 groovy 脚本在哪里,在同一个测试用例/测试套件或Teardown Script
  • 如果在不同的测试用例但相同的测试套件中。并且所有测试步骤都已运行并有响应
  • 所以您只想记录响应?没有别的吗?
  • 是的,所以它有测试步骤标题(我有),然后是该测试步骤响应中的所有文本
  • 有哪些类型的测试步骤?肥皂或休息或http或jdbc?

标签: soap groovy soapui


【解决方案1】:

这是Groovy Script,它可以满足您的需求: 关键是使用step.getPropertyValue('Response')

import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep
//Repeat thru test cases
context.testCase.testSuite.testCaseList.each { tc ->
    tc.testStepList.each { step ->
        log.info "~~~Test Step:" + step.name 
        if (step instanceof WsdlTestRequestStep) {
            log.info step.getPropertyValue('Response')  
        } else {
            log.info 'Ignoring step as it is not SOAP request type step'
        }
    }
}

【讨论】:

    猜你喜欢
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多