import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.*; //XSSFWorkbook hook = "";
Workbook hook = "";
// try {
// book = new XSSFWorkbook(excelFile);
// } catch (Exception ex) {
// book = new HSSFWorkbook(new FileInputStream(excelFile));
// } try { InputStream inputStream = new FileInputStream(new File("/Users/iot/2.xlsx"));
hook = new XSSFWorkbook(inputStream);
print("========================"+hook);
inputStream.close(); } catch (Exception e) {
print("========================"+"Exception hook");
InputStream inputStream = new FileInputStream(new File("/Users/iot/2.xlsx"));
hook = new HSSFWorkbook(inputStream);
print("========================"+hook);
log.info("!!!!!!!!" + e.getMessage() + "!!!!!!!!!!!!!!!");
} if (!hook.equals("")) {
print("========================"+"create hook"); vars.putObject("hook", hook); } else {
print("========================"+"stop thread hook");
// hook=hook.createSheet("TestSuite");
// Row = hook.createRow(0);
// Row.createCell(0).setCellValue("DTC");
// vars.putObject("hook", hook); // SampleResult.setStopTestNow(true);
} int i = Integer.parseInt(vars.get("calc")); print("calc ========================"+i); XSSFRow row = vars.getObject("hook").getSheet("诗歌服务").getRow(i);
print("row ========================"+row);
vars.putObject("row", row); for (int j = 1; j <= vars.getObject("hook").getSheet("诗歌服务").getRow(0).getLastCellNum(); j++) { if (row.getCell(j) == null) {
row.createCell(j).setCellValue("");
}
} String caseNo = row.getCell(0).toString();
vars.put("caseNo",caseNo);
print(" caseNo---->>> "+"${caseNo}"); String input = row.getCell(1).toString();
vars.put("input",input);
print(" input---->>> "+"${input}"); String caseIntent = row.getCell(2).toString();
vars.put("caseIntent",caseIntent);
print(" caseIntent---->>> "+"${caseIntent}"); String caseDomain = row.getCell(3).toString();
vars.put("caseDomain",caseDomain);
print(" caseDomain---->>> "+"${caseDomain}"); String exp = row.getCell(4).toString();
vars.put("exp",exp);
print(" exp---->>> "+"${exp}");
 package excel;

 import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.instrument.ClassFileTransformer;
