使用groovy动态地将WSDL添加到项目中

时间:2016-02-22 11:00:46

标签: groovy soapui

我正在寻找groovy脚本,使用groovy脚本在运行时动态地向SOAPUI中的项目添加wsdl。我试过以下代码

import com.eviware.soapui.impl.wsdl.*

import com.eviware.soapui.impl.WsdlInterfaceFactory


project = new WsdlProject()
//wsdl = new WsdlInterfaceFactory()

project.setName("Project1");

WsdlInterface iface = WsdlInterfaceFactory.importWsdl(project, "C:\\Manoj\\BIAScalarReads\\IDSRequestLIB\\IDS_Request_MeterData.wsdl", true)[0];

SOAPUI中没有加载任何新项目。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您正在创建项目,但是您不能将项目添加到工作区。为此,您必须使用Workspace class中的相关方法。

有可能以不同的方式这样做。例如,创建项目,保存在磁盘上,然后加载到testCase中groovy script testStep中的工作区:

import com.eviware.soapui.impl.wsdl.*
import com.eviware.soapui.impl.WsdlInterfaceFactory

def project = new WsdlProject()
project.setName("Project1")
WsdlInterfaceFactory.importWsdl(project, 'path/to/yourWsdl', true)

// file to save the project
def projectFilePath = 'C:/temp/myProject.xml'
// save the project
project.saveAs(projectFilePath) 
// load the project from disc to workspace
testRunner.testCase.testSuite.project.workspace.importProject(projectFilePath)

另一种可行且更紧凑的方法是使用workspace.createProject,这样就可以避免保存光盘然后导入,这样就可以使用以下脚本:

import com.eviware.soapui.impl.wsdl.*
import com.eviware.soapui.impl.WsdlInterfaceFactory

def workspace = testRunner.testCase.testSuite.project.workspace
def project =   workspace.createProject('Project2',new File('C:/temp/myProject.xml')) 
WsdlInterfaceFactory.importWsdl(project, 'path/to/yourWsdl', true)

希望这有帮助,