参数化测试数据文件名-Jmeter
我在一个文件夹中有多个测试CSV文件(大约20个文件,每个文件中有一百万条记录(只有一列ID))。我想使用此数据运行性能测试 为了循环浏览这些文件,我取得了一些进展,但有一个问题让我束手无策。首先,我将解释到目前为止我所取得的成就,然后是我遇到的问题参数化测试数据文件名-Jmeter,jmeter,beanshell,Jmeter,Beanshell,我在一个文件夹中有多个测试CSV文件(大约20个文件,每个文件中有一百万条记录(只有一列ID))。我想使用此数据运行性能测试 为了循环浏览这些文件,我取得了一些进展,但有一个问题让我束手无策。首先,我将解释到目前为止我所取得的成就,然后是我遇到的问题 在线程组下添加了BeanShell采样器(脚本如下)。 它以文件路径作为值创建文件变量。 e、 g.file_1=/Users/code/JMeter活动/data/file_1.txt import java.io.*; File fileDir
e、 g.
file_1=/Users/code/JMeter活动/data/file_1.txt
import java.io.*;
File fileDir=新文件(“/Users/Code/JMeter活动/data”);
File[]fList=fileDir.listFiles();
int计数器=1;
for(文件:fList){
如果(!file.ishiden()){
put(“file_”+计数器,file.getAbsolutePath());
log.info(“文件+计数器+”=“+vars.get(“文件+计数器”);
计数器++;
}
}
ForEach
控制器添加到循环中。字段和值如下所示李>
输入变量前缀:文件循环的开始索引:0
输出变量名称:用户_文件
编号前添加uu-已选中
ForEach
controller的子级。
在道具中转换变量
props.put("UserFile", vars.get("USER_FILE"));
ForEach
controller的子项纤度计: 首先,我正在测试一个简单的场景-3个文件(file_1、file_2和file_3),每个文件中有一条记录 它在所有3个文件中循环(使用log.info、debug sampler、view results tree进行调试),但是数据仅来自最后一个文件。 所以对于文件1,数据来自文件3 另外,在jmeter.log中,jmeter.services.FileServer始终指向第三个文件
有没有更好的方法来参数化测试CSV文件?我想用第一个文件和第二个文件中的所有记录运行测试,依此类推。这将阻止服务器端缓存。在加载测试树期间填充文件路径,因此无法以这种方式参数化CSV数据集配置。您所能做的就是通过命令行参数定义属性,例如
jmeter -Jpath=/some/path.csv -n -t ....
并在CSV数据集配置中使用类似于${p(path,)}
的函数。但是这样你就不能迭代了
所以我建议考虑在执行过程中评估的函数,因此它可能包含变量
有关上述和其他JMeter功能的更多详细信息,请参阅用户手册章节和post系列 嗨,迪米特里,非常感谢你的回复。嗨,迪米特里,你能给我发一份测试计划吗?我已经编辑了你的文章,让它更具可读性。请仔细检查,确保它是有意义的,并进一步编辑它,如果我已经使它不太清楚。