JMeter从正则表达式提取所有值并将其存储在csv中

时间:2018-07-11 12:00:22

标签: groovy jmeter beanshell

我正在尝试从多个正则表达式中提取正则表达式提取器中的所有提取值,并将其存储为csv格式。

我尝试过在每次提取值后为每个控制器进行操作,但是控制器一次只允许一个变量。我需要在单个csv中提取多个变量作为数据准备的一部分,并输入到另一个脚本中。任何想法我怎么能达到这个要求。谢谢

2 个答案:

答案 0 :(得分:1)

  1. 在正则表达式提取器之后添加JSR223 PostProcessor
  2. 将以下代码放入“脚本”区域:

    def csv = new File("my.csv")
    1.upto(vars.get("foo_matchNr") as int, {
        csv << vars.get("foo_$it") << System.getProperty("line.separator")  
    })
    
  3. 使用所需的CSV文件名重新命名my.csv,并使用在正则表达式提取器中定义的变量的参考名重新命名foo

  4. 运行脚本后,您将在JMeter的“ bin”文件夹中看到一个新的CSV文件,其中包含来自正则表达式提取器的值,每个值都在新行上

    JMeter Write Values from Extractor to CSV file

更多信息:

答案 1 :(得分:0)

在正则表达式提取器中,使用“匹配编号”。为-1以获取多个值。然后使用每个控制器来获取诸如Everyvariable_1,Everyvariable_2等的值。或者,您可以直接获取诸如var_1,var_2之类的值。在这里,var是正则表达式创建的变量的名称。

然后,使用JSR223后处理器并将提取的值写入csv。 希望这会有所帮助。

此外,如果使用“对于每个控制器”,请注意以下几点:-

  

JMeter将循环索引显示为名为 jm __ idx的变量。例如,如果您的循环控制器是   名为FEC,那么您可以通过以下方式访问循环索引   $ {__ jm__FEC__idx}。索引从0开始