如何在JMeter中使用XPATH获取此值

时间:2016-07-14 10:15:49

标签: xpath jmeter

我有一个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中起作用,因为响应总是为空。

2 个答案:

答案 0 :(得分:0)

我发现这是答案://*[local-name() = 'id']

答案 1 :(得分:0)

您对命名空间的测试无效。 Xpath查询不支持此功能。

相反,您需要JMeter传递名称空间声明以及xpath查询。我不知道JMeter是如何做到的,但我可以给你一个可以解决它的xpath表达式。

//*[local-name()='FileResponse']/*[local-name()="id"]/text()

xpath将测试节点的名称并忽略名称空间。不推荐使用没有名称空间进行测试的做法,可能会很慢,但它可以工作。