上一节中讲了在beanshell中直接写java代码使用,如果开发人员跟你说有个现成的处理逗号双引号的方法,你只需要把要处理的字符串传给他就行了,那咋整?
今天要说的一种方法是开发人员可以直接提供这个方法的java文件,我们在beanshell中引入这个java文件就可以调用他的方法了。
比如说上一节中这个处理逗号双引号的方法,在eclipse中新建一个名为specialProcess的java文件,默认class就是这个名字,在这个类下编写一个名为specialPr的方法,接收参数为pd
有了这个java文件,我们在beanshell中进行加载,通过beanshell的关键字source加载源码,source(),括号中可以是绝对路径也可以是相对路径,不知道的同学可以去参考
Jmeter书中不会教你的(35)——相对路径和绝对路径_agrapea的博客-CSDN博客
source("specialProcess.java");
加载好源文件后可以直接使用 类名.方法名(参数),将处理后的字符串赋值给新的变量,用新的变量值写入csv文件
String pd1=specialProcess.specialPr("${priceDetail_1}");
完整代码如下,大家可以和上一节中直接写方法的对比下,多思考想要解决什么问题,再去找解决方案
//在beanshell中引入本地java文件
//通过beanshell的关键字source加载源码
source("specialProcess.java");
//定义一个写入csv文件的地址
//String filePath1 = "D://xntest//result.csv";
String filePath1 ="${filePath1}";
//创建类对象sp
//specialProcess sp=new specialProcess();
//String pd1=sp.specialProcess("${priceDetail_1}");
//String pd2=sp.specialProcess("${priceDetail_2}");
String pd1=specialProcess.specialPr("${priceDetail_1}");
String pd2=specialProcess.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();