一、测试系统分析
不同系统有不同的接口,通过分析这些接口,提取共同点可以得到不同地区的系统共有的接口。
如:登录、登出、用户信息完善等接口
二、表格设计
- 不同列定义不同的参数
- 不同行定义不同的地区
- 由于不同地区的接口加密方式不同,所以直接在表格中规定接口的地区、接口地址、验签方式(encryption_type)、密钥等字段。
三、表格解析
解析方法
package com.Auto_Test.utils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadCSV {
public Workbook workbook;
public Sheet sheet;
public Cell cell;
int rows;
int columns;
public String fileName;
public String caseName;
public ArrayList<String> arrkey = new ArrayList<>();
String sourceFile;
/**
* @param fileName excel文件名
* @param caseName sheet名
*/
public ReadCSV(String fileName, String caseName) {
super();
this.fileName = fileName;
this.caseName = caseName;
}
/**
* 获得excel表中的数据
*/
public Object[][] getExcelData() throws BiffException, IOException {
workbook = Workbook.getWorkbook(new File(getPath()));
sheet = workbook.getSheet(caseName);
rows = sheet.getRows();
columns = sheet.getColumns();
// 为了返回值是Object[][],定义一个多行单列的二维数组
HashMap<String, String>[][] arrmap = new HashMap[rows - 1][1];
// 对数组中所有元素hashmap进行初始化
if (rows > 1) {
for (int i = 0; i < rows - 1; i++) {
arrmap[i][0] = new HashMap<>();
}
} else {
System.out.println("excel中没有数据");
}
// 获得首行的列名,作为hashmap的key值
for (int c = 0; c < columns; c++) {
String cellvalue = sheet.getCell(c, 0).getContents();
arrkey.add(cellvalue);
}
// 遍历所有的单元格的值添加到hashmap中
for (int r = 1; r < rows; r++) {
for (int c = 0; c < columns; c++) {
String cellvalue = sheet.getCell(c, r).getContents();
arrmap[r - 1][0].put(arrkey.get(c), cellvalue);
}
}
return arrmap;
}
/**
* 获得excel文件的路径
* @return
* @throws IOException
*/
public String getPath() throws IOException {
File directory = new File(".");
sourceFile = directory.getCanonicalPath() + "\\src\\"
+ fileName + ".xls";
return sourceFile;
}
}
需要此项目的可以加我微信15224918643获取,也可以一起交流技术。
欢迎打扰