jmeter使用正则表达式来获取链接文本

时间:2014-10-27 10:24:25

标签: regex jmeter

我想使用jmeters正则表达式提取器来捕获我所拥有的HTTP响应的链接。我如何只抓住<a href="TEXT"></a>内的什么?我想要 TEXT

<a([^>]+)>(.+?)<\/a>

上面的表达式为我提供了a标签和href。

的完整链接

3 个答案:

答案 0 :(得分:3)

我建议不要使用正则表达式从HTML获取数据,因为href属性可能位于不同的位置,新行等。有关详细说明,请参阅SO上的epic comment

JMeter提供了2个测试元素,可用于从HTML页面链接中提取href属性:

XPath示例

  1. 将XPath Extractor添加为请求的子级(就像正则表达式提取器一样)
  2. 按如下方式配置:
    • 如果您的回复不符合XHTML,请选中Use Tidy
    • 参考名称 - 任何有意义的内容,即href
    • XPath查询 - //a/@href
  3. 您可以在当前线程组中的任何位置将提取的链接URL称为${href}
  4. 如果有多个匹配项,则可以${href_1} ${href_2}等方式访问网址。
  5. 有关XPath Extractor的详细信息,请参阅Using the XPath Extractor in JMeter指南

    CSS / JQuery示例

    1. 将CSS / JQuery Extractor添加为请求的子项
    2. 按如下方式配置:
      • 参考名称 - 任何变量名称,即href
      • CSS / JQuery表达式 - a
      • 属性 - href
      • 匹配号码:
        • 默认为blank - 将返回第一个链接
        • any number > 0 - 将返回匹配号
        • 0 - 将返回随机链接网址
        • -1 - 将返回所有链接网址,并将其存储为${href_1} ${href_2}等。
    3. 对于CSS / JQuery表达式构建信息,请参阅JSOUP selector syntax guide

答案 1 :(得分:0)

试试这个:

<a[^>]* href="([^"]*)"

regular expression for finding 'href' value of a <a> link

答案 2 :(得分:0)

试试这个。

使用组1从标记中获取内容。

<a(?: [^>]+)?>((?:(?!<\/?a[ >]).)*)<\/a>

查看演示: http://regex101.com/r/rV3eH6/1