使用Groovy Script

时间:2015-11-04 20:33:34

标签: groovy soapui

作为Test Suite拆解过程的一部分,我想循环遍历之前运行的所有测试用例和测试步骤,并捕获结果和断言。我不是很擅长时髦的剧本,这似乎很容易做到,但到目前为止还不顺利。这主要是因为我不熟悉对象模型而且没有“intellisense”来指导我。我只需要一个shell开始。

另外,我有一个循环,它执行相同的测试步骤多次输入不同的数据集。我不确定这是否有所作为。

这是我的shell:

def testCases = context.testCase.testSuite.getTestCaseList()
testCases.each
{
    log.info "~~~Test Case:" + it.name
    for(testSteps in it.testStepList)
    {
        log.info "~~~Test Step:" + testSteps.name
    }
}

但是我收到了这个错误...... Wed Nov 04 15:53:44 EST 2015:ERROR:An error occurred [Cannot get property 'testSuite' on null object], see error log for details

2 个答案:

答案 0 :(得分:1)

如果您在测试套件的 TearDown脚本中使用它,那么下面的代码段可以帮助您

testSuite.testCaseList.each {
   log.info "Test Case : ${it.name}"
   it.testStepList.each {
      log.info "Test Step : ${it.name}"
   }
}

请注意,testsuite的拆卸脚本可以使用下面的变量,这些变量也可以在soapUI中注意到

log, context, runner, testSuite

答案 1 :(得分:1)

您可以在此SO answer上看到您尝试获得运行的testSuite的所有结果。

关于您的错误:

Wed Nov 04 15:53:44 EST 2015:ERROR:An error occurred [Cannot get property 'testSuite' on null object], see error log for details

问题在于,如果您使用tearDown script中的播放按钮直接测试tearDown script单独执行(在testSuite之外),则会有一些缺失的变量,在本例中是context.testCase,它是null这就是您收到此错误消息的原因。只有在执行整个testSuite时,此变量才可用。

希望它有所帮助,