packagecom.kit;importcom.alibaba.excel.EasyExcel;importcom.server.module.scene.ApiStatusVO;importcom.server.module.scene.TestReportVO;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;public classExcelKit {public static void parseExcelAndSave(ListapiStatusVOS,String fileName){
EasyExcel.write(fileName, TestReportVO.class)
.head(head("我是一个标题头","描述:本次压测针对UXX常用接口进行压力测试;"))
.registerWriteHandler(newCustomCellWriteHandler())
.sheet("TestReport")
.doWrite(data(apiStatusVOS));
}/*** Api 返回内容 数据不全,先自定义赋值
*@paramstatusVOS
*@return
*/
private static List data(ListstatusVOS){
List dataList = new ArrayList<>();
statusVOS.forEach(ApiStatusVO->{
TestReportVO status= newTestReportVO();//@ExcelProperty("压测接口名称")
status.setTestName(ApiStatusVO.getApiName());//@ExcelProperty("压测时间")
status.setTestDate(newDate());//@ExcelProperty("压测时常(s)")
status.setTestDuration("100");//@ExcelProperty("平均吞吐量(s)")
status.setTestHandlingCapacity("101");//@ExcelProperty("平均响应时间(s)")
status.setTestResponseTime(ApiStatusVO.getApiRt());//@ExcelProperty("最大响应时间(s)")
status.setTestMaxResponseTime("102");//@ExcelProperty("错误率(%)")
status.setTestErrorRate("13.18");//@ExcelProperty("数据库CPU(User)(%)")
status.setTestCpuPercentum("15.18");//@ExcelProperty("数据库TCP连接数")
status.setTestTcpLinkNum("105");//@ExcelProperty("连接池大小")
status.setTestLinkPooSize("106");//@ExcelProperty("网络流量(上传/Mbps)(Min)")
status.setTestMinFlow("107");//@ExcelProperty("网络流量(上传/Mbps)(Max)")
status.setTestMaxFlow("108");
dataList.add(status);
});returndataList;
}/*** 自定义头
*@paramheadTitle 统一头
*@paramheadDescTitle 描述头
*@return返回整个头list。 头部相同连续的单元格会自动合并。*/
private static List>head(String headTitle, String headDescTitle){
List> list = new ArrayList>();//压测名称 压测时间 压测时常(s)平均吞吐量(s) 平均响应时间(s) 最大响应时间(s) 错误率(%) 数据库CPU(User)(%) 数据库TCP连接数 连接池大小 网络流量(上传/Mbps) 网络流量(下载/Mbps)
List head1 = new ArrayList();
head1.add(headTitle);
head1.add(headDescTitle);
head1.add(headDescTitle);
head1.add(headDescTitle);
head1.add(headDescTitle);
head1.add(headDescTitle);
head1.add(headDescTitle);
head1.add("压测名称");
List head2 = new ArrayList();
head2.add(headTitle);
head2.add(headDescTitle);
head2.add(headDescTitle);
head2.add(headDescTitle);
head2.add(headDescTitle);
head2.add(headDescTitle);
head2.add(headDescTitle);
head2.add("压测时间");
List head3 = new ArrayList();
head3.add(headTitle);
head3.add(headDescTitle);
head3.add(headDescTitle);
head3.add(headDescTitle);
head3.add(headDescTitle);
head3.add(headDescTitle);
head3.add(headDescTitle);
head3.add("压测时常(s)");
List head4 = new ArrayList();
head4.add(headTitle);
head4.add(headDescTitle);
head4.add(headDescTitle);
head4.add(headDescTitle);
head4.add(headDescTitle);
head4.add(headDescTitle);
head4.add(headDescTitle);
head4.add("平均吞吐量(s)");
List head5 = new ArrayList();
head5.add(headTitle);
head5.add(headDescTitle);
head5.add(headDescTitle);
head5.add(headDescTitle);
head5.add(headDescTitle);
head5.add(headDescTitle);
head5.add(headDescTitle);
head5.add("平均响应时间(s)");
List head6 = new ArrayList();
head6.add(headTitle);
head6.add(headDescTitle);
head6.add(headDescTitle);
head6.add(headDescTitle);
head6.add(headDescTitle);
head6.add(headDescTitle);
head6.add(headDescTitle);
head6.add("最大响应时间(s)");
List head7 = new ArrayList();
head7.add(headTitle);
head7.add(headDescTitle);
head7.add(headDescTitle);
head7.add(headDescTitle);
head7.add(headDescTitle);
head7.add(headDescTitle);
head7.add(headDescTitle);
head7.add("错误率(%)");
List head8 = new ArrayList();
head8.add(headTitle);
head8.add(headDescTitle);
head8.add(headDescTitle);
head8.add(headDescTitle);
head8.add(headDescTitle);
head8.add(headDescTitle);
head8.add(headDescTitle);
head8.add("数据库CPU(User)(%)");
List head9 = new ArrayList();
head9.add(headTitle);
head9.add(headDescTitle);
head9.add(headDescTitle);
head9.add(headDescTitle);
head9.add(headDescTitle);
head9.add(headDescTitle);
head9.add(headDescTitle);
head9.add("数据库TCP连接数");
List head10 = new ArrayList();
head10.add(headTitle);
head10.add("负责人:");
head10.add("齐冰洋");
head10.add("");
head10.add("");
head10.add("");
head10.add("");
head10.add("连接池大小");
List head11 = new ArrayList();
head11.add(headTitle);
head11.add("协助人:");
head11.add("石星");
head11.add("张刚强");
head11.add("秦亚飞");
head11.add("王京朝");
head11.add("张凯");
head11.add("网络流量(上传/Mbps)");
List head12 = new ArrayList();
head12.add(headTitle);
head12.add("");
head12.add("黄色:瓶颈");
head12.add("橙色:提醒");
head12.add("红色:严重");
head12.add("测试时间");
head12.add("2020-01-01"); //测试时间
head12.add("网络流量(下载/Mbps)");
list.add(head1);
list.add(head2);
list.add(head3);
list.add(head4);
list.add(head5);
list.add(head6);
list.add(head7);
list.add(head8);
list.add(head9);
list.add(head10);
list.add(head11);
list.add(head12);returnlist;
}
}