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

Groovy JMeter从正则表达式中提取所有值并存储在csv中,groovy,jmeter,beanshell,Groovy,Jmeter,Beanshell,我正在尝试从多个正则表达式中提取正则表达式提取器中提取的所有值,并将其存储为csv格式 在每次提取值之后,我都尝试了每个控制器,但控制器一次只允许一个变量。我需要在一个csv中提取多个变量,作为数据准备和输入到另一个脚本的一部分。你知道我怎样才能达到这个要求吗。感谢在正则表达式提取器中,使用匹配号as-1获取多个值。然后使用每个控制器获取值,如每个变量_1、每个变量_2等。或者,您可以直接获取值,如var_1、var_2。这里,var是正则表达式创建变量的名称 然后,使用JSR223后处理器将提

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


在每次提取值之后,我都尝试了每个控制器,但控制器一次只允许一个变量。我需要在一个csv中提取多个变量,作为数据准备和输入到另一个脚本的一部分。你知道我怎样才能达到这个要求吗。感谢

在正则表达式提取器中,使用匹配号as-1获取多个值。然后使用每个控制器获取值,如每个变量_1、每个变量_2等。或者,您可以直接获取值,如var_1、var_2。这里,var是正则表达式创建变量的名称

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

此外,如果要为每个控制器使用,请注意以下几点:-

JMeter将把循环索引作为一个名为jm_uidx的变量公开。例如,如果您的循环控制器是 命名为FEC,则可以通过 ${uuuujm\uuufec\uuuuidx}。索引从0开始

在正则表达式提取器之后添加 将以下代码放入脚本区域:

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

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

更多信息:


谢谢你的及时回复。对于每个控制器,我需要为每个正则表达式创建多个控制器,因为控制器在输入变量索引中不接受多个变量,我正在寻找一种解决方案,通过编程将返回值存储到数组中,并在单个文件中使用逗号将每个变量打印到csv,因为我有15个以上的变量要捕获。感谢Dmitri的及时响应。如果我们只有一个变量,您提供的解决方案效果很好。请您帮助我扩展您提供的代码以提取多个变量,即从包含多个用逗号分隔的正则表达式的响应中提取多个变量。感谢您不能有多个来自单个正则表达式提取器的变量。如果你有2个提取器,你可以使用类似csv的东西,谢谢,请参阅下面我使用的代码。我不理解将变量打印到文件中的逻辑。我需要帮助从代码的第二行提取第二个变量的值。def csv=新文件my.csv 1.uptovars.getvar1_matchNr vars.getvar2_matchNr as int,{csv我使用了两个正则表达式提取,并试图将数组的返回值打印到csv中。我对groovy不太熟悉,不知道如何将第二个变量初始化到upto方法中。@DmitriT这仅在存储的变量的数据类型为int时起作用。当您有字符串时,该怎么办?