import java.text.SimpleDateFormat;
import java.util.Date; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPath;
import excel.CWResultFile.CWOutputFile;
import jxl.Cell;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException; public class CWResultFile { /** 导入jxl.jar;*后续扩充功能,sheet2增加测试报告展现;------待实现; */
public static class CWOutputFile {
public static void main(String[] args) throws RowsExceededException, WriteException, BiffException, IOException {
wOutputFile("/Users/iot/1.xls", "1", "“疑是地上霜”的下一句是什么", "GetNextPhrases", "诗歌服务", "举头望明月", "","", "{\"source\":\"third_chitchat\",\"asr\":{\"lang\":\"\",\"text\":\"\"},\"operation\":{},\"iscredible\":\"true\",\"confidence\":1,\"tts\":[{\"text\":\"举头望明月\\\"(唐代诗人李白《静夜思》)\",\"lang\":\"\",\"action\":{\"name\":\"\",\"param\":{\"duration\":0,\"url\":\"\",\"intent\":\"\",\"params\":null}}}],\"tags\":[\"\"],\"recomendation\":[],\"simqs\":null,\"gwdata\":{},\"tree\":{\"currentstate\":\"\",\"subtree\":null},\"expiration\":-79}", "", "", "");
}
/*
* wOutputFile方法写结果文件 wOutputFile(文件路径,案例编号,测试验证点,预期结果,实际结果,错误码,状态码,响应结果)
*/
public static void wOutputFile(String filepath, String caseNo, String testInput,String intent,String domain,String preResult,String fieldValue,String fresult,String rsp, String description,String tester,String sheetName)
throws IOException, RowsExceededException, WriteException, BiffException {
File output = new File(filepath);
if (!output.isFile()) {
output.createNewFile(); // 如果指定文件不存在,则新建该文件
WritableWorkbook writeBook = Workbook.createWorkbook(output);
WritableSheet Sheet = writeBook.createSheet(sheetName, 0); // createSheet(sheet名称,第几个sheet)
WritableFont headfont = new WritableFont(WritableFont.createFont("宋体"), 11, WritableFont.BOLD); // 字体样式
WritableCellFormat headwcf = new WritableCellFormat(headfont);
headwcf.setBackground(Colour.GRAY_25); // 灰色颜色
Sheet.setColumnView(0, 8); // 设置列宽度setColumnView(列号,宽度)
Sheet.setColumnView(1, 25);
Sheet.setColumnView(2, 10);
Sheet.setColumnView(3, 10);
Sheet.setColumnView(4, 10);
Sheet.setColumnView(5, 60);
Sheet.setColumnView(6, 10);
Sheet.setColumnView(7, 10);
headwcf.setAlignment(Alignment.CENTRE); // 设置文字居中对齐方式;
headwcf.setVerticalAlignment(VerticalAlignment.CENTRE); // 设置垂直居中;
//以下控制Label对应的位置
Label labe00 = new Label(0, 0, "No.", headwcf); // Label(列号,行号, 内容)//caseNo
Label labe10 = new Label(1, 0, "测试语句", headwcf);//testInput
Label labe20 = new Label(2, 0, "intent", headwcf); //intent
Label labe30 = new Label(3, 0, "domain", headwcf); //domain
Label labe40 = new Label(4, 0, "期望内容", headwcf); //preResult
Label labe60 = new Label(5, 0, "字段对应值", headwcf); //响应报文fieldValue
Label labe50 = new Label(6, 0, "测试结果", headwcf); //打印通过与否
Label labe70 = new Label(7, 0, "返回字符串", headwcf);//rsp
Label labe80 = new Label(8, 0, "说明", headwcf);
Label labe90 = new Label(9, 0, "测试人员", headwcf);
Sheet.addCell(labe00);
Sheet.addCell(labe10);
Sheet.addCell(labe20);
Sheet.addCell(labe30);
Sheet.addCell(labe40);
Sheet.addCell(labe50);
Sheet.addCell(labe60);
Sheet.addCell(labe70);
Sheet.addCell(labe80);
Sheet.addCell(labe90);
writeBook.write();
writeBook.close();
}
System.out.println(" %===================================================================================================% ");
String response=rsp;
JSONObject json = JSON.parseObject(response);
Object source = JSONPath.eval(json, "$.source");
Object text = JSONPath.eval(json, "$.tts[0].text");
Object intent_json = JSONPath.eval(json, "$['tts'][0]['action']['param']['intent']");
Object url = JSONPath.eval(json, "$['tts'][0]['action']['param']['url']"); String sou=JSONObject.toJSONString(source);
String tex=JSONObject.toJSONString(text);
String inte=JSONObject.toJSONString(intent_json);
String ur=JSONObject.toJSONString(url); String fieldReturnValue="source="+sou+";"+"text="+tex+";"+"intent="+inte+";"+"url="+ur;
System.out.println(" $$$$$$$$$$$$$$$$$$$$ "+fieldReturnValue);
fieldValue=fieldReturnValue;
String result = "";
InputStream instream = new FileInputStream(filepath);
Workbook readwb = Workbook.getWorkbook(instream);
WritableWorkbook wbook = Workbook.createWorkbook(output, readwb); // 根据文件创建一个操作对象
WritableSheet readsheet = wbook.getSheet(0);
// int rsColumns = readsheet.getColumns(); //获取Sheet表中所包含的总列数
int rsRows = readsheet.getRows(); // 获取Sheet表中所包含的总行数
/******************************** 字体样式设置 ****************************/
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.NO_BOLD);// 字体样式
WritableCellFormat wcf = new WritableCellFormat(font);
/***********************************************************************/
Cell cell1 = readsheet.getCell(0, rsRows);
if (cell1.getContents().equals("")) {
Label labetest1 = new Label(0, rsRows, caseNo); // 第1列--案例编号;
Label labetest2 = new Label(1, rsRows, testInput); // 第2列--测试语句验证测试点;
Label labetest3 = new Label(2, rsRows, intent); //intent
Label labetest4 = new Label(3, rsRows, domain);//domain
Label labetest5 = new Label(4, rsRows, preResult); //预期结果;
Label labetest6 = new Label(5, rsRows, fieldValue); //fieldValue返回字段约束值
System.out.println("*********************************响应结果************************************** "+rsp);
System.out.println("*********************************预期结果************************************** "+preResult);
System.out.println("*********************************实际结果************************************** "+fresult);
if (rsp.contains(preResult)) {
// if (preResult == fresult) {
result = "通过";
System.out.println("*********************************通过************************************** ");
wcf.setBackground(Colour.BRIGHT_GREEN); // 通过案例标注绿色
} else {
result = "不通过";
wcf.setBackground(Colour.RED); // 不通过案例标注红色
}
Label labetest7 = new Label(6, rsRows, result, wcf); // 第7列--通过与否 执行结果;
Label labetest8 = new Label(7, rsRows, rsp); // 第8列--响应结果
Label labetest9 = new Label(8, rsRows, description); // 第9列--描述说明
Label labetest10 = new Label(9, rsRows, tester); // 第10列--测试人员 readsheet.addCell(labetest1);
readsheet.addCell(labetest2);
readsheet.addCell(labetest3);
readsheet.addCell(labetest4);
readsheet.addCell(labetest5);
readsheet.addCell(labetest6);
readsheet.addCell(labetest7);
readsheet.addCell(labetest8);
readsheet.addCell(labetest9);
readsheet.addCell(labetest10);
}
wbook.write();
wbook.close();
}
} }

