-----------------------------------------------------------------------------------------------------------------------------------------

说明:

>1.首先必须在指定目录创建 指定文件 ; c:/c/TEST1.xlsx

>2.ExcleUtil类只读取了TEST1.xlsx 前4列的值 ;

>3.ExcleUtil类将接口的返回的json值写入到excle中 ;

>4.HttpInterfaceTest 类中的testSendPost()方法使用Object ... obj 进行参数接收 ;

------------------------------------------------------------------------------------------------------------------------------------------

1.ExcelReader  --读取*.xls,*.xlsx 格式的 excle ;

 package main.java;

 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.*; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class ExcelReader {
public Object[][] results;
private String filePath;
private String sheetName;
private Workbook workBook;
private Sheet sheet;
private List<String> columnHeaderList;
private List<List<String>> listData;
private List<Map<String, String>> mapData;
private boolean flag; public ExcelReader(String filePath, String sheetName) {
this.filePath = filePath;
this.sheetName = sheetName;
this.flag = false;
this.load();
} public static void main(String[] args) { Object[][] obj1;
ExcelReader eh = new ExcelReader("C:\\C\\TEST1.xlsx", "Sheet1");
Object[][] sheetData2 = eh.getSheetData2();
System.out.println(sheetData2.length + "------------");
for (int i = 1; i < sheetData2.length - 1; i++) {
for (int j = 0; j < sheetData2[i].length - 1; j++) {
System.out.print(sheetData2[i][j] + " | ");
}
System.out.println();
} } private void load() {
FileInputStream inStream = null;
try {
File files = new File(filePath);
if (files.exists()) {
inStream = new FileInputStream(files);
workBook = WorkbookFactory.create(inStream);
sheet = workBook.getSheet(sheetName);
} else {
System.out.println("请在这个目录下创建这个文件,不然程序无法执行!; C:/C/TEST1.xlsx");
} } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (inStream != null) {
inStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
} private String getCellValue(Cell cell) {
String cellValue = "";
DataFormatter formatter = new DataFormatter();
if (cell != null) {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
cellValue = formatter.formatCellValue(cell);
} else {
double value = cell.getNumericCellValue();
int intValue = (int) value;
cellValue = value - intValue == 0 ? String.valueOf(intValue) : String.valueOf(value);
}
break;
case Cell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
cellValue = String.valueOf(cell.getCellFormula());
break;
case Cell.CELL_TYPE_BLANK:
cellValue = "";
break;
case Cell.CELL_TYPE_ERROR:
cellValue = "";
break;
default:
cellValue = cell.toString().trim();
break;
}
}
return cellValue.trim();
} private void getSheetData() { listData = new ArrayList<>();
mapData = new ArrayList<>();
columnHeaderList = new ArrayList<>();
int numOfRows = sheet.getLastRowNum() + 1;
for (int i = 0; i < numOfRows; i++) {
Row row = sheet.getRow(i);
Map<String, String> map = new HashMap<>();
List<String> list = new ArrayList<>(); if (row != null) {
for (int j = 0; j < row.getLastCellNum(); j++) {
Cell cell = row.getCell(j);
if (i == 0) {
columnHeaderList.add(getCellValue(cell));
} else { map.put(columnHeaderList.get(j), this.getCellValue(cell)); }
list.add(this.getCellValue(cell));
}
}
if (i > 0) {
mapData.add(map);
}
listData.add(list); } flag = true; for (int i = 0; i < listData.size(); i++) {
for (int j = 0; j < listData.get(i).size(); j++) {
System.out.println(listData.get(i).get(j).toString());
}
} } public String getCellData(int row, int col) {
if (row <= 0 || col <= 0) {
return null;
}
if (!flag) {
this.getSheetData();
}
if (listData.size() >= row && listData.get(row - 1).size() >= col) {
return listData.get(row - 1).get(col - 1);
} else {
return null;
}
} public String getCellData(int row, String headerName) {
if (row <= 0) {
return null;
}
if (!flag) {
this.getSheetData();
}
if (mapData.size() >= row && mapData.get(row - 1).containsKey(headerName)) {
return mapData.get(row - 1).get(headerName);
} else {
return null;
}
} public Object[][] getSheetData2() { List<Object[]> result = new ArrayList<>();
listData = new ArrayList<>();
mapData = new ArrayList<>();
columnHeaderList = new ArrayList<>(); int numOfRows = sheet.getLastRowNum() + 1;
// System.out.println("总共有 " + numOfRows + " 行 !");
for (int i = 0; i < numOfRows; i++) {
Row row = sheet.getRow(i);
Map<String, String> map = new HashMap<>();
List<String> list = new ArrayList<>();
Object[] o1 = new Object[row.getLastCellNum()]; if (row != null) {
for (int j = 0; j <= 3/*row.getLastCellNum()*/; j++) {
// System.out.println("第 "+i+" 行--- row.getLastCellNum()===="+row.getLastCellNum());
Cell cell = row.getCell(j);
if (i == 0) {
o1[j] = this.getCellValue(cell);
// System.out.println(j+"------this.getCellValue(cell)="+this.getCellValue(cell));
columnHeaderList.add(getCellValue(cell));
} else {
o1[j] = this.getCellValue(cell);
// System.out.println(j+"------this.getCellValue(cell)="+this.getCellValue(cell));
map.put(columnHeaderList.get(j), this.getCellValue(cell)); }
list.add(this.getCellValue(cell));
}
}
if (i > 0) {
mapData.add(map);
}
result.add(o1);
listData.add(list);
}
// 测试数据excel数据用 ;
/* for (int i = 0; i < result.size(); i++) {
for (int j = 0; j < result.get(i).length; j++) {
System.out.print(result.get(i)[j]+" | ");
}
System.out.println();
}*/
results = new Object[result.size()][]; for (int i = 0; i < result.size(); i++) {
results[i] = result.get(i);
}
flag = true; System.out.println("results.length==" + results.length);
return results;
}
}

1.1 20180131——setCellData2()方法的更新 ;

     public static void setCellData2(int rownum, int colnum, String result) {
FileOutputStream out = null;
if (null == sheet.getRow(rownum)) {
Row row1 = sheet.createRow(rownum);
if (null == row1.getCell(colnum)) {
row1.createCell(colnum).setCellValue(result);
} else {
row.getCell(colnum).setCellValue(result);
}
} else {
sheet.getRow(rownum).createCell(colnum).setCellValue(result); } try {
out = new FileOutputStream(ExcelFilePath);
workBook.write(out);
out.flush(); } catch (IOException e) {
e.printStackTrace();
}finally {
try {
out.close();
System.out.println("-----写入成功!------");
} catch (Exception e) {
e.printStackTrace();
}
} }

2.ExcleUtil --读取和设置单元格的值 ;

 package main.java;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcleUtil {
private static XSSFSheet ExcelWSheet;
private static XSSFWorkbook ExcelWBook;
private static XSSFCell Cell;
private static XSSFRow Row;
private static String ExcelFilePath="C:\\C\\TEST1.xlsx"; // 设定要设置的Excel的文件路径和Excel 中Sheet名;
// 在读/写Excel 的时候先要调用此方法
public static void setExcleFile(String FilePath, String sheetName) throws Exception {
FileInputStream ExcleFile;
try {
// 实例化Excle文件的FileInputStream 对象;
ExcleFile = new FileInputStream(FilePath);
// 实例化Excle文件的XSSFWorkbook 对象;
ExcelWBook = new XSSFWorkbook(ExcleFile);
/*
* 实例化XSSFSheet 对象,指定ExcelFile中的sheet名称,用于后续对sheet中行和列的操作;
*
*/
ExcelWSheet = ExcelWBook.getSheet(sheetName); } catch (Exception e) {
e.getStackTrace();
} }
/*
* 读取excle文件指定单元格的函数 ;
*
*/ public static String getCell(int row, int col) throws Exception { try {
// 通过函数参数指定单元格的行号和列,获取指定单元格的对象;
Cell = ExcelWSheet.getRow(row).getCell(col);
/*
* 1.如果单元格的类型为字符串类型,使用getStringCellValue();来获取单元格的内容;
* 2.如果单元格的类型为数字类型,使用getNumberricCellValue();来获取单元格的内容;
* 注意:getNumberricCellValue();返回的值为double类型,转为为字符串类型,必须在
* getNumberricCellValue();前面加上(" ")双引号,用于强制转换为String类型,不加双引号
* 则会抛错;double类型无法转换为String类型的异常;
*
*/
String CellData = Cell.getCellType() == XSSFCell.CELL_TYPE_STRING ? Cell.getStringCellValue() + ""
: String.valueOf(Math.round(Cell.getNumericCellValue()));
return CellData;
} catch (Exception e) {
e.getStackTrace();
return "";
} }
/*
* 在Excle中执行单元格写入数据;
*
*
*/ public static void setCellData(int rownum, int colnum, String Result) throws Exception { try {
// 获取excle文件的中行对象;
Row = ExcelWSheet.getRow(rownum);
// 如果单元格为空则返回null;
Cell = Row.getCell(colnum, Row.RETURN_BLANK_AS_NULL);
if (Cell == null) {
// 当单元格为空是则创建单元格
// 如果单元格为空无法调用单元格对象的setCellValue方法设定单元格的值 ;
Cell = Row.createCell(colnum);
// 创建单元格和后可以通过调用单元格对象的setCellValue方法设置单元格的值了;
Cell.setCellValue(Result);
} else {
// 单元格中有内容,则可以直接调用单元格对象的 setCellValue 方法来设置单元格的值;
Cell.setCellValue(Result);
}
FileOutputStream fileout = new FileOutputStream(ExcelFilePath);
// 将内容写到Excel文件中 ;
ExcelWBook.write(fileout);
// j调用flush方法强制刷新写入文件;
fileout.flush();
fileout.close();
System.out.println("-----写入成功!------");
} catch (Exception e) {
System.out.println(e.getMessage() + e.getStackTrace());
throw (e);
} } public static void TangsetCellData(int RowNum, int ColNum, String Result) {
try {
// 获取行对象
Row = ExcelWSheet.getRow(RowNum);
// 如果单元格为空,则返回null
Cell = Row.getCell(ColNum, Row.RETURN_BLANK_AS_NULL);
if (Cell == null) {
// 当单元格对象是Null时,则创建单元格
// 如果单元格为空,无法直接调用单元格的setCellValue方法设定单元格的值
Cell = Row.createCell(RowNum);
// 调用setCellValue方法设定单元格的值
Cell.setCellValue(Result);
} else {
// 单元格中有内容,则可以直接调用seCellValue方法设定单元格的值
Cell.setCellValue(Result);
}
// 实例化写入Excel文件的文件输出流对象
FileOutputStream fileOut = new FileOutputStream(ExcelFilePath);
// 将内容写入Excel中
ExcelWBook.write(fileOut);
fileOut.flush();
fileOut.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
} // 从excel 文件中获取测试数据的静态方法;
public static Object[][] getTestData(String excelFilePath, String sheetName) throws Exception {
// 根据参数传入的数据文件路径和文件名称,组合出Excel 数据文件的绝对路径
// 声明一个文件;
File file = new File(excelFilePath);
// 创建FileInputStream 来读取Excel文件内容;
FileInputStream inputStream = new FileInputStream(file);
// 声明Workbook 对象;
Workbook workbook = null;
// 获取文件名参数的扩展名,判断是“.xlsx” 还是 “.xls” ;
String fileExtensionName = excelFilePath.substring(excelFilePath.indexOf('.'));
if (fileExtensionName.equals(".xlsx")) {
workbook = new XSSFWorkbook(inputStream); } else if (fileExtensionName.equals(".xls")) {
workbook = new HSSFWorkbook(inputStream); }
Sheet sheet = workbook.getSheet(sheetName);
// 获取Excel 数据文件Sheet1 中数据的行数,getLastRowNum 方法获取数据的最后一行的行号,
// getFistRowNum 获取第一行 最后一行减去第一行就是总行数了
// 注意excle 的行和列都是从0开始的;
int rowCount = sheet.getLastRowNum() - sheet.getFirstRowNum();
// 创建名为records 的List对象来存储从Excel文件中读取的数据;
List<Object[]> records = new ArrayList<Object[]>();
// 使用for循环遍历Excel 数据文件的所有数据(除了第一行,第一行为标题行),所以i从1开始而不是从0开始; for (int i = 1; i < rowCount + 1; i++) {
// 使用getRow来获取行对象;
Row row = sheet.getRow(i);
/*
* 声明一个数据,用来存储Excel数据文件每行中的测试用例和数据,数据的大小用getLastCellNum-2
* 来进行动态声明,实现测试数据个数和数组大小一致,
* 因为Excel数据文件中的测试数据行的最后一个单元格是测试执行结果,倒数第二个单元格为此测试数据行是否运行的状态位,
* 所以最后俩列的单元格数据并
* 不需要传入测试方法中,所以是用getLastCellNum-2的方式去掉每行中的最后俩个单元格数据,计算出需要存储的测试数据个数,
* 并作为测试数据数组的初始化大小
*
*/
String fields[] = new String[row.getLastCellNum() - 2]; /*
* 判断数据行是否要参与测试的执行,Excel 文件的倒数第二列为数据行的状态位, 标记为“y”
* 表示此数据行要被测试脚本执行,标记为非“y”的数据行均被认为不会参数测试脚本执行,会被跳过;
*/ if (row.getCell(row.getLastCellNum() - 2).getStringCellValue().equals("y")) {
for (int j = 0; j < row.getLastCellNum() - 2; j++) {
/*
* 判断Excel 单元格的内容是数字还是字符, 字符格式调用:
* row.getCell(j).getStringCellValue();
* 数字格式调用:row.getCell(j).getNumericCellValue();
*/
fields[j] = (String) (row.getCell(j).getCellType() == XSSFCell.CELL_TYPE_STRING
? row.getCell(j).getStringCellValue() : "" + row.getCell(j).getNumericCellValue()); }
// fields 存储到数组当中;
records.add(fields); }
} /*
* 定义函数的返回值,即Object[] [] 将存储测试数据的list 转换为一个Object 的二维数组;
*/
Object[][] results = new Object[records.size()][];
for (int i = 0; i < records.size(); i++) {
results[i] = records.get(i);
} return results; } public static int getLastColumnNum() { return ExcelWSheet.getRow(0).getLastCellNum() - 1;
} public static void main(String[] args) throws Exception { //ExcleUtil.setCellData(3,3,"hellojava!");
//System.out.println(ExcleUtil.getCell(3,1) );
; } }

3.HttpInterfaceTest --接口 get 和 post 的方法 ;

 package main.java;
import net.sf.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map; /**
* Created by ty on 2017/8/17.
*/
public class HttpInterfaceTest { public String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlName = url + "?" + param;
System.out.println("Get请求接口:" + urlName);
URL realUrl = new URL(urlName);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 建立实际的连接
conn.connect();
// 获取所有响应头字段
Map<String, List<String>> map = conn.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += "\n" + line;
}
} catch (Exception e) {
// System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
} /**
* 向指定URL发送POST方法的请求
*
* @param url 发送请求的URL
* @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式或者是json。
* @return URL所代表远程资源的响应
*/
public String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
String jsonName="Content=";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)") ;
//Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)
// conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
// application/x-www-form-urlencoded
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true); // 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(jsonName+param);
System.out.println("jsonName+param="+jsonName+param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += "\n" + line;
}
} catch (Exception e) {
System.out.println("Send Post Excepion :" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
} /* public static void main(String[] args) { HttpInterfaceTest httpInterfaceTest = new HttpInterfaceTest(); System.out.println("----------------");
String cissUrl="http://192.168.1.110:7001/CISS/MSG/callTrxMsgManager.action";
String PostValue = "{MESSAGEID:'ZTS00120170914110859000043',\n" +
"INTERFACETYPE:'S001',\n" +
"UNITID:'10001',\n" +
"CNFULLNAME:'测试机构12222',\n" +
"CNABBRNAME:'测试机构12222',\n" +
"PINYIN:'CSJG1222',\n" +
"ENFULLNAME:'CESHIJIGOU',\n" +
"ENABBRNAME:'CESHIJIGOU'\n" +
"}"; JSONObject CissjsonPostParams = JSONObject.fromObject(PostValue);
String postResult = httpInterfaceTest.sendPost(cissUrl, CissjsonPostParams.toString());
System.out.println("POST请求参数二:" + CissjsonPostParams);
System.out.println( postResult);
}*/
}

