![](/img/trans.png)
[英]How to use Robot framework for Rest Automation with XML Body and XML Response Body
[英]How to read the XML response element in robot framework?
我已经运行了SOAP API请求,并使用机器人框架获取了如下响应。
(reply){
return = "PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS"
}
我想从响应XML检索值PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS。 我试图使用命令获取值
${token}= Set Variable ${API_response_Data.return}
但这会引发错误
SyntaxError: unexpected EOF while parsing (<string>, line 1)
SOAP UI工具的实际响应如下所示(这仅供参考)。
<soapenv:Envelope xmlns:soapenv="something" xmlns:xsd="something">
<soapenv:Body>
<ns1:response xmlns:ns1="http://something.com">
<return>PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS</return>
</ns1:response>
</soapenv:Body>
</soapenv:Envelope>
当我使用
${Token}= Get Element ${API_response_Data} .//*return
Log ${Token.text}
请让我知道如何从返回标记中提取值?
您可以使用机器人框架的XML库来解析响应XML,然后获取特定元素的文本。 例如:
Demo
${root}= Parse XML soap_res.xml
${return}= Get Element ${root} .//*return
Log ${return.text}
Get Element
关键字返回一个XML元素对象,您需要它的text
属性。 输出如下:
SudsLibrary取决于Suds模块。 遗憾的是,该模块不再维护,并且随着时间的流逝,该模块的局限性越来越清晰。
在您的情况下,返回的对象很难使用。 这就是为什么我更愿意返回XML响应并使用标准XML库自己处理它的原因。
在发送请求之前,您可以使用Set Return XML关键字启用此功能。 然后按照XML库中的示例使用关键字Parse XML来获取实际值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.