我想按照http://www.soapui.org/Scripting-Properties/working-with-properties.html中的说明从属性文件加载属性。我正在使用testrunner.sh来运行测试。
我想做./testrunner.sh -PServiceEndPoint=${serviceendpointvalue} sample_soapuitest.xml
之类的事,但它不起作用。
serviceendpointvalue已在properties.txt中定义。 我在testrunner.sh中修改了JAVA_OPTS以包含properties.txt。
有人试过吗?任何sugesstions?
答案 0 :(得分:2)
我认为传递给testrunner.sh的参数必须在从文件加载属性之前定义。
我99%肯定你可以用另一种方式完成你想要的东西。
参数化请求中的端点。如果这是很多工作,我建议在文本编辑器中使用搜索和替换。我之前做过它并且有效。您只需要注意服务端点可能显示的其他位置(例如在WSDL / WADL / XSD引用中等)。
您对请求中端点的要求取决于您使用的是SOAP还是REST。
For SOAP: ${#Project#endpoint}
(assuming that your endpoint property is a project property)
For REST: http://${#Project#server}
我忘记了为什么它必须有所不同,但要想出来是一件痛苦的事。
在属性字段中,数据如下所示:
SOAP: http://server:8080
REST: server:8080
(whatever port is relevant)
您可以使用文件设置这些属性。该文件将在执行开始时进行解析,请求将使用文件中的属性值。
于07/30/12编辑
您仍然可以使用我提到的方法。
此命令行运行我的示例测试,指定test.props文件。该文件就是这样的:
测试= 1234 (它由导出属性输出)
我的项目将名为test set的项目属性设置为除1234之外的另一个值。
ndfdXML是我的项目名称..只是一个示例名称。
命令行:
C:\ Program Files \ SmartBear \ soapUI-4.5.1 \ bin> testrunner.bat -Dsoapui.properties.ndfdXML = test.props ndfdXML-soapui-project.xml
soapUI 4.5.1 TestCase Runner
Configuring log4j from [C:\Program Files\SmartBear\soapUI-4.5.1\bin\soapui-log4j.xml]
14:32:29,283 INFO [DefaultSoapUICore] initialized soapui-settings from [C:\Users\chris.mead\soapui-settings.xml]
14:32:30,081 INFO [WsdlProject] Loaded project from [file:/C:/Program%20Files/SmartBear/soapUI-4.5.1/bin/ndfdXML-soapui-project.xml]
14:32:30,089 INFO [AbstractTestPropertyHolderWsdlModelItem] Overriding 1 properties from [test.props] in [ndfdXML]
14:32:30,702 INFO [SoapUITestCaseRunner] Running soapUI tests in project [ndfdXML]
14:32:30,717 INFO [SoapUITestCaseRunner] Running Project [ndfdXML], runType = SEQUENTIAL
14:32:30,718 INFO [SoapUITestCaseRunner] Running soapUI testcase [TestCase 1]
14:32:30,718 INFO [SoapUITestCaseRunner] running step [CornerPoints - Request 1]
14:32:31,132 WARN [AbstractSoapVersion] Ignoring validation error: error: cvc-complex- type.3.2.2: Attribute not allowed: encodingStyle@http://schemas.xmlsoap.o
rg/soap/envelope/ in element Envelope@http://schemas.xmlsoap.org/soap/envelope/
14:32:31,449 INFO [SoapUITestCaseRunner] Assertion [SOAP Response] has status VALID
14:32:31,450 INFO [SoapUITestCaseRunner] Assertion [XPath Match] has status VALID
14:32:31,450 INFO [SoapUITestCaseRunner] running step [Properties]
14:32:31,454 INFO [SoapUITestCaseRunner] running step [Property Transfer]
14:32:31,523 INFO [SoapUITestCaseRunner] running step [Groovy Script]
14:32:31,912 INFO [log] 1234
最后一行是由这个groovy输出的:
log.info(context.expand( '$ {#项目#测试}'))
答案 1 :(得分:1)
文档中的示例相当不完整;您可以强制Java System Properties中的值,如下所示:
systemProperty = context.expand('${=System.getProperty("soapui.home")}')
testRunner.testCase.setPropertyValue("systemProperty", systemProperty)
log.info("systemProperty="+testRunner.testCase.getPropertyValue("systemProperty"))