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

Adding WSDL to a project dynamically using groovy

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

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 中没有加载新项目。有人可以帮忙吗?

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

可以用不同的方式来做到这一点。例如,创建您的项目,保存在磁盘上,然后在测试用例中的 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)

希望这对您有所帮助,