1

我正在尝试使用 groovy 脚本创建 Soapui 项目。当直接从 SoapUI 运行它时,脚本正常工作,并创建了带有 WSDL 的新项目。

脚本创建于:项目 -> TestSuite -> TestCase -> Groovy 脚本

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

String Release = "xxx.yyy";
String projectName = "Test_$Release" + ".xml";
String projectPath = "D:/work/";
String fullProjectPath = "$projectPath$projectName";
String pathToWSDL = "D:/work/AWSECommerceService.wsdl.xml";
log.info ("Release value is $Release");
log.info ("Projet path is $projectPath");
log.info ("Project name is $projectName");
log.info ("pathToWSDL $pathToWSDL");
log.info ("fullProjectPath $fullProjectPath");

def currentProject = testRunner.testCase.testSuite.project;

WsdlProject project = currentProject
                        .getWorkspace()
                        .createProject(projectName, new File(fullProjectPath));
 WsdlInterface iface = WsdlInterfaceFactory.importWsdl(project,pathToWSDL, true )[0]
context.testCase.testSuite.project.save("");

SoapUI. testrunner.bat但是,使用如下所示运行它时失败:

testrunner.bat "D:\Ivo\Project.xml"

它返回以下错误:

错误:java.lang.NullPointerException:无法在空对象上调用方法 createProject()

4

1 回答 1

1

您可以尝试如下更改:

从:

WsdlProject project = currentProject
                        .getWorkspace()
                        .createProject(projectName, new File(fullProjectPath));

至:

WsdlProject project = new WsdlProject();
project.setName(projectName);
//your statements goes here
//finally save project
project.saveAs(fullProjectPath);
于 2017-10-04T06:36:06.457 回答