4.TestHttpInterfaceTest ---1 。2 。3 联合测试接口;

 package main.test;

 import main.java.DateUtil;
import main.java.ExcelReader;
import main.java.ExcleUtil;
import main.java.HttpInterfaceTest;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; import java.text.SimpleDateFormat;
import java.util.Date; /**
* Created by on 2017/9/5.
*/
public class TestHttpInterfaceTest {
public static HttpInterfaceTest ht;
static ExcleUtil excleUtil;
ExcelReader ex;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
;
@BeforeTest
public void init() {
String ExcelFilePath = "C:\\C\\TEST1.xlsx";
String sheetName = "Sheet1";
ht = new HttpInterfaceTest();
ex = new ExcelReader(ExcelFilePath, sheetName);
try {
excleUtil.setExcleFile(ExcelFilePath, sheetName);
} catch (Exception e) {
e.printStackTrace();
}
} @Test(dataProvider = "dp")
public void testSendPost(Object... obj) throws Exception {
String rowNum = "";
String Url = "";
String effect = "";
String paras = "";
String Contents = "";
String times = "";
for (int i = 0; i < obj.length; i++) {
rowNum = (String) obj[0];
Url = (String) obj[1];
effect = (String) obj[2];
paras = (String) obj[3]; }
//String rowNum, String Url, String effect, String paras,String Contents ,String times
System.out.println("rowNum=" + rowNum + "; URL=" + Url + " ;" + effect + " paras=" + paras + Contents + times);
Integer it = new Integer(rowNum);
int row = it.intValue();
if (paras.contains("&")) {
String s1 = ht.sendPost(Url, paras);
String date = DateUtil.format();
excleUtil.setCellData(row, 3, s1);
excleUtil.setCellData(row, 4, date);
System.out.println(s1);
} else {
try {
/* JSONObject jsonObject = JSONObject.fromObject(paras);
String s = ht.sendPost(Url, jsonObject.toString());*/
String testTimes =df.format(new Date());
String s = ht.sendPost(Url, paras);
JSONObject jsonObject = JSONObject.fromObject(s);
String MESSAGEID = jsonObject.getString("MESSAGEID");
String RESULTCODE = jsonObject.getString("RESULTCODE");
if (RESULTCODE.equals("0")) {
excleUtil.setCellData(row, 4, RESULTCODE + ":ACK成功");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E000")) {
excleUtil.setCellData(row, 4, RESULTCODE + "其他");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E001")) {
excleUtil.setCellData(row, 4, RESULTCODE + "必填项数据为空值");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E002")) {
excleUtil.setCellData(row, 4, RESULTCODE + "必填项在数据库中没有匹配数据");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E003")) {
excleUtil.setCellData(row, 4, RESULTCODE + "唯一项在数据库中重复");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E004")) {
excleUtil.setCellData(row, 4, RESULTCODE + "传过来的关键字段不同属于一条记录;");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E005")) {
excleUtil.setCellData(row, 4, RESULTCODE + "没有满足前提条件。如:当前日期范围内还没有维护汇率信息,请先行维护!");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E006")) {
excleUtil.setCellData(row, 4, RESULTCODE + "类型转化异常,");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E007")) {
excleUtil.setCellData(row, 4, RESULTCODE + " 所填数据不在给定范围内 ");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E008")) {
excleUtil.setCellData(row, 4, RESULTCODE + " 数据格式不正确 ");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E009")) {
excleUtil.setCellData(row, 4, RESULTCODE + "在当前数据状态下不能进行操作");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E010")) {
excleUtil.setCellData(row, 4, RESULTCODE + " 该经纪人已在清算系统中存在,状态:正常 ");
excleUtil.setCellData(row, 5, df.format(new Date()));
} else if (RESULTCODE.equals("E011")) {
excleUtil.setCellData(row, 4, RESULTCODE + " 该经纪人已在清算系统中存在,状态:禁用");
excleUtil.setCellData(row, 5, df.format(new Date()));
} System.out.println(s);
} catch (JSONException jsonException) {
excleUtil.setCellData(row, 4, " 响应结果 ");
excleUtil.setCellData(row, 5, " 响应时间 ");
System.out.println("标题行不能进行转换!");
} catch (Exception e) {
excleUtil.setCellData(row, 4, " Exception ");
excleUtil.setCellData(row, 5, " Exception");
e.printStackTrace();
System.out.println("标题行不能进行转换!");
} } } @DataProvider
public Object[][] dp() {
Object[][] sheetData2 = ex.getSheetData2();
System.out.println(sheetData2.length + "------------");
for (int i = 1; i < sheetData2.length; i++) {
for (int j = 0; j < sheetData2[i].length - 1; j++) {
System.out.print(sheetData2[i][j] + " | ");
}
System.out.println();
} return sheetData2;
}
}

