jmeter XLSX 读取
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 读取的更多相关文章
- jmeter参数化读取数据进行多次运行
jmeter参数化数据,可以使用csv,还可以使用数据库的方式 1.使用csv读取数据 在线程组中,配置原件中,选择csv data set config 1.本地创建了16个数据,存为test.tx ...
- Python xlsx 读取
代码示例 #!/usr/bin/env python import xlrd, sys, re, os workbook = xlrd.open_workbook( sys.argv[1] )for ...
- Jmeter做读取csv接口测试
最近在工作中,对jmeter实践的点滴的记录这里分享,不一定正确,仅供参考和讨论,有想法的欢迎留言.谈论. 1技巧1:从csv中获取带引号的数据详情 背景:我们从csv中获取数据,在jmeter中使用 ...
- xlsx 读取文件日期问题
xlsx 的版本:0.13.5,可以取到日期 xlsx 的版本:0.14.3,取到的日期转为数字了,没有找到方法转为日期, 可以开启 cellDates: true,但是这个时区不对, dateN ...
- JMeter循环读取CSV文件实现接口批量测试
首先要理解为什么要进行批量测试,当我们在工作中进行接口测试时,项目的接口肯定不止一个,而是很多很多,而且每个接口都需要进行正确参数,错误参数,参数为空,特殊字符等方式来测试接口是否能够正确返回所需的响 ...
- excel表格 xls、xlsx 读取
public static void main(String[] args) throws Exception { // getdslContext(); String file = "F: ...
- sqlserver从xlsx读取数据
exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Querie ...
- jmeter循环读取数据库中的数据
1,添加一个jdbc请求 2,添加一个循环控制器,循环的次数为sql返回的记录数${var_#} 3,添加一个计数器(用来做变量拼接) 4,拼接变量,往目标接口发请求 最后脚本的构造如下:
- 解决:R读取含中文excel文件,read.xlsx乱码问题
1.新建testexcel.xlsx文件 2.创建R文件:test.R # 定义文件变量 excel_path <- "chapter2/testexcel.xlsx" # ...
随机推荐
- 【原创】go语言学习(十六)接口
目录 接口介绍与定义 空接口和类型断言 指针接收和值接收区别 接口嵌套 接口介绍与定义 1. 接口定义了一个对象的行为规范 A. 只定义规范,不实现B. 具体的对象需要实现规范的细节 2.Go中接口定 ...
- FF,NF,BF
设计一个可变式分区分配的存储管理方案.并模拟实现分区的分配和回收过程. 对分区的管理法可以是下面三种算法之一: 首次适应算法 循环首次适应算法 最佳适应算法 对于测试样例 : 首地址 大 ...
- nmon服务器性能结果报告分析
一.nmon命令 ./nmon_x86_64_centos7 -f -s 10 -c 60 -m ./log/ 命令的含义是: -f :按标准格式输出文件名称:<hostname>_YY ...
- idea创建Web项目(基于Maven多模块)
简述:通常我们开发的项目结构是由多个modules项目组合而成,并且由有个parent的maven项目整体管理.废话少说,直接进入创建过程. 创建parent项目 1.打开idea工具,按照下图操作, ...
- 我的公众号:WebHub
欢迎各位小可爱关注我的公众号WebHub(ID:myWebHub),公众号不定期更新软件行业的总结性文章,内容包括行业趋势和软件哲学,文章不谈技术只谈思想,满满干货! 此外,公众号文章同步CSDN博客 ...
- 解决用root用户及密码可以直接登陆某LINUX系统,但是用ssh登陆,系统却总是提示密码不对
引用 vi /etc/ssh/sshd_config 将PermitRootLogin项改为yes service sshd restart 重启sshd服务即可
- linux tcp 高并发最大连接数
Linux下高并发socket最大连接数所受的限制问题 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统 ...
- TynSerial基本数据类型序列(还原)
TynSerial基本数据类型序列(还原) procedure TForm1.ToolButton17Click(Sender: TObject); var serial: TynSerial; be ...
- mac使用vnc远程登录ubuntu16.04桌面
mac使用vnc远程登录ubuntu16.04桌面 1.安装在Ubuntu上安装x11vnc,如下: sudo apt-get install x11vnc 2.配置vnc密码 x11vnc -sto ...
- bad object refs/remotes/origin/HEAD
How to handle git gc fatal: bad object refs/remotes/origin/HEAD error: failed to run repack I random ...