用途:在编写脚本的时候,脚本移植到另一套系统使用时,原先准备的csv文件中数据可能存在错误;
同时,在把脚本进行不同服务器或者人员上进行移植使用时,可能因遗忘等原因导致发生缺失,故,可以把取参数化数据方式改为,用sql从数据库取数据,如系统账户密码等数据,然后使用java代码把这部分数据保存到csv文件中,供其他线程组使用
1、在测试计划中定义一个参数dataPath,用来做参数化路径
或者使用相对路径
2、新增一个JDBC Connection Configuration,用来连接oracle
3、新增一个setup线程组,在setup线程组中,新增一个JDBC request
4、在JDBC request下面新增一个BeanShell后置处理器,处理器中填入以下代码
import java.io.*;
byte[] result = prev.getResponseData();
String dataPath = vars.get("dataPath");
String file_name = dataPath+"\\tmp.csv";
String newcsvFile = dataPath+"\\reportcode.csv";
String line;
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
try {
BufferedReader br = new BufferedReader(new FileReader(file_name));
BufferedWriter bw = new BufferedWriter(new FileWriter(newcsvFile));
String line;
while ((line = br.readLine()) != null) {
String replacedLine = line.replaceAll(" ", ",");
bw.write(replacedLine);
System.out.println(replacedLine);
bw.newLine();
}
br.close();
bw.close();
file.delete();
} catch (IOException e) {
e.printStackTrace();
}
5、这样,在执行完毕后,就可以把sql查询结果,以CSV格式文件保存,共jmeter直接使用,