JMeter:如何从beanshell脚本中获取和使用csv值,以避免“打开太多文件”错误?

时间:2016-08-05 10:21:46

标签: jmeter fetch beanshell

可以说,CSV文件(abc.csv)包含10条登录凭据(电子邮件,密码)记录,我想使用Beanshell脚本一次性获取这些值,以确保CSV只能打开一次,避免打开CSV文件10次以获取每条记录,这会产生以下错误问题:

“响应数据中的打开文件太多”

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用以下内容执行此操作:

import org.apache.jmeter.threads.JMeterContextService;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Hashmap;
import java.util.Map;

File csvFile = new File("/home/yourname/folder/csvFile.csv");
csvData = new Hashmap<String,String>();

csvData = null;

try (Scanner scanner = new Scanner(csvFile)) {
    while (scanner.hasNextLine()) {
        String[] line = scanner.nextLine().split(",");
        csvData.put(line[0],line[1]);
    }
} catch (FileNotFoundException ex) {
    ex.printStackTrace();
}

JMeterContextService.getContext().getVariables().put("csvHashmap", csvData);

这可以在开始时完成,你只需打开文件一次,然后使用存储在内存中的哈希映射对象。

答案 1 :(得分:0)

我不会认为你的问题太多,打开过多的文件&#34;将由你想到的解决方法修复。

恕我直言,它只会让你的测试更难以维护,而且可扩展性更低。

这是您帐户的服务器配置问题。

您应该将有关建议的内容应用于您: