我正在寻找在测试用例中添加 SOAP 请求测试步骤,从不同的 TestSuite 和测试用例,我已经编写了部分以添加 Groovy 脚本以满足相同的要求,但无法添加 SOAP 请求测试步骤。有什么帮助吗?
以下是我的代码:
import com.eviware.soapui.impl.wsdl.teststeps.registry.GroovyScriptStepFactory
suite = context.testCase.testSuite.project.addNewTestSuite("AutomatedTestSuite")
tc = suite.addNewTestCase("automatedTestCase")
gs = tc.addTestStep( GroovyScriptStepFactory.GROOVY_TYPE, "GroovyScript1" )
gs2 = tc.addTestStep( GroovyScriptStepFactory.GROOVY_TYPE, "GroovyScript3" )
gs.properties["script"].value = 'log.info('hello world')'
您可以通过项目获取另一个testSuite,testCase和testStep的名称,如下所示:
def project = context.testCase.testSuite.project
def testStep = project.testSuites['TestSuiteName'].testCases['TestCaseName'].testSteps['testStepName']
或者使用getXXXXbyName
方法代替数组方法:
def testStep = project.getTestSuiteByName('TestSuiteName').getTestCaseByName('TestCaseName').getTestStepByName('testStepName')
然后,要将此测试步骤添加到您的测试用例中,您可以使用cloneStep(WsdlTestStep testStep, String name)
方法。
全部在脚本中:
def suite = context.testCase.testSuite.project.addNewTestSuite("AutomatedTestSuite")
def tc = suite.addNewTestCase("automatedTestCase")
// get desired testStep
def project = context.testCase.testSuite.project
def testStep = project.testSuites['TestSuiteName'].testCases['TestCaseName'].testSteps['testStepName']
// add it to your new generated testCase
tc.cloneStep(testStep,testStep.name + "_Copy")
根据评论进行编辑
如果要创建一个新的副本,而不是另一个 SOAP 测试步骤的副本,则可以使用以下代码执行此操作。考虑到要创建 SOAP 类型的 testStep ,由于需要 wsdl 操作信息,因此需要比创建时髦的步骤更多的信息(在示例中,我们采用第一个,但如果您有多个,请照顾您采取的内容)。
IMO 第一种方法更简单,您可以复制另一个测试步骤并更改所需的属性...无论如何,如果你想在这里这样做,你是:
import com.eviware.soapui.impl.wsdl.teststeps.registry.WsdlTestRequestStepFactory
def suite = context.testCase.testSuite.project.addNewTestSuite("AutomatedTestSuite")
def tc = suite.addNewTestCase("automatedTestCase")
// get the WSDL operation... for the example we take the first one
// however if you've more get the correct one
def operation = testRunner.testCase.testSuite.project.getInterfaceAt(0).getOperationList()[0]
// factory to create the testStepConfig
def factory = new WsdlTestRequestStepFactory()
def config = factory.createConfig(operation,'stepName')
// create the testStep
def testStep = tc.addTestStep(config)
// change the request
testStep.properties['Request'].value = '<request>someData</request>'
希望对您有所帮助,