如何将 XMLSlurper 与 JMeter JSR223 断言一起使用?
How to use XMLSlurper with JMeter JSR223 assertion?
我正在尝试使用 JSR 223 断言和 XmlSlurper
从元素中提取文本
offer=vars.get('CurrentOfferUnderTest')
def xml = new XmlSlurper(false,true).parseText(SampleResult.getResponseDataAsString())
if(offer=='410012'){
//assert xml.ResultHeader.ResultCode.text()=='102020006'
log.info(xml.Envelope.Body.LoanManageResultMsg.ResultHeader.ResultCode.text())
log.info(xml.'*'.ResultCode.text())
a=xml.'*'.find{node -> node.name()=='ns2:ResultCode'} //regardless of namespace, same result
assert a.text()=='102020006'
}
每当我只记录 xml
var 时,我都会在日志中看到文本,当我尝试按上述方式进行广告导航时,我会得到 blanks\nulls。即使在执行 xml.Envelope.text()
时,我也添加了名称空间感知布尔值。它并没有真正帮助。我做错了什么?
XML 节选
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:LoanManageResultMsg xmlns:ns4="http://www.p.com/wsdl/manageloanmgr"
xmlns:ns2="http://www.p.com/wsdl/shared"
xmlns:ns3="http://www.p.com/wsdl/loan"
xmlns:ns5="http://www.p.com/wsdl/newsubscriber"
xmlns:ns6="http://www.p.com/wsdl/query"
xmlns:ns7="http://www.p.com/wsdl/subscribe">
<ResultHeader>
<ns2:CommandId>LoanManage</ns2:CommandId>
<ns2:Version>1</ns2:Version>
<ns2:TransactionId>6</ns2:TransactionId>
<ns2:SequenceId>4u6w6qry3</ns2:SequenceId>
<ns2:ResultCode>102020006</ns2:ResultCode>
<ns2:ResultDesc>Operation invalid.</ns2:ResultDesc>
<ns2:OrderId>0</ns2:OrderId>
这没有帮助
我认为您不应该在 GPath because your xml
object resolves to the Soap Envelope 中使用 Envelope
。
更多信息:
我正在尝试使用 JSR 223 断言和 XmlSlurper
offer=vars.get('CurrentOfferUnderTest')
def xml = new XmlSlurper(false,true).parseText(SampleResult.getResponseDataAsString())
if(offer=='410012'){
//assert xml.ResultHeader.ResultCode.text()=='102020006'
log.info(xml.Envelope.Body.LoanManageResultMsg.ResultHeader.ResultCode.text())
log.info(xml.'*'.ResultCode.text())
a=xml.'*'.find{node -> node.name()=='ns2:ResultCode'} //regardless of namespace, same result
assert a.text()=='102020006'
}
每当我只记录 xml
var 时,我都会在日志中看到文本,当我尝试按上述方式进行广告导航时,我会得到 blanks\nulls。即使在执行 xml.Envelope.text()
时,我也添加了名称空间感知布尔值。它并没有真正帮助。我做错了什么?
XML 节选
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:LoanManageResultMsg xmlns:ns4="http://www.p.com/wsdl/manageloanmgr"
xmlns:ns2="http://www.p.com/wsdl/shared"
xmlns:ns3="http://www.p.com/wsdl/loan"
xmlns:ns5="http://www.p.com/wsdl/newsubscriber"
xmlns:ns6="http://www.p.com/wsdl/query"
xmlns:ns7="http://www.p.com/wsdl/subscribe">
<ResultHeader>
<ns2:CommandId>LoanManage</ns2:CommandId>
<ns2:Version>1</ns2:Version>
<ns2:TransactionId>6</ns2:TransactionId>
<ns2:SequenceId>4u6w6qry3</ns2:SequenceId>
<ns2:ResultCode>102020006</ns2:ResultCode>
<ns2:ResultDesc>Operation invalid.</ns2:ResultDesc>
<ns2:OrderId>0</ns2:OrderId>
这没有帮助
我认为您不应该在 GPath because your xml
object resolves to the Soap Envelope 中使用 Envelope
。
更多信息: