我正在使用具有多个工作区的免费版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实现类似的结果(即工作空间级自定义属性)吗?
答案 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脚本手动处理所有事情似乎有点过分杀了我。