我试图从Jmeter上返回的XML响应中提取特定的Xpath。
示例响应XML:
<?xml version="1.0" encoding="UTF-8"?>
<Responses>
<Rate href="http://test.com/psi?attribute1=x&attribute2=y">
<Cost currency='USD'>10</Cost>
</Rate>
</Responses>
我正在使用http://codebeautify.org/Xpath-Tester#来获取XPATH。 我需要成本“10”。 我正在查看Xpath - // Responses / Rate / Cost / text()但这会返回空值。 现在我将我的XML更新为(注意:删除了href部分):
<?xml version="1.0" encoding="UTF-8"?>
<Responses>
<Rate>
<Cost currency='USD'>10</Cost>
</Rate>
</Responses>
相同的XPATH //响应/费率/成本/文本()现在返回“Text = 10”。 知道href造成了什么问题吗?
答案 0 :(得分:1)
我尝试了你的xml,JMeter给了我:
断言失败消息:对实体“attribute2”的引用必须以“;”结尾分隔符。 有关详细信息,请参阅日志文件。
日志包含:
2015/07/08 10:46:26错误 - jmeter.util.XPathUtil:Type = Val = false Tol = false org.xml.sax.SAXParseException; lineNumber:1; columnNumber:107;对实体“attribute2”的引用必须以“;”结尾分隔符。
2015/07/08 10:46:26 WARN - jmeter.extractor.XPathExtractor:处理时出现SAX异常(// Responses / Rate / Cost /)对实体“attribute2”的引用必须以';'结尾分隔符。
所以问题是由于错误的XML,你应该:
<?xml version="1.0" encoding="UTF-8"?>
<Responses>
<Rate href="http://test.com/psi?attribute1=x&attribute2=y">
<Cost currency='USD'>10</Cost>
</Rate>
</Responses>
答案 1 :(得分:1)
感谢大家的建议。问题在于XPATH的框架。 有很多问题:
总而言之,问题是错误的XPATH。 获得的经验教训:在实际输入jmeter之前,请务必检查freeformatter(或任何其他类似工具)上的xpath。