在 SoapUI 的命令行中,如何将某些属性导出到另一个项目?



在SoapUI中,我有很多项目(单独的xml文件):

  • 第一个(init.xml)将初始化很多属性(例如:sessionId)
  • 另一个项目(其他.xml)将使用该会话 ID

在 GUI 中,我只需使用transfert 步骤将值传递给全局属性,效果很好。

命令行 testrunner.bat中,我首先运行"init.xml"项目,然后运行另一个(other.xml)。但在另一个.xml中,未设置会话 ID。如何将会话 ID 从 init.xml 运行导出到"其他.xml"运行?

这是我所做的测试:

  • 指定单独的设置.xml (-t 测试设置.xml) => 测试设置.xml未更新
  • 将两个步骤合二为一(测试运行程序.bat初始化.xml test1.xml)=> 不支持

我想避免将所有项目合并为一个项目。

谢谢

要使用 init.xml 属性的通用初始化,您可以从其他项目的加载脚本中导入 init.xml.xml如下所示:

def initProject = null
if (project.workspace == null) {
// Case running from command line - loading the init.xml
initProject = new com.eviware.soapui.impl.wsdl.WsdlProject("init.xml")
} else {
// Case in GUI having a workspace - put in correct project name
initProject = project.workspace.getProjectByName("Init")
}
// Invoke test case which sets up global properties
def initCase = initProject.testSuites["foo"].testCases["bar"]
testCase.run(new com.eviware.soapui.support.types.StringToObjectMap(), false)

项目所需的初始化必须在同一个项目中完成,这是很好的做法。

但是你正在做不同的事情,不知道为什么会这样。如果可能,使每个项目独立。

如果您仍然想以与当前相同的方式实现,请使用以下内容:

当项目(init.xml)从命令行运行时会发生什么?

您期望的更改是在内存中完成的,当您从 SoapUI 中时,这些数据在其他项目中可用,因为该数据在内存中可用。但是,一旦测试运行程序完成执行,就不会持久化到项目 (init.xml)。

为了持久保存数据,应该怎么做?
您需要添加额外的命令行选项-S,以便将数据保存到项目中。

例如,让我们假设以下命令用于运行init.xml

testrunner.bat [some options] init.xml

将上述内容更改为以下内容:

testrunner.bat [some options] -S init.xml

当第二个项目运行时,它可以从init.xml中选取数据,因为之前发生的更改会持久保存。

希望这是有帮助的。

相关内容

  • 没有找到相关文章

最新更新