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. Java 中的 SimpleDateFormat 【 parse 和 format 】【转换时间格式】

    在 Java 里面有很多特别方便的函数(尽管术语可能不这么说)可以供我们使用,让一些本来要写好长好多的代码的事情变得仅仅几行就解决了. 在 SimpleDateFormat 中,有以下特定的规则: G ...

  2. 宏任务、微任务与Event Loop

    说到宏任务和微任务,我们就不得不提 Event Loop 了 JS的本质是单线: 1. 一般来说,非阻塞性的任务采取同步的方式,直接在主线程的执行栈完成. 2. 一般来说,阻塞性的任务都会采用异步来执 ...

  3. 启动Django项目报错

    今天一时手欠将电脑名字改成了中文,在启动Django或Flask项目的时候一直报下面的错误 问题描述: 环境配置成功,Django成功pip,运行项目报错,浏览器输入127.0.0.1:8000报错 ...

  4. Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". ”问题解决方法

    编译cartographer时遇到Unrecognized syntax identifier “proto3”. This parser only recognizes “proto2”.排查:使用 ...

  5. CF1174E Ehab and the Expected GCD Problem(动规+数论+分解)

    做法 先来填第一个数,为了保证\(f(p)\)最大,第一个数分解一下为\(\prod\limits_{p_i}p_i^{k_i}\)使得\(\sum\limits_{k_i}\)最大 显然第一个数为\ ...

  6. Linux下java环境变量配置

    安装步骤 1.查看当前Linux系统是否安装java rpm -qa | grep java 2.卸载系统中已经存在的openJDK rpm -e --nodeps java--openjdk-1.7 ...

  7. yum安装nginx添加upstream_check_module模块

    下载模块 upstream_check_module 查看yum安装nginx版本信息 # nginx -V nginx version: nginx/1.17.0 built by gcc 4.8. ...

  8. Gitlab 服务器搭建

    一.官网地址 首页:https://about.gitlab.com/ 安装说明:https://about.gitlab.com/installation/ 二.安装命令摘录 实际问题:yum 安装 ...

  9. lucene IndexOptions可以设置DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS DOCS,ES里也可以设置

    org.apache.lucene.index Enum Constants  Enum Constant and Description DOCS_AND_FREQS Only documents ...

  10. CV_Learn

    CV学习进度条记录,也是SRTP的进度记录. 阶段一(2019.4-2019.5): 1.opencv简单操作学习.(实现了一些基础操作,从颜色通道到边缘轮廓,2019.4.22完成) 2.linux ...