java操作Excel,需要第三方库poi

#xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
<scope>test</scope>
</dependency>

Excel测试数据

读取Excel的java文件

#java
package com.netease.utils; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; /**
* @author by LiHe on 2018/8/12.10:15
*/
public class ExcelReader { public static Object[][] getTestData(String fileName, String sheetName) throws IOException { File file = new File(fileName);
FileInputStream inputStream = new FileInputStream(file);
Workbook workbook = null; /**
* 获取文件名参数的拓展名,判断是.xlsx还是xls
*/ String fileExtensionName = fileName.substring(fileName.indexOf("."));
/**
* 如果是.xlsx,则使用XSSFWorkbook对象进行实例化
* 如果是.xls,则使用HSSFWorkbook对象进行实例化
*/ if (fileExtensionName.equals(".xlsx")) {
workbook = new XSSFWorkbook(inputStream);
} else if (fileExtensionName.equals(".xls")) {
workbook = new HSSFWorkbook(inputStream);
} else {
System.out.println("该文件不是excel文件");
} /**
* 通过sheetName参数,生成sheet对象
*/ Sheet sheet = workbook.getSheet(sheetName); /***
* 获取Excel数据文件sheet1中数据的行数,getLastRowNum方法获取数据的最后一行行号
* getFirstRowNum方法获取数据的第一行行号,相减之后算出数据的行数
* Excel的行号和列号都是从0开始的
*/
int rowCount = sheet.getLastRowNum() - sheet.getFirstRowNum(); /***
* 创建名为records的list对象来存储从Excel中读取的数据
*/ List<Object[]> records = new ArrayList<Object[]>(); /**
* 使用两个for循环遍历Excel数据文件的所有数据。(除去第一行的列名称)
*/
for (int i = 1; i <= rowCount; i++) {
Row row = sheet.getRow(i); /**
* 声明一个数组files,用来存储excel数据文件每行数据,数组的大小用getLastCellNum方法来进行动态声明。
*/ String files[] = new String[row.getLastCellNum()]; for (int j = 0; j < row.getLastCellNum(); j++) {
Cell cell =row.getCell(j);
cell.setCellType(CellType.STRING);
files[j] = cell.getStringCellValue();
}
records.add(files);
} Object[][] results = new Object[records.size()][];
for (int i = 0; i < records.size(); i++) {
results[i] = records.get(i);
} return results; } }

测试类

#java
package testdata; import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; import java.io.IOException; public class TestExcel {
@DataProvider(name = "excel")
public Object[][] testData() throws IOException {
return ExcelReader.getTestData("src/test/java/testdata/testExcelData.xlsx","Sheet1");
}
@Test(dataProvider = "excel")
public void test(String company,String people){
System.out.println(company+"\t"+people);
}
}

result:

阿里 马云

腾讯 马化腾

网易 丁磊

*

Default Suite

Total tests run: 3, Failures: 0, Skips: 0

===============================================*

