如何在Soap UI中添加groovy脚本来自动更新定义?

时间:2014-05-21 08:32:10

标签: groovy soapui

我使用Soap UI来测试我的Web服务。每次我想执行测试请求时,我都需要更新定义。我知道有可能添加groovy脚本让WSDL自动更新。但我不知道我应该添加这个脚本以使其正常工作。可能有人描述了我每次执行请求时需要做的步骤才能使这个脚本运行吗?

2 个答案:

答案 0 :(得分:1)

如果在导航器选项卡上双击打开testSuite,则可以在窗口底部看到设置脚本按钮,如果单击设置脚本按钮,则会显示一个窗口,您可以在其上添加groovy脚本,每次执行testSuite时都会执行此脚本:

enter image description here

使用testCases也可以。除了这个脚本可以是groovy或javascript,你可以设置你想要的项目的脚本语言属性:

enter image description here

答案 1 :(得分:1)

以下是此代码:

import static com.eviware.soapui.impl.wsdl.actions.iface.UpdateInterfaceAction.recreateRequests
import static com.eviware.soapui.impl.wsdl.actions.iface.UpdateInterfaceAction.recreateTestRequests

project = testRunner.testCase.testSuite.project; //get the project reference
def ifaceList = project.getInterfaceList(); //get all the interfaces present in the project in a list

//start a loop for number of interfaces
for(int i = 0; i < project.getInterfaceCount() ; i++)
{

def iface = project.getInterfaceAt(i);
def url = iface.definition;
iface.updateDefinition( url, true); //updateDefinition(String url , Boolean createRequests)

//The above part updates the definition
//The part below recreates the requests based on updated wsdl definition

//syntax - 
//recreateRequests( WsdlInterface iface, boolean buildOptional, boolean createBackups, boolean keepExisting, boolean keepHeaders )

recreateRequests(iface,true,true,true,true);
recreateTestRequests(iface,true,true,true,true);
}
//End of Script//