con:设置工作区和项目文件中的元素

时间:2013-11-21 02:19:34

标签: configuration soapui

我正在使用具有多个工作区的免费版SoapUI(版本4.6.1)。令我沮丧的是,SoapUI似乎不支持工作区级别的自定义属性。

我审核的*-soapui-workspace.xml个文件包含一个空的con:settings元素(即<con:settings/>)。与我审核过的*-soapui-project.xml文件相同。

我的直觉&amp;希望这些元素允许我在我的常规soapui-settings.xml文件中看到的工作区或项目级添加或覆盖设置 - 例如加载给定工作空间时我想要的其他全局属性。

但是,当我创建包含...

的设置文件SomeService Tests-soapui-settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-settings xmlns:con="http://eviware.com/soapui/config">
<con:setting id="GlobalPropertySettings@properties"><![CDATA[<xml-fragment xmlns:con="http://eviware.com/soapui/config">
  <con:property>
    <con:name>WorkspaceCustomPropertyTest</con:name>
    <con:value>some value</con:value>
  </con:property>
</xml-fragment>]]>
</con:setting>
</con:soapui-settings>

...并在con:settings文件中设置SomeService Tests-soapui-workspace.xml元素,如此...

<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-workspace name="SomeService Tests" soapui-version="4.6.1" projectRoot="${workspaceDir}" xmlns:con="http://eviware.com/soapui/config">
  <con:description>Workspace to organize all SomeService test projects.</con:description>
  <con:settings>SomeService Tests-soapui-settings.xml</con:settings> <!-- Reference the workspace settings file. -->
  <con:project name="SomeService Authentication Tests">SomeService Authentication Tests-soapui-project.xml</con:project>
</con:soapui-workspace>

......,没有任何反应。

加载工作区时我没有收到错误,但我也没有得到con:settings元素正在执行任何操作的任何迹象。例如,SoapUI首选项&gt;全局属性未列出WorkspaceCustomPropertyTest属性。

我当然可以继续修补,但对工作空间和项目文件con:settings元素的解释会有所帮助。

搜索SO,SmartBear SoapUI forum以及更广泛地解释工作空间和项目文件con:settings元素到目前为止没有任何结果。

任何人都可以解释如何使用工作区和项目文件con:settings元素吗?

或者,任何人都可以了解如何使用免费版的SoapUI实现类似的结果(即工作空间级自定义属性)吗?

3 个答案:

答案 0 :(得分:1)

怎么样?

创建一个ini(“myconfig.groovy”)文件(“假设此文件将与项目文件位于同一目录中”):

global_property='Global value'

使用这个groovy脚本来获取属性:

// Script imports
import com.eviware.soapui.support.GroovyUtils
import groovy.util.ConfigSlurper

// Grovvy utils handle OS directories path abstraction
def groovyUtils = new GroovyUtils(context)

def config = new ConfigSlurper().parse(new File(groovyUtils.projectPath + '/myconfig.groovy').toURL())

// Just logging the property but you can set the property here
log.info config.global_property

然后,您可以在运行时将值添加到所需对象。

答案 1 :(得分:0)

似乎无法在工作区级别执行此操作。您可以在其中一个测试级别执行此操作,请参阅:http://www.soapui.org/Functional-Testing/working-with-properties.html

答案 2 :(得分:-1)

SoapUI确实支持全局属性。

在文件&gt;偏好&GT;全球房产

您可以在此处指定跨所有项目的全局属性。可悲的是,目前,它将用于所有工作空间。希望这有帮助,有一个groovy脚本手动处理所有事情似乎有点过分杀了我。