接口测试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":& ...
随机推荐
- 强大的Grafana worldping插件
安装worldping插件: 官方插件地址 查看安装说明,在grafana server上执行命令,完成后重启grafana server,重启,请注意,要重启 重启grafana service g ...
- JPush删除别名及回调函数(SWIFT)
JPush(极光)删除别名传空字符串即可,官方回调函数的例子为OC的.用SWIFT其实也差不多. //用户登出后删除别名 APService.setAlias("", callba ...
- C语言基础:常见循环语句 分类: iOS学习 c语言基础 2015-06-10 21:46 13人阅读 评论(0) 收藏
for语句 for( 初始化表达式; 循环判断条件 ;增量表达式); while(条件表达式){ 循环体; } 先判断条件表达式,如果为真就执行循环体,执行完再去判断条件表达式 do{ 循环体; } ...
- OC基础:属性.点语法.KVC 分类: ios学习 OC 2015-06-24 17:24 61人阅读 评论(0) 收藏
属性:快速生成setter和getter 属性也包括:声明和实现 1.属性的声明写在.h中 格式:@property 数据类型 变量名; 如果实例变量一致的时候,属性的声明可以合并,每一个属性之间使用 ...
- QT4 交叉编译
配置 ./configure \-prefix /usr \-no-rpath \-embedded arm \-xplatform /qws/linux-arm-gnueabi-g++ \-dept ...
- CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例
上一篇文章分享了控制节点的nova计算服务的安装方法,在实际生产环境中,计算节点通常会安装一些单独的节点提供服务,本文分享单独的nova计算节点的安装方法 ---------------- 完美的分 ...
- 【opencv基础】测量运行时间的函数getTickCount/getCPUTickCount/getTickFrequency
函数的计算结果类型是double,单位是秒. 要使用更精确的计时,就需要使用getCPUTickCount(),不过现代计算机CPU的频率会随着负载而变化所以没大有必要使用该函数,可以参看函数的介绍[ ...
- chapter02 PCA主成分分析在手写数字识别分类的应用
#coding=utf8 # 导入numpy工具包. import numpy as np # 导入pandas用于数据分析. import pandas as pd from sklearn.met ...
- Java工具创建密钥库,用于Unity 3D打包、签名、发布
Java工具创建密钥库 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新! ...
- 20155328 2016-2017-2 《Java程序设计》第5周学习总结
教材学习内容总结 程序设计本身的错误,建议使用Exception或其子类实例来表现. Java中所有错误都会被打包成对象. 如果父类异常对象在子类异常对象前被捕捉,则catch子类异常对象的区块将永远 ...