前面39/40节讲了在beanshell写java代码、在beanshell中引用java文件,除了这两种方式外,在beanshell中还可以调用class文件。
将40节中的specialProcess.java文件编译成class文件,在windows命令行使用javac 待编译的文件位置
执行后会在同文件夹下生成一个同名的class文件
在beanshell中调用class文件,通过beanshell的关键字addClassPath
addClassPath("class文件路径");
通过import导入类名
import specialProcess;
创建类对象sp,调用specialProcess方法,将处理的字符串作为参数传入
specialProcess sp=new specialProcess();
String pd1=sp.specialPr("${priceDetail_1}");
String pd2=sp.specialPr("${priceDetail_2}");
完整代码如下:可实现查询时效接口结果存入csv文件
//在beanshell中调用class文件
//通过beanshell的关键字addClassPath
addClassPath("E:/Users/xxx/desktop/ljd/jmeterscripts/csdn");
//import导入类名
import specialProcess;
//定义一个写入csv文件的地址
//String filePath1 = "D://xntest//result.csv";
String filePath1 ="${filePath1}";
//创建类对象sp
specialProcess sp=new specialProcess();
String pd1=sp.specialPr("${priceDetail_1}");
String pd2=sp.specialPr("${priceDetail_2}");
//创建写入对象
FileWriter fw=new FileWriter(filePath1,true);
BufferedWriter bw=new BufferedWriter(fw);
//读取csv文件字段值,写入result.csv,逗号表示字段间的分隔符,需要用英文逗号
bw.write("${originprovince}"+",");
bw.write("${origincity}"+",");
bw.write("${origindistrict}"+",");
bw.write("${destprovince}"+",");
bw.write("${descity}"+",");
bw.write("${desdistrict}"+",");
//将查询时效的提取值写入
bw.write("${reachTime_1}"+",");
//bw.write("${priceDetail_1}"+",");
bw.write(pd1+",");
bw.write("${reachTime_2}"+",");
//最后一个字段写入后需要用换行符\n
//bw.write("${priceDetail_2}"+"\n");
bw.write(pd2+"\n");
bw.flush();
fw.close();