需要用到外部excel来管理数据,但是不同版本之间的数据不一样。 处理方法是判断环境,然后将该环境的excel复制到一个空白的excel,而这个excel就是运行的时候调用的excel。 代码如下 :
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;
def String toExcel = context.expand('${projectDir}/DataSource/3.xlist/Results.xls'); // jenkins 上要参数化路径 ,这路径是data source指定路径 。
def String fromExcelQA = context.expand('${projectDir}/DataSource/3.xlist/ResultsQA.xls}');
def String fromExcelTP = context.expand('${projectDir}/DataSource/3.xlist/ResultsTP.xls');
File t = new File(toExcel);
File s1 = new File(fromExcelQA);
File s2 = new File(fromExcelTP);
def project_level = testRunner.testCase.testSuite.project;
env = project_level.getPropertyValue("Env");
env = "TP";
if (env == "QA"){
copyExcel(s1, t);
}
else {
copyExcel(s2, t);
}
//利用java的文件通道来复制excel,更快捷,代码量更少。
public copyExcel(File s, File t){
FileInputStream fi = null; //让对象初始化为空
FileOutputStream fo = null;
FileChannel from = null;
FileChannel out = null;
try {
fi = new FileInputStream(s);
fo = new FileOutputStream(t);
from = fi.getChannel(); //得到对应的文件通道
out = fo.getChannel(); //得到对应的文件通道
from.transferTo(0, from.size(), out); //连接两个通道,并且从in通道读取,然后写入out通道
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fi.close();
from.close();
fo.close();
out.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}