第二版_TestNG+Excel+(HTTP+JSON) 简单接口测试的更多相关文章

  1. TestNG+Excel+(HTTP+JSON) 简单接口测试

    说明: 1.使用Exce作为数据存放地: 2.使用TestNG的Datarprovide 做数据供应: 3.不足的地方没有指定明确的result_code , error_code , ERROR_M ...

  2. 《代码大全(第二版)》【PDF】下载

    <代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...

  3. 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)

    利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...

  4. 一套简单的web即时通讯——第二版

    前言 接上一版,这一版的页面与功能都有所优化,具体如下: 1.优化登录拦截 2.登录后获取所有好友并区分显示在线.离线好友,好友上线.下线都有标记 3.将前后端交互的值改成用户id.显示值改成昵称ni ...

  5. 简单的web三层架构系统【第二版】

    昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...

  6. Lucene.net站内搜索—6、站内搜索第二版

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  7. 锋利的jQuery(第二版)学习总结

    通过对<锋利的jQuery>(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结. 此书主要讲解了jQuery的常用操作,包括认识jQuery,j ...

  8. Python核心编程(第二版)PDF

    Python核心编程(第二版) 目录 第1部分 Python核心第1章 欢迎来到Python世界1.1 什么是Python1.2 起源1.3 特点1.3.1 高级1.3.2 面向对象1.3.3 可升级 ...

  9. Python——Excel转Json工具

    Python工具Excel转Json 前置条件 1.安装python 下载python 我下载的是2.7: 2.配置环境变量 我的电脑右键--属性--高级系统设置--环境变量: 添加python的安装 ...

随机推荐

  1. ruby各种循环输出数组元素

    array = (1..10).to_a # 方法1 length = array.length length.times do |t| print "#{array[t]} " ...

  2. WPF 事件触发命令

    方法一使用mvvmlight: xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Int ...

  3. django学习笔记(4)

    Part 4: Forms and generic views ====> Write a simple form$ edit polls\templates\polls\detail.html ...

  4. 6 [面向对象]-property

    1.特性(property) 什么是特性property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 例一:BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性 ...

  5. iOS开发-通过正则表达式判断字符串是否为纯阿拉伯数字

    iOS开发-通过正则表达式判断字符串是否为纯阿拉伯数字 简述:NSString * regex_0 = @"\\d{1,}";   /*允许首位为0*/ NSString * re ...

  6. selenium无法正常运行 Chrome浏览器,cannot find Chrome binary的问题

    有些同学在运行selenium-chrome时会遇到这个问题, System.setProperty("webdriver.chrome.driver","files/c ...

  7. Linux之linux入门

    学习linux之前先了解一下操作系统: 操作系统的定义:         操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内 ...

  8. 「功能笔记」Linux常用Shell命令(终端命令)备忘录

    长期更新,空置.缺漏的部分会逐渐补上.未指明时,均为GNU版本. 文件命令 基础操作 ls 默认显示非隐藏文件.以文件名进行排序.文件名有颜色(蓝色文件夹.白色一般文件.绿色可执行文件). Cheat ...

  9. linux多项目分别使用不同jdk版本(tomcat版)

    此操作只针对tomcat 背景:linux服务器普通用户默认版本为jdk6,jboss项目使用jdk6版本 ,但是tomcat需要使用jdk7.当然也可以分开使用不同账户来启用这两个项目,下面主要介绍 ...

  10. tomcat9在centos7上启动慢问题

    /opt/java/jdk1.8.0_162/jre/lib/security/java.security 将如下配置securerandom.source=file:/dev/random 改为se ...