在JMeter中,如何捕获正则表达式的多个(变化)值?

时间:2017-06-06 12:19:44

标签: regex jmeter

我需要解析一个可以包含多个(未指定的多少)链接的html页面。 这是一个例子(伪html):

<a href="../entrygroups/GROUPIDENTIFIER/3">edit</a>
[...]
<a href="../entrygroups/GROUPIDENTIFIER/7">edit</a>
[...]
<a href="../entrygroups/GROUPIDENTIFIER/12">edit</a>
[...]
<a href="../entrygroups/GROUPIDENTIFIER/16">edit</a>

我基本上只对网址的371216感兴趣。

有没有办法将这些值放入某种数组并循环遍历它们(在各种方式中)。

这可能吗?如果可以,我该怎么做? 我查看了正则表达式提取器,但似乎只能将一组固定的组分配给一组固定的变量。

2 个答案:

答案 0 :(得分:2)

实际上,如果指定匹配编号字段小于0,则RegEx提取器能够完全按照您的要求执行操作。 -1

enter image description here

因此,您将获得 N 变量(以输入为例):

id_1=3
id_2=7
id_3=12
id_4=16

还会有一个具有匹配数的变量:

id_matchNr=4

答案 1 :(得分:2)

  1. 使用如下配置的正则表达式提取器提取值:

    • 参考名称:任何有意义的内容,即edit
    • 正则表达式:<a href="../entrygroups/GROUPIDENTIFIER/(.+?)">edit</a>
    • 模板:$1
    • 比赛号码:-1

      JMeter Regular Expression Extractor

  2. 添加ForEach Controller配置如:

    • 输入变量前缀:edit(或您用作正则表达式提取器参考名称的任何内容)
    • 输出变量前缀:再次有意义,即current_edit

      enter image description here

  3. 将您需要的采样器放在ForEach控制器下
  4. 请参阅&#34; GROUPIDENTIFIER&#34;值必须为${current_edit}

    JMeter Regular Expression Extractor Looping Values

  5. 请参阅Using Regular Expressions in JMeter指南,了解使用正则表达式提取器和ForEach控制器循环遍历页面中所有链接的另一个示例。