1

ここで説明されているように、プロパティファイルからプロパティをロードしたい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を含めました。

誰かがこれを試しましたか?何か推測はありますか?

4

2 に答える 2

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 ファイルを指定してサンプル テストを実行します。そのファイルにはこれだけが含まれています:

test=1234 (エクスポートのプロパティで出力されます)

私のプロジェクトには、1234 以外の別の値に設定された test というプロジェクト プロパティがあります。

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('${#Project#test}'))

于 2012-07-28T18:02:34.643 に答える
1

ドキュメントの例はかなり不完全です。次のように、Java システム プロパティから値を強制的に変換できます。

systemProperty = context.expand('${=System.getProperty("soapui.home")}')
testRunner.testCase.setPropertyValue("systemProperty", systemProperty)
log.info("systemProperty="+testRunner.testCase.getPropertyValue("systemProperty"))
于 2012-07-30T10:10:50.993 に答える