groovy JMeter未为CSV数据集配置选择正确的动态文件名

fsi0uk1n  于 2023-06-28  发布在  其他
关注(0)|答案(1)|浏览(128)

在第一个线程组中,JSR 223采样器创建一个新文件,格式为Filename_HHMM,其中HHMM是docs文件夹中的当前小时和分钟。脚本以JSON的形式返回Filename_hhmm和其他对象。在第二个线程组中,JSR 223采样器用于从响应中提取文件名和其他对象,并将其存储为Filename_HHMM作为Props“NewFile”和其他具有其他prop名称的对象。
在第二个TG中的JSR 223之后添加CSV配置数据集,文件名为c://users//docs//${__P(NewFile)},希望csv配置文件将使用每分钟创建的新文件中的数据,并根据newfile中的测试数据处理进一步的HTTP采样器。试验持续时间为30 min。因此,将使用HHMM生成30个NewFile文件,csv配置文件需要选择当前小时和分钟的文件并执行测试。
我们注意到第一个TG,JSR 223采样器使用HHMM创建了正确的文件,并且NewFile也使用正确的文件名存储。但是CSV数据配置中的文件名正在使用旧的分钟文件,而不是当前hh & mm的NewFile。
假设我在上午10:30开始测试,Fileaname_1030在JSR 223 TG 1中创建并存储在docs文件夹中。JSR 223 TG 2将Fileaname_1030存储为NewFile。因此,Csv文件名应该是c://users//Fileaname_1030,但在日志中,csv文件名将是c://users//Fileaname_1025或某个旧时间。

hgncfbus

hgncfbus1#

查看JMeter测试元素执行顺序
1.配置元素
1.预处理器
1.计时器
1.取样器
1.后处理器(除非SampleResult为null)
1.Assert(除非SampleResult为null)
1.侦听器(除非SampleResult为null)
作为“配置元素”,CSV数据集配置在任何采样器之前执行。此外,文件名是在初始化过程中设置的,而且只设置一次
如果您想使用动态文件名-请考虑使用__CSVRead()函数
另一个可能的选择是更新一个CSV文件,而不是创建一个新的。
另外,如果您在Groovy中生成一些JSON,您可以简单地摆脱这个“文件”步骤,并直接使用JSR 223预处理器中的sampler shorthand设置HTTP请求采样器负载。

相关问题