可以说,CSV文件(abc.csv)包含10条登录凭据(电子邮件,密码)记录,我想使用Beanshell脚本一次性获取这些值,以确保CSV只能打开一次,避免打开CSV文件10次以获取每条记录,这会产生以下错误问题:
“响应数据中的打开文件太多”。
有什么办法吗?
答案 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;将由你想到的解决方法修复。
恕我直言,它只会让你的测试更难以维护,而且可扩展性更低。这是您帐户的服务器配置问题。
您应该将有关建议的内容应用于您: