JMeter(Bean Shell Sampler) + Git + Jenkins - Bean Sampler 脚本不读取 csv 文件
JMeter(Bean Shell Sampler) + Git + Jenkins - Bean Sampler script not Reading the csv file
我在 Jmeter 中创建了 API 个测试并提交到 GIT 分支。
我所有的 JMeter 测试都是从 Jenkins Pipeline 作业执行的。
问题:
在 Jmeter 测试中,我使用了一个从 CSV 文件读取数据的 bean shell 采样器。参考下面的代码。
LineNumberReader lineReader = new LineNumberReader(new FileReader(new File("${csv}")));
String line = null;
int count = 1;
while ((line = lineReader.readLine()) != null) {
String[] Test_details = line.split(",");
props.put("Test_id_" + count, Test_details[0]);
props.put("scenario_id_" + count, Test_details[1]);
count++;
}
lineReader.close();
在上面的脚本中,CSV 路径引用自 Jmeter 中的用户定义变量 (csv = 'FilePath')
当我从 Jenkins 执行测试时,未检索到 CSV 文件中的数据并且测试失败。
注意:当我从本地计算机执行时,会从 CSV 中检索数据并通过测试。
从 Jenkins 执行时,CSV 路径在用户定义的变量中给出。
csv = apitests\src\test\jmeter\data\Testdata.csv
以下是文件夹结构
Folder Struture
如果您 运行 通过 JMeter Maven plugin the test base directory (a.k.a Java user.dir 测试)看起来像:
target/somerandomguid/jmeter/bin
因此,如果您需要获取文件的相对路径,则需要向上移动 4 个级别,然后转到 src/test/jmeter/data,例如:
new File("../../../../src/test/jmeter/data/Testdata.csv")
还要注意 starting from JMeter 3.1 you're supposed to be using JSR223 Test Elements and Groovy language for scripting so it might be a good chance for the change. More information: Apache Groovy - Why and How You Should Use It
我在 Jmeter 中创建了 API 个测试并提交到 GIT 分支。 我所有的 JMeter 测试都是从 Jenkins Pipeline 作业执行的。
问题: 在 Jmeter 测试中,我使用了一个从 CSV 文件读取数据的 bean shell 采样器。参考下面的代码。
LineNumberReader lineReader = new LineNumberReader(new FileReader(new File("${csv}")));
String line = null;
int count = 1;
while ((line = lineReader.readLine()) != null) {
String[] Test_details = line.split(",");
props.put("Test_id_" + count, Test_details[0]);
props.put("scenario_id_" + count, Test_details[1]);
count++;
}
lineReader.close();
在上面的脚本中,CSV 路径引用自 Jmeter 中的用户定义变量 (csv = 'FilePath')
当我从 Jenkins 执行测试时,未检索到 CSV 文件中的数据并且测试失败。
注意:当我从本地计算机执行时,会从 CSV 中检索数据并通过测试。
从 Jenkins 执行时,CSV 路径在用户定义的变量中给出。 csv = apitests\src\test\jmeter\data\Testdata.csv
以下是文件夹结构 Folder Struture
如果您 运行 通过 JMeter Maven plugin the test base directory (a.k.a Java user.dir 测试)看起来像:
target/somerandomguid/jmeter/bin
因此,如果您需要获取文件的相对路径,则需要向上移动 4 个级别,然后转到 src/test/jmeter/data,例如:
new File("../../../../src/test/jmeter/data/Testdata.csv")
还要注意 starting from JMeter 3.1 you're supposed to be using JSR223 Test Elements and Groovy language for scripting so it might be a good chance for the change. More information: Apache Groovy - Why and How You Should Use It