使用Groovy脚本克隆SOAP UI测试步骤

使用Groovy脚本克隆SOAP UI测试步骤,groovy,soapui,Groovy,Soapui,最近,我开始使用Groovy脚本改进我的SOAP UI测试项目。我只是一个初学者,经常修改和重用脚本,而不是创建自己的脚本,希望很快我就能创建自定义脚本:) 这些天来,我一直在寻找一种将现有测试步骤从一个测试用例克隆到另一个测试用例的方法。我在网上搜索了一些可以在我的项目中实现的方法或现成脚本,但到目前为止,我没有找到我需要的:( 你能给我举几个例子来帮助我吗 亲切问候,, Kristiyan您可以很容易地将一个测试步骤(或整个测试用例)从一个地方克隆到另一个地方: def originalTe

最近,我开始使用Groovy脚本改进我的SOAP UI测试项目。我只是一个初学者,经常修改和重用脚本,而不是创建自己的脚本,希望很快我就能创建自定义脚本:)

这些天来,我一直在寻找一种将现有测试步骤从一个测试用例克隆到另一个测试用例的方法。我在网上搜索了一些可以在我的项目中实现的方法或现成脚本,但到目前为止,我没有找到我需要的:(

你能给我举几个例子来帮助我吗

亲切问候,, Kristiyan

您可以很容易地将一个测试步骤(或整个测试用例)从一个地方克隆到另一个地方:

def originalTestStep = testRunner.testCase.testSuite.project
        .getTestSuiteByName("OriginalTestSuite").getTestCaseByName("OriginalTestCase")
        .getTestStepByName("OriginalTestStep")

testRunner.testCase.testSuite.project
        .getTestSuiteByName("TargetTestSuite").getTestCaseByName("TargetTestCase")
        .cloneStep(originalTestStep, "clonedTestStep")
但是,这会造成维护问题。更好的选择是将常用测试步骤放入测试用例中,然后从许多其他测试用例中运行该测试用例。您可以使用或从Groovy执行
运行测试用例
测试步骤:

def testCase = testRunner.testCase.testSuite.project
        .getTestSuiteByName("CommonTestSuite")
        .getTestCaseByName("CommonTestCase")
def properties = new com.eviware.soapui.support.types.StringToObjectMap ()
testCase.run(properties, false)

这样,您的维护仅限于几个地方。

GUI允许您从一个测试克隆或移动测试步骤到另一个测试

在GUI左侧的文件夹结构中,右键单击感兴趣的步骤,将弹出关联菜单。或者,高亮显示该步骤并单击F9


应该会出现一个窗口,询问您是否要移动或复制步骤和目标。

谢谢!这对于我希望在项目中执行的操作应该非常有效。当我现在尝试执行它时,我得到了一个奇怪的结果…我想将请求和响应XML记录为驱动器上的文件,但当我使用脚本时,它会被删除points试图在我设置了公共脚本的测试用例中找到它们,并将它们保存为空白:
def myXmlRequest=“Path”def request=context.expand('${TestCase#request}')def req=new File(myXmlRequest)req.write(请求,“UTF-8”)
如何设置从当前测试用例而不是普通测试用例获取它们的请求?您可以使用类似于
testRunner.testCase.testSuite.project.getTestSuiteByName(“OriginalTestSuite”).getTestCaseByName(“OriginalTestSuite”).getTestCaseByName(“OriginalTestCase”)的内容深入到当前测试用例之外的特定套件/用例/步骤/请求或响应.getTestStepByName(“OriginalTestStep”).getPropertyValue(“request”)
。如果涉及的问题比这多,请提出单独的问题,以便有更多的空间显示代码。