在JMeter中使用简单数据编写器的变量和/或属性
使用JMeterV5.1.1,我将设置一个动态文件路径和名称,以便与简单的数据编写器一起使用。我想尽一切办法都试过了,但没有用。我尝试过的事情:在JMeter中使用简单数据编写器的变量和/或属性,jmeter,Jmeter,使用JMeterV5.1.1,我将设置一个动态文件路径和名称,以便与简单的数据编写器一起使用。我想尽一切办法都试过了,但没有用。我尝试过的事情: JSR223预处理器(作用域为同一线程组),它在变量中存储动态路径/名称,并在简单数据编写器中使用变量 连续执行线程组。在属性中存储动态路径/名称的JSR223采样器中使用启动线程,并在Simple Data Writer中使用\u P函数检索路径/名称。如果我在测试结束时不删除属性,此方法将从上一次运行中提取属性值 连续执行线程组。将启动线程与JS
- JSR223预处理器(作用域为同一线程组),它在变量中存储动态路径/名称,并在简单数据编写器中使用变量
- 连续执行线程组。在属性中存储动态路径/名称的JSR223采样器中使用启动线程,并在Simple Data Writer中使用
函数检索路径/名称。如果我在测试结束时不删除属性,此方法将从上一次运行中提取属性值李>\u P
- 连续执行线程组。将启动线程与JSR223采样器一起使用,该采样器在属性中存储动态路径/名称。运行JSR223预处理器,它将全局属性存储为线程组中的变量,并使用Simple Data Writer中的变量检索路径/名称。我也用这种方法尝试了
函数。如果我在测试结束时不删除属性,此方法将从上一次运行中提取属性值李>\uv
log.info
正确设置路径/名称。我还可以在使用调试采样器时看到它们的设置,但由于某些原因,简单的数据编写器似乎没有将它们提取出来。如果我在运行之前设置了变量,它就可以正常工作。这似乎是一个操作顺序问题,或异步/多线程问题,但我不确定如何继续。任何指导都将不胜感激
下面是一个复制该行为的示例:
假的
真的
真的
持续
假的
1.
1.
1.
假的
棒极了
真的
导入org.apache.jmeter.services.FileServer;
//获取当前操作系统的分隔符
字符串分隔符=File.separator;
//使用{current directory}}/csv作为路径
字符串路径=FileServer.getFileServer().getBaseDir()+分隔符+“csv”+分隔符;
//如果没有创建目录'不存在
(新文件(路径)).mkdirs();
log.info(路径);
//将路径保存到属性
放置(“数据文件路径”,路径);
棒极了
真的
导入org.apache.jmeter.services.FileServer;
导入java.time.*;
导入java.time.format.*;
//获取格式为yyyyMMddHHmm的当前日期/时间
String formattedDateTime=LocalDateTime.now().format(DateTimeFormatter.ofPattern(“yMMddHHmm”);
//获取当前正在运行的脚本的名称
字符串scriptName=FileServer.getFileServer().getScriptName();
//将文件名另存为scriptName(减去文件扩展名),末尾带有时间戳
字符串文件名=scriptName.take(scriptName.lastIndexOf('')+“?”+formattedDateTime+“.csv”;
log.info(文件名);
//将文件名设置为属性
put(“数据文件名”,文件名);
持续
假的
1.
2.
1.
假的
真的
真的
真的
真的
假的
假的
保存配置
真的
真的
真的
真的
真的
true
真的
真的
真的
假的
假的
真的
假的
假的
假的
真的
假的
假的
假的
真的
0
真的
真的
真的
真的
真的
真的
${{uuu P(数据文件路径)}${{uu P(数据文件名)}
jsonplaceholder.typicode.com
https
/待办事项/1
得到
真的
假的
真的
假的
“组名”:[“${uuuup(组名${{uuuuu随机(1,${uuuuuu属性(组名{umatchnr})})}”]
持续
假的
1.
1.
1.
假的
棒极了
真的
移除(“数据文件路径”);
props.remove(“数据文件名”);
假的
保存配置
真的
真的
真的
真的
真的
true
真的
真的
真的
假的
真的
真的
假的
假的
假的
真的
假的
假的
假的
真的
0
真的
真的
真的
真的
真的
真的
您可以使用逐步调试程序调试此问题。如果可以的话,您还可以使用内置的JMeter函数来完成您的需求。因为内置的JMeter函数在侦听器路径中运行良好。您可以使用逐步调试程序调试此问题。如果可以的话,您还可以使用内置的JMeter函数来完成您的需求。因为内置的JMeter函数在侦听器路径中工作得很好。我认为您不能在的文件名字段中使用,事实上您可以,但它将返回默认值1
,因此当您运行名为11
的测试文件时,将在您运行的文件夹中生成
jmeter -n -t test.jmx -l csv/%date:~10,4%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%.csv
jmeter -n -t test.jmx -l csv/`date +%Y%m%d%H%M`.csv