Java实现把测试结果写入Excel表中
来源:互联网 发布:mysql show errors 编辑:程序博客网 时间:2024/06/05 02:57
自动化测试脚本执行完以后,会有一个测试结果,无论是通过框架还是Jenkins平台生成的结果,可读性都不是太好,为了方便手工测试人员查看结果,测试完成后把结果写入Excel是一个不错的方法,但是脚本多了,通过人工来写,无疑加重了自动化测试人员的工作,为了解决这个问题,我就开发了一个把测试结果写入Excel的工具类,代码如下:
import java.io.File;import java.util.ArrayList;import java.util.List;import jxl.Workbook;import jxl.common.Logger;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class CreateExcel { private String[] title; private String sheetName; private static WritableWorkbook book = null; private static WritableSheet sheet = null; private static Logger logger = Logger.getLogger(CreateExcel.class); private String testRoot = GeneralMethods.getTestRoot().replace("target/test-classes/", "src/test/resources/data/") + "Performance/"; private File file; /* * titleName[0]表示Excel文件的名字 * titleName后面的值是Excel第一行要填入的值 */ public CreateExcel(String... titleName) { sheetName = GeneralMethods.getDate(); file = new File(testRoot + titleName[0]); List<String> temp = new ArrayList<String>(); for (String s : titleName) { temp.add(s); } temp.remove(0); titleName = (String[]) temp.toArray(new String[temp.size()]); create(titleName); } private void create(String[] titleNames) { title = titleNames; try { Workbook wb = Workbook.getWorkbook(file); book = Workbook.createWorkbook(file, wb); sheet = addTitle(); } catch (Exception e) { logger.debug("CreateWorkbook failed !"); e.printStackTrace(); } } public void addDataToExcel(String testname, double... data) { try { Workbook wb = Workbook.getWorkbook(file); book = Workbook.createWorkbook(file, wb); sheet = book.getSheet(sheetName); int length = sheet.getRows(); Label name = new Label(0, length, testname); sheet.addCell(name); for (int i = 1; i < data.length + 1; i++) { Label label = new Label(i, length, Double.toString(data[i - 1])); sheet.addCell(label); } book.write(); book.close(); } catch (Exception e) { e.printStackTrace(); } } private WritableSheet addTitle() { String nameStrs = ""; String[] sheetNames = book.getSheetNames(); for (String sheetName : sheetNames) { nameStrs += sheetName; } try { if (nameStrs.contains(sheetName)) sheet = book.getSheet(sheetName); else { sheet = book.createSheet(sheetName, 0); sheet.getSettings().setDefaultColumnWidth(25); for (int i = 0; i < title.length; i++) { sheet.addCell(new Label(i, 0, title[i])); } } book.write(); book.close(); } catch (Exception e) { } return sheet; }}
使用工具类的脚本:
import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;import tools.CreateExcel;import tools.WindowsInfoUtil;public class testWinMonitor { private WindowsInfoUtil info; private CreateExcel create; @BeforeClass public void setUp() { create = new CreateExcel("Windows Monitor.xls", "测试名称", "CPU开始占用(%)", "CPU结束占用(%)", "内存开始占用(MB)", "内存结束占用(MB)"); } @Test public void test010() throws InterruptedException { Thread.sleep(2000); double startMem = info.getMem(); double startCpu = info.getCpu(); Thread.sleep(2000); double endMem = info.getMem(); double endCpu = info.getCpu(); create.addDataToExcel("test1", startCpu, endCpu, startMem, endMem); }}
注意
1、在执行脚本之前,在目录…\src\test\resources\data\Performance下面新建一个Excel,名字为实例化CreateExcel类的时候传入的第一个参数,例子中为“Windows Monitor.xls”。
2、对Excel进行读写的第三方jar包是jxl,这个包暂时只支持Excel97-2003.
3、脚本执行完成后,点开查看Excel,新建的sheet名字为日期,如:“2016-01-29”
回到最初的话题,把测试结果写入到Excel,如果测试框架选择的是testNG,直接解析testNG的XML报告,按照自己项目的需求选择需要传入到CreateExcel工具类中的参数即可。
0 0
- Java实现把测试结果写入Excel表中
- Java实现把测试结果写入Excel表中
- Java 实现把异常信息写入到文件中
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- Python实现数据处理——每隔一段时间把数据写入excel文件中
- 将java RDD结果写入Hive表中
- 将java RDD结果写入Hive表中
- Java 实现Excel表数据的读取和写入 以及过程中可能遇到的问题
- C++ 把输出结果写入到文件中
- C++ 把输出结果写入到文件中
- C++ 把输出结果写入到文件中
- C++ 把输出结果写入到文件中
- Java把double数据写入文件中
- Java把double数据写入文件中
- 通过POI组件把数据写入到Excel文件中
- 用Python把EXCEL中的数据写入到MySQL中
- [初学笔记] matlab中怎么把数据循环写入Excel
- JSLint中常见报错提示
- DYNPRO_FIELD_CONVERSION dump error when a field is negative
- 160129关于xcode 7中object c与swift相互引用的问题。
- 用户登录后,重定向原来访问页面
- javascript深入理解js闭包
- Java实现把测试结果写入Excel表中
- MySQL常用命令(备查)
- GitHub——使用GitHub
- LINUX0.11内核阅读笔记
- 致2015最后2个月ios开发
- 选夫婿2
- HTTP 缓存策略
- 【选择图片Jar】拨云见日-GalleryAdapter完整代码(四)
- Git——Git基础命令