JMeter xpath提取器不起作用

时间:2016-08-05 23:12:58

标签: xpath jmeter

说这个有效的html样本

<html>
<body>
    <select>
        <option value="123" selected></option>
        <option value="456"></option>
        <option value="789"></option>
    </select>
</body>
</html>

在chrome的开发者控制台中,我编写了这个xpath: $x('(//select/option)[1]/@value') 并正确得到了 [value="123"]

在JMeter 3.0中,我放置了相同的xpath选择器((//select/option)[1]/@value),但是,我总是得到NOT_FOUND值。我不确定为什么,但我的猜测是/@value可能是dom值?我知道这不是用前端javascript放入dom(jmeter没有解析),而是直接从服务器返回为html。

也许这只是我对xpath可以做什么和不能做什么的误解,但在任何一种情况下我都不确定为什么我的xpath选择器不起作用并且想要澄清如何获得这个值通过xpath。

2 个答案:

答案 0 :(得分:1)

我看到两个问题,一个是显而易见的,一个是可能的:

  1. 您的XPath表达式包含一个额外的(,将其删除
  2. 如果响应不符合XML / XHTML,则需要使用&#34; Tidy&#34;为了解析它。检查 jmeter.log 文件,如果您看到类似org.xml.sax.SAXParseException的内容 - 则表示XPath提取程序失败
  3. 您还可以使用&#34; XPath Tester&#34; View Results Tree监听器的模式,可以即时调试XPath表达式

    演示:

    XPath Extractor demo

    有关在JMeter测试中使用XPath进行关联的全面信息,请参阅Using the XPath Extractor in JMeter文章。

答案 1 :(得分:0)

为了提高性能,可维护性和易用性,我会使用CSS/JQuery Extractor而不是XPath。

基于JSOUP的Css表达式将是:

  

选项:当量(0)

请参阅:

enter image description here