在SoapUI中运行基于testSuite属性的特定测试步骤

时间:2017-01-06 18:47:42

标签: groovy soapui

我是脚本新手,可以使用一些帮助。我有关于SoapUI groovy脚本的问题,我可以使用帮助。

我需要一个脚本,让我根据testSuite属性的值(' CC1'是属性名称)在testCase中运行特定的testStep,有5种可能性。我想可以使用switch / case,但不知道如何正确编写它。

目前我尝试使用它:

def CC1 = testRunner.testCase.testSuite.getPropertyValue("CC1")
log.info testRunner.testCase.testSuite.getPropertyValue("CC1")

switch(CC1)  
{  
  case ~/^[H1]+$/: testRunner.runTestStepByName( "PT02_H1" ); break;  
  case ~/^[Y5]+$/: testRunner.runTestStepByName( "PT02_Y5" ); break;  
  case ~/^[Q2]+$/: testRunner.runTestStepByName( "PT02_Q2" ); break;  
  case ~/^[T5]+$/: testRunner.runTestStepByName( "PT02_T5" ); break;  
  default : testRunner.runTestStepByName( "PT02_AQ" );  
}

但是没有完成所需的步骤。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

尝试以下脚本(从groovyTestStep运行):

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def testCase = testRunner.testCase;
def testStep = null;
def CC1 = testRunner.testCase.testSuite.getPropertyValue("CC1")
log.info testRunner.testCase.testSuite.getPropertyValue("CC1")

switch(CC1)  
{  
  case ~/^[H1]+$/: testStep = testCase.getTestStepByName( "PT02_H1" ); break;  
  case ~/^[Y5]+$/: testStep = testCase.getTestStepByName( "PT02_Y5" ); break;  
  case ~/^[Q2]+$/: testStep = testCase.getTestStepByName( "PT02_Q2" ); break;  
  case ~/^[T5]+$/: testStep = testCase.getTestStepByName( "PT02_T5" ); break;  
  default : testStep = testCase.getTestStepByName( "PT02_AQ" );  
}
testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null);
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
testStep.run(testRunner, testStepContext);
log.info "TEST OK:"+testStep.getName();