接口测试3-3Excel格式
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格式的更多相关文章
- postman做接口测试 application/x-www-form-urlencoded 格式与json格式互转
背景:用postman做接口测试可以使用application/x-www-form-urlencoded请求,也可以使用json请求,接口文档如下: 请求参数 字段 类型 是否必填 注释 websi ...
- Alpha阶段测试报告
测试说明 APP中前后端交互的接口主要有两种,一种是游戏开始前获取信息的HTTP请求接口,这种接口可以看成是静态的,比较简单:另外一种就是游戏过程中进行实时通信的Websocket请求接口,因为这是在 ...
- 接口测试xml格式转换成json
未经允许,禁止转载!!!! 接口测试一般返回的是xml和json,现在大多数时候是返回成json的格式,但是有时候也会出现xml格式, 由于xml格式的文件阅读起来不是很容易懂,所以尽量将xml转换成 ...
- robot framework 接口测试 http协议post请求json格式
robot framework 接口测试 http协议post请求json格式 讲解一个基础版本.注意区分url地址和uri地址. rf和jmeter在添加服务器地址也就是ip地址的时候,只能url地 ...
- webservice接口测试wsdl,参数是xml格式。python,入参转化成str,返回值转化成dict调用
1.用SoapUI测试webservice接口,传入参数是xml格式时.xml格式需要将xml的外围增加<![CDATA[xml]]> 2.但是用python去做webservice测试, ...
- [JsonSchema] 关于接口测试 Json 格式比对核心算法实现 (Java 版)
引言 为什么要自己重新造轮子,而不是采用第三方的JsonSchema方法进行实现存在以下痛点:1.我之前在网上找了很久,没有找到java版直接进行jsonschema生成的方法或直接比较的方法2.ht ...
- 【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)
目录: SoapUI测试webservice接口,发送XML格式参数 Postman测试webservice接口,发送XML格式参数 WebServiceStudio.exe测试webservice接 ...
- 使用yaml格式进行接口测试报错
前言:本人公司使用yaml做接口测试.某日开发写了一个字典嵌套列表,列表里面再嵌套字典的接口. yaml的值应该为下图(注意缩进问题) 加了-代表下面是一个列表 {'uid': '3a61479f ...
- python sha256 键值对参数格式接口测试
# coding=utf-8 import requests import time import uuid import hashlib import hmac import random impo ...
- python接口测试3-JSON格式
什么是JSON? 一种轻量级的数据交换格式.它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言.JSON具有自我描述性,很容易理解. 数据格式: { "name":& ...
随机推荐
- windows安装redis和php拓展
第一步:下载redis 我是win7的环境,直接到https://github.com/MSOpenTech/redis/releases下载windows版本的redis: 第二步:配置path i ...
- PHP程序后台自动运行
如何让php程序自动执行,这个就需要用到一个函数了: int ignore_user_abort ( [bool setting] ) 定义和用法ignore_user_abort() 函数设置与客户 ...
- Adaboost算法流程及示例
1. Boosting提升方法(源自统计学习方法) 提升方法是一种常用的统计学习方法,应用十分广泛且有效.在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的 ...
- NBUT 1218 You are my brother 2010辽宁省赛
Time limit 1000 ms Memory limit 131072 kB Little A gets to know a new friend, Little B, recently. On ...
- NBUT 1223 Friends number 2010辽宁省赛
Time limit 1000 ms Memory limit 131072 kB Paula and Tai are couple. There are many stories betwee ...
- 工业通信的开源项目 HslCommunication 介绍
前言: 本项目的孵化说来也是机缘巧合的事,本人于13年杭州某大学毕业后去了一家大型的国企工作,慢慢的走上了工业软件,上位机软件开发的道路.于14年正式开发基于windows的软件,当时可选的技术栈就是 ...
- tensorflow模型持久化保存和加载
模型文件的保存 tensorflow将模型保持到本地会生成4个文件: meta文件:保存了网络的图结构,包含变量.op.集合等信息 ckpt文件: 二进制文件,保存了网络中所有权重.偏置等变量数值,分 ...
- C++ 内存拷贝函数 memcpy
在C/C++中经常会遇到对一段固定的连续内存进行拷贝操作, 这时候我们就需要用到 <cstring> 头文件 中的 memcpy 函数. 具体使用如下: 其中 , ...
- 开源库dlib的安装与编译-CMake
前言 最近项目涉及到关于face alignment的实现,了解到目前主要的算法有ERT.SDM.LBF等,其中由于dlib开源库实现了ERT算法,效果也很不错,故开始研究dlib的使用.而使用的第一 ...
- 强大的dfs(用处1——拓扑排序【xdoj1025】,用处二——求强联通分量【ccf高速公路】)当然dfs用处多着咧
xdoj 1025 亮亮最近在玩一款叫做“梦想庄园”的经营游戏.在游戏中,你可以耕种,养羊甚至建造纺织厂. 如果你需要制造衣服,你首先得有布匹和毛线.布匹由棉花纺织而成:毛线由羊毛制成,而羊需要饲料才 ...