第二版_TestNG+Excel+(HTTP+JSON) 简单接口测试
-----------------------------------------------------------------------------------------------------------------------------------------
说明:
>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) 简单接口测试的更多相关文章
- TestNG+Excel+(HTTP+JSON) 简单接口测试
说明: 1.使用Exce作为数据存放地: 2.使用TestNG的Datarprovide 做数据供应: 3.不足的地方没有指定明确的result_code , error_code , ERROR_M ...
- 《代码大全(第二版)》【PDF】下载
<代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...
- 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)
利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...
- 一套简单的web即时通讯——第二版
前言 接上一版,这一版的页面与功能都有所优化,具体如下: 1.优化登录拦截 2.登录后获取所有好友并区分显示在线.离线好友,好友上线.下线都有标记 3.将前后端交互的值改成用户id.显示值改成昵称ni ...
- 简单的web三层架构系统【第二版】
昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...
- Lucene.net站内搜索—6、站内搜索第二版
目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...
- 锋利的jQuery(第二版)学习总结
通过对<锋利的jQuery>(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结. 此书主要讲解了jQuery的常用操作,包括认识jQuery,j ...
- Python核心编程(第二版)PDF
Python核心编程(第二版) 目录 第1部分 Python核心第1章 欢迎来到Python世界1.1 什么是Python1.2 起源1.3 特点1.3.1 高级1.3.2 面向对象1.3.3 可升级 ...
- Python——Excel转Json工具
Python工具Excel转Json 前置条件 1.安装python 下载python 我下载的是2.7: 2.配置环境变量 我的电脑右键--属性--高级系统设置--环境变量: 添加python的安装 ...
随机推荐
- Noip前的大抱佛脚----图论
目录 图论 知识点 二分图相关 DFS找环 并查集维护二分图 二分图匹配的不可行边 最小生成树相关 最短路树 最短路相关 负环 多源最短路 差分约束系统 01最短路 k短路 网络流 zkw费用流 做题 ...
- 一维码Codabar简介及其解码实现(zxing-cpp)
一维码Codabar:由4条黑色线条,3条白色线条,合计7条线条所组成,每一个字元与字元之间有一间隙Gap做区隔. 条形码Codabar包含21个字元: (1).10个数字0~9; (2)." ...
- iTerm的安装以及配置Oh My Zsh
iTerm说简单点就是Windows的命令提示符,可能说这个大家感觉没用过,其实也就是人们经常使用CMD,相当于苹果的终端,但是比自带的终端强大多了. 本文就是简单的说一下安装和简单的配置过程. 首先 ...
- excel 取前几位文字
1L.2L的分别用mid函数和left函数都没有问题. 问题是,如果用left函数,必须先确认,字符串中汉字必须排在左边第一个,接下来几个也必须是汉字:mid函数则是根据从左边第某个字符开始,一共取几 ...
- python的类和对象2(self参数)
python的类和对象2(self参数) 1.python里面对象的方法都会有self参数,它就相当于C++里面的this指针:绑定方法,据说有了这个参数,Python 再也不会傻傻分不清是哪个对象在 ...
- 《杜增强讲Unity之Tanks坦克大战》2-场景设置
2 场景设置 2.1 本节效果预览 2.2 项目目录设置 点击Project面板的Create按钮,在根目录下面新建wm文件夹 Wm文件夹用于存放我们自己生成的Prefab和脚本等其他资源, ...
- TP里where的查询方式,比如or应该怎么写?
这应该是个基础..只是我没有系统的学TP,所以用到了临时查了手册. 正常来说,thinkphp里的查询方式是: ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用数组或者对象来 ...
- log4cpp简单使用及踩到的坑
log4cpp是log4j的一个扩展, C++开发者可用该库记录日志,可输出到终端,亦可保存到文件. 下面简单demo展示如何输出日志到输出终端. #include <iostream> ...
- Spring Boot之拦截器与过滤器(完整版)
作者:liuxiaopeng 链接:http://www.cnblogs.com/paddix 作者:蓝精灵lx原文:https://blog.csdn.net/liuxiao723846/artic ...
- Hyperledger Fabric CA User’s Guide——CA用户指南(一)
Fabric CA用户指南 Hyperledger Fabric CA是一种用于Hyperledger Fabric的认证机构(CA). 它提供了如下特性: 登记身份(注册ID),或者连接到作为用户注 ...