ランダムメソッドによって生成された動的値を持つSOAPリクエストがあります。これらの生成された値をログに記録する方法soap uiリクエストの内容からの動的値
マイSOAPリクエスト:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webserviceX.NET/">
<soap:Header/>
<soap:Body>
<web:ChangeLengthUnit>
<web:LengthValue>${=(int)(Math.random()*9999)}</web:LengthValue>
<web:fromLengthUnit>Inches</web:fromLengthUnit>
<web:toLengthUnit>Centimeters</web:toLengthUnit>
</web:ChangeLengthUnit>
</soap:Body>
</soap:Envelope>
のGroovyスクリプト:
import com.eviware.soapui.support.GroovyUtils;
def prj = testRunner.testCase.testSuite.project.workspace.getProjectByName("Project1")
tCase = prj.testSuites['TestSuite'].testCases['TestCase']
tStep = tCase.getTestStepByName("ChangeLengthUnit")
def stepReq = tStep.getProperty("Request").getValue()
def runner = tStep.run(testRunner, context)
log.info ("runner status ....... : " + runner.hasResponse())
log.info stepReq
for(assertion in tStep.assertionList)
{
log.info "Assertion [" + assertion.label + "] has status [" + assertion.status + "]"
for(e in assertion.errors)
log.info "-> Error [" + e.message + "]"
}
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(stepReq.toString())
log.info holder.getNodeValues("//web:LengthValue").toString()
グルーヴィーなスクリプトの上には、以下のように出力を与えている:LengthValueタグの
Wed Oct 18 14:55:13 SGT 2017:INFO:[${=(int)(Math.random()*9999)}]
実際の値を= 3 490、この値を取得するには?
sideapapuiがうまく動作しない、つまりtestrunnerを使ってプロジェクトを実行すると失敗するため、 'workspace'を使用しないでください。 – Rao