使用Groovy脚本循环遍历SOAP UI中的所有测试用例和测试步骤

问题描述:

作为测试套件拆卸过程的一部分,我想循环所有先前运行的测试用例和测试步骤,并捕获结果和断言。我对groovy脚本不太擅长,这看起来好像是直接做的,但到目前为止它还不是很好。这主要是因为我对对象模型不熟悉,没有“智能感”来指导我。我只需要一个shell就可以开始。使用Groovy脚本循环遍历SOAP UI中的所有测试用例和测试步骤

此外,我有一个循环多次执行相同的测试步骤喂养一组不同的数据。我不确定这是否有所作为。

这里是我的外壳:

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

您可以在此SO answer看到你正在努力实现让所有的结果拼命地跑测试套件什么。

关于你的错误:

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单独执行(从测试套件中)案例context.testCase这是null这就是为什么你得到这个错误信息。这个变量只有在你执行整个testSuite时才可用。

希望它有帮助,

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

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

请注意,测试套件的拆卸脚本可以使用下面的变量这也可以注意到的soapUI以及

log, context, runner, testSuite 
+0

这个答案也很有用。虽然我不完全理解“它”的语法。 –

+0

让我简单介绍一下它的功能。测试套件包含测试用例列表。然后把它的每一个(测试用例)作为例子记录下来,当然,如果需要的话,我们添加业务逻辑。每个测试用例都包含测试步骤列表,并循环每个测试步骤。希望现在好一点。 – Rao