如何正确使用xpath和; jmeter中的正则表达式提取器?

时间:2012-07-12 15:53:37

标签: regex xpath jmeter

我在HTML回复中有以下文字:

<input type="hidden" name="test" value="testValue">

我需要从上面的输入标签中提取值 我已经尝试了regexp和xpath提取器,但两者都不适用于我:

  • 正则表达式

    input\s*type="hidden"\s*name="test"\s*value="(.+)"\s*>
    
  • xpath查询

    //input[@name="test"]/@value
    

上述xpath在Xpath断言侦听器.. "No node matched"上给出错误。

我尝试了很多并得出结论,只有当我将它用作//input[@name]时,xpath才有效。

目前我正在尝试添加实际名称,因此会出现错误.. "No node matched"

有人可以建议我如何解决上述问题吗?

2 个答案:

答案 0 :(得分:2)

请看一下我之前的回答:

https://stackoverflow.com/a/11452267/169277

您的相关部分将是第3步:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Element;

String html = prev.getResponseDataAsString(); // get response from your sampler
Document doc = Jsoup.parse(html);
Element inputElement = doc.select("input[name=test]").first();
String inputValue = inputElement.attr("value");
vars.put("inputTextValue", inputValue);

<强>更新

所以你不要纠结于我创建的代码jMeter后处理器名为Html Extractor这里是github网址:

https://github.com/c0mrade/Html-Extractor

答案 1 :(得分:0)

由于您使用XPath Extractor解析HTML(而非XML)响应,请确保使用Tidy(容忍解析器)选项已检查(在XPath Extractor's control panel中)。

您的xpath查询看起来很好,请检查上面提到的选项然后重试。