1.依照上次结果判断下步是否执行:
import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus myTestStepResult = testRunner.runTestStepByName("Verify Step one") myStatus = myTestStepResult.getStatus( if( myStatus ==TestStepStatus.OK) ** execute the next testRunnerStep **
2.获取到Assert的结果:
def iAssertionName = assertionNameList[j] def iAssertionStatus = testStep.getAssertionAt(j).getStatus().toString() def tstep = testStep.getName() def gStatus = testStep.getAssertionAt(j).status def expect = testStep.getAssertionAt(j).getToken() log.info "Expected Content: " + expect
3.清空property
def datasink = testCase.testSteps["DataSink"] String[] props = new String[datasink.getPropertyCount()] props = datasink.getPropertyNames(); for (int i=0;i<props.size();i++) { datasink.setPropertyValue(props[i],"") }
4.从test step中获取到结果
import com.eviware.soapui.model.testsuite.* import com.eviware.soapui.impl.wsdl.teststeps.* def suiteRunner = (TestSuiteRunner) runner.getRunContext().getTestRunner() def listResults = suiteRunner.getResults() for (TestCaseRunner run : listResults){ def stepResults = run.getResults(); for(TestStepResult step : stepResults){ if(!step.getStatus().toString().equals("OK")){ def local = step.getTestStep() def caseName = local.getTestCase().getName(); def modalItem = local.getModelItem() log.info modalItem if (modalItem instanceof JdbcRequestTestStep){ log.error "TestCase " + caseName + " step " + local.getName() + " failed" log.error "JDBC step failed, query was: " + local.getQuery() log.error "Response content:" + local.getResponseContent() } if(modalItem instanceof WsdlTestRequestStep){ log.error "TestCase " + caseName + " step " + local.getName() + " failed" log.error "Request: " + modalItem.getTestRequest().getResponse().getRequest().getRequestContent() log.error "Response: " + modalItem.getTestRequest().getResponse().getContentAsXml() } if(modalItem instanceof WsdlRunTestCaseTestStep){ log.error "TestCase " + caseName + " step " + local.getName() + " failed" def target = local.getTargetTestCase() } }
5. 使用context
def myVar = context.expand( ‘${#TestCase#SourceTestStep}’) //expand TestCase property value into the new variable context.testCase // returns the current testCase handle
context.expand( '${QuerySubsPlanList - Request 1#Response#//count(*:QuerySubsPlanListResponse[1]/SubsPlanDtoList[1]/SubsPlanDto)}')
for ( i in 1..numElements.toInteger()) { collection2.add(context.expand( '${QuerySubsPlanList - Request 1#Response#//*:QuerySubsPlanListResponse[1]/SubsPlanDtoList[1]/SubsPlanDto['+ i + ']/SubsPlanCode[1]}')) }
6. 获取TestRunner的参数
testRunner.testCase.getTestStepByName(“TestStepName”) testRunner.testCase testRunner.testCase.testSuite.project.testSuites[“My_TestSuite”]
7. 转换String和Integer
anyStringVar = anyIntegerVar.toString() anyIntegerVar = anyStringVar.toInteger()
8. 获取到project,testsuite,testcase,teststep
def project = testRunner.testCase.testSuite.project def project = context.testCase.testSuite.project def myTestSuite = project.getTestSuiteAt(IndexNumber) def myTestSuite = project.getTestSuiteByName(“Name of the TestSuite”) def myTestCase = myTestSuite.getTestCaseAt(IndexNumber) def myTestCase = myTestSuite.getTestCaseByName(“Name of the TestCase”) def myTestStep = myTestCase.getTestStepAt(IndexNumber) def myTestStep = myTestCase.getTestStepByName(“Name of the TestStep”)