jmeter XLSX 读取的更多相关文章

  1. jmeter参数化读取数据进行多次运行

    jmeter参数化数据,可以使用csv,还可以使用数据库的方式 1.使用csv读取数据 在线程组中,配置原件中,选择csv data set config 1.本地创建了16个数据,存为test.tx ...

  2. Python xlsx 读取

    代码示例 #!/usr/bin/env python import xlrd, sys, re, os workbook = xlrd.open_workbook( sys.argv[1] )for ...

  3. Jmeter做读取csv接口测试

    最近在工作中,对jmeter实践的点滴的记录这里分享,不一定正确,仅供参考和讨论,有想法的欢迎留言.谈论. 1技巧1:从csv中获取带引号的数据详情 背景:我们从csv中获取数据,在jmeter中使用 ...

  4. xlsx 读取文件日期问题

    xlsx 的版本:0.13.5,可以取到日期 xlsx 的版本:0.14.3,取到的日期转为数字了,没有找到方法转为日期, 可以开启   cellDates: true,但是这个时区不对, dateN ...

  5. JMeter循环读取CSV文件实现接口批量测试

    首先要理解为什么要进行批量测试,当我们在工作中进行接口测试时,项目的接口肯定不止一个,而是很多很多,而且每个接口都需要进行正确参数,错误参数,参数为空,特殊字符等方式来测试接口是否能够正确返回所需的响 ...

  6. excel表格 xls、xlsx 读取

    public static void main(String[] args) throws Exception { // getdslContext(); String file = "F: ...

  7. sqlserver从xlsx读取数据

    exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Querie ...

  8. jmeter循环读取数据库中的数据

    1,添加一个jdbc请求 2,添加一个循环控制器,循环的次数为sql返回的记录数${var_#} 3,添加一个计数器(用来做变量拼接) 4,拼接变量,往目标接口发请求 最后脚本的构造如下:

  9. 解决:R读取含中文excel文件,read.xlsx乱码问题

    1.新建testexcel.xlsx文件 2.创建R文件:test.R # 定义文件变量 excel_path <- "chapter2/testexcel.xlsx" # ...

随机推荐

  1. linux系列(十七):whereis命令

    1.命令格式: whereis [-bmsu] [BMS 目录名 -f ] 文件名 2.命令功能: whereis命令是定位可执行文件.源代码文件.帮助文件在文件系统中的位置.这些文件的属性应属于原始 ...

  2. 浅谈CLOSE_WAIT

    浅谈CLOSE_WAIT 发表于2016-01-19 TCP 有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 TIME_WAIT 和 FIN_WAIT1,最近时不时听人提起 CLOSE_W ...

  3. vue+elementui 开发的网站IE浏览器加载白屏(不兼容)解决办法

    1.需要检查一下 export default { name: 'aa',-------vue的name是不可以重复的-----这个是决定性原因 data() { return {} } 2.变量声明 ...

  4. BZOJ1211树的计数

    裸的prufer结论. 给个小链接prufer序列 ,里面有一个性质4就是本题答案,严谨证明可以上网找一找,如果从多组组合角度理解也可以. 剩下的就是特判,n==1时,du==0,1个,du!=0,废 ...

  5. selenium反爬机制

    使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案,它通吃各种数据加载方式,能够绕过客户JS加密,绕过爬虫检测,绕过签名机制.它的应用,使得许多网站的反采集策略形同虚设.由于se ...

  6. Leetcode题目461:汉明距离(位运算-简单)

    题目描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意:0 ≤ x, y < 231. 示例: 输入: x = ...

  7. ngx.shared.DICT.get 详解

    ngx.shared.DICT.get 原文: ngx.shared.DICT.get syntax: value, flags = ngx.shared.DICT:get(key) context: ...

  8. java Calendar 小时值得到24进制格式

    Calendar cal = Calendar.getInstance(); cal.get(Calendar.HOUR_OF_DAY)

  9. JS 判断用户设备 移动端或桌面端

    |)|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAg ...

  10. Android绘图通用第三方控件

      https://github.com/ddanny/achartengine     CodePull requests 2SecurityInsights Charting library fo ...