【问题标题】:In JMeter how can I capture multiple (varying) values of a regular expression?在 JMeter 中,如何捕获正则表达式的多个(变化)值?
【发布时间】:2017-07-10 17:34:21
【问题描述】:

我需要解析一个可以包含多个(未指定多少)链接的 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>

我基本上只对url的数字3,7,12,16感兴趣。

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

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

【问题讨论】:

标签: regex jmeter


【解决方案1】:
  1. 使用配置如下的正则表达式提取器提取值:

    • 参考名称:任何有意义的名称,即edit
    • 正则表达式:&lt;a href="../entrygroups/GROUPIDENTIFIER/(.+?)"&gt;edit&lt;/a&gt;
    • 模板:$1
    • 匹配号:-1

  2. 添加ForEach Controller 配置如下:

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

  3. 将您需要的采样器放在 ForEach 控制器下
  4. 在需要时将“GROUPIDENTIFIER”值引用为${current_edit}

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

【讨论】:

    【解决方案2】:

    如果您指定小于 0 的 Match No. 字段,例如,RegEx 提取器实际上可以完全按照您的意愿进行操作。 -1

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

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

    还有一个有匹配计数的变量:

    id_matchNr=4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2020-01-02
      • 2020-09-25
      • 1970-01-01
      相关资源
      最近更新 更多