我有一个webservice响应:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<FileResponse xmlns="http://xxx.x.sx.be">
<id>090150e080249d09</id>
</FileResponse>
</soap:Body>
</soap:Envelope>
我试图提取&#34; id&#34;的价值。但我似乎无法找出正确的查询。我使用了一个在线生成器提供:
/soap:Envelope[@xmlns:soap="http://www.w3.org/2003/05/soap-envelope"]/soap:Body/FileResponse[@xmlns="http://xxx.x.sx.be"]/id/text()
但它似乎在Jmeter中起作用,因为响应总是为空。
答案 0 :(得分:0)
我发现这是答案://*[local-name() = 'id']
答案 1 :(得分:0)
您对命名空间的测试无效。 Xpath查询不支持此功能。
相反,您需要JMeter传递名称空间声明以及xpath查询。我不知道JMeter是如何做到的,但我可以给你一个可以解决它的xpath表达式。
//*[local-name()='FileResponse']/*[local-name()="id"]/text()
xpath将测试节点的名称并忽略名称空间。不推荐使用没有名称空间进行测试的做法,可能会很慢,但它可以工作。