接口测试3-3Excel格式的更多相关文章

  1. postman做接口测试 application/x-www-form-urlencoded 格式与json格式互转

    背景:用postman做接口测试可以使用application/x-www-form-urlencoded请求,也可以使用json请求,接口文档如下: 请求参数 字段 类型 是否必填 注释 websi ...

  2. Alpha阶段测试报告

    测试说明 APP中前后端交互的接口主要有两种,一种是游戏开始前获取信息的HTTP请求接口,这种接口可以看成是静态的,比较简单:另外一种就是游戏过程中进行实时通信的Websocket请求接口,因为这是在 ...

  3. 接口测试xml格式转换成json

    未经允许,禁止转载!!!! 接口测试一般返回的是xml和json,现在大多数时候是返回成json的格式,但是有时候也会出现xml格式, 由于xml格式的文件阅读起来不是很容易懂,所以尽量将xml转换成 ...

  4. robot framework 接口测试 http协议post请求json格式

    robot framework 接口测试 http协议post请求json格式 讲解一个基础版本.注意区分url地址和uri地址. rf和jmeter在添加服务器地址也就是ip地址的时候,只能url地 ...

  5. webservice接口测试wsdl,参数是xml格式。python,入参转化成str,返回值转化成dict调用

    1.用SoapUI测试webservice接口,传入参数是xml格式时.xml格式需要将xml的外围增加<![CDATA[xml]]> 2.但是用python去做webservice测试, ...

  6. [JsonSchema] 关于接口测试 Json 格式比对核心算法实现 (Java 版)

    引言 为什么要自己重新造轮子,而不是采用第三方的JsonSchema方法进行实现存在以下痛点:1.我之前在网上找了很久,没有找到java版直接进行jsonschema生成的方法或直接比较的方法2.ht ...

  7. 【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)

    目录: SoapUI测试webservice接口,发送XML格式参数 Postman测试webservice接口,发送XML格式参数 WebServiceStudio.exe测试webservice接 ...

  8. 使用yaml格式进行接口测试报错

    前言:本人公司使用yaml做接口测试.某日开发写了一个字典嵌套列表,列表里面再嵌套字典的接口. yaml的值应该为下图(注意缩进问题)   加了-代表下面是一个列表 {'uid': '3a61479f ...

  9. python sha256 键值对参数格式接口测试

    # coding=utf-8 import requests import time import uuid import hashlib import hmac import random impo ...

  10. python接口测试3-JSON格式

    什么是JSON? 一种轻量级的数据交换格式.它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言.JSON具有自我描述性,很容易理解. 数据格式: { "name":& ...

随机推荐

  1. MyEclipse持续性开发教程:用JPA和Spring管理数据(二)

    MyEclipse红运年货节 在线购买低至69折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA / Spring的功能.有关设置JPA项 ...

  2. 安装win8时提不能在gpt磁盘中安装

    首先,你要知道,GPT和NTFS根本就是两码事儿.所谓的GPT,是指可扩展固件接口 (EFI) 使用的磁盘分区架构,是与主启动记录 (MBR) 分区架构相对应的,是一种磁盘分区架构.而ntfs,fat ...

  3. 保护 iOS 用户数据安全: Keychain 和 Touch ID

    原文:How To Secure iOS User Data: The Keychain and Touch ID 作者:Tim Mitra 译者:kmyhy 更新说明:本教程由 Tim Mitra ...

  4. SSH项目搭建(五)——web.xml文件配置

    上一章写到pom.xml有一个报错,说找不到web.xml文件.确实是这样的,因为我们用maven搭建的web层里就是没有这个文件.我们能看到,webapp文件夹里是空的. 没有,就想办法把它弄出来. ...

  5. 基础练习 Sine之舞

    基础练习 Sine之舞   时间限制:1.0s   内存限制:512.0MB        问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他 ...

  6. Luogu 3245 大数

    Luogu 3245 大数 开始就想 \(10\) 进制 \(hash\) ,\(Hash(r)\equiv Hash(l-1)\cdot 10^{r-l+1}\) ,感觉没什么美妙的性质啊... 然 ...

  7. SQLite数据库学习小结——native层实现

    1. SQlite概述 SQLite是一款轻量.快速.跨平台的嵌入式数据库,是遵守ACID(注:ACID指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consi ...

  8. 51Nod1526 分配笔名

    分析 在trie树上贪心,将所有串加入trie树中,在深度较深的地方匹配会更优. 由于只需要知道最后的总质量,所以直接取每个点的子树中最大的匹配即可 复杂度\(O(\sum len)\) 加串的时候把 ...

  9. es6语法快速上手(转载)

    一.相关背景介绍 我们现在大多数人用的语法javascript 其实版本是ecmscript5,也是就es5.这个版本己经很多年了,且完美被各大浏览器所支持.所以很多学js的朋友可以一直分不清楚es5 ...

  10. java安全性-引用-分层-解耦

    Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用 "特洛伊"木马等欺骗手段访问对象的私有成员 访问一个对象必须通过这个对象的引用 java ...