一、测试需求描述
对服务后台一系列的http接口功能测试。
输入:根据接口描述构造不同的参数输入值(Json格式)
输出:字符串(传入的方式+传入的字符串)
http://localhost:8090/lctest/TestServer
二、程序设计
1、Client程序设计
读取Excel配置的测试用例数据
发送参数Json格式给Server,接收Server的返回数据
进行数据比对校验,返回测试结果,将数据插入到Excel中
2、Server端程序设计
接受Client的参数,进行解析
发送返回数据给client
三、实现方法
1、选用Java脚本来驱动测试
2、采用Excel表格管理测试数据,包括用例的管理、测试数据录入、测试结果显示等等,这个需要封装一个Excel的类。
3、调用http接口采用java自带的的API
4、测试需要的将参数转化成字符串
5、通过预期结果和实际结果的对比,将实际结果和对比结果写入Excel用例中,这里封装了一个类
6、首次执行测试采用人工检查输出的是否正确,一旦正确写入Excel的期望结果中,如果发现错误手工修正为预期文件。
四、Excel表格设计
五、代码结构
六、实现代码
1、ExcelUtil.java
- package client;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import org.apache.poi.hssf.usermodel.HSSFRichTextString;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.poifs.filesystem.POIFSFileSystem;
- public class ExcelUtil {
-
- //读取Excel中数据
- public static List<Param> read() throws Exception{
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet();
- HSSFRow row = s.createRow(0);
- HSSFCell cell = row.createCell((int)0,0);
- //------------从xls读出数据
- wb = new HSSFWorkbook(new FileInputStream("D:\\learn\\test.xls"));
- s = wb.getSheetAt(0);
-
- //获得EXCEL行数
- int rowNums=s.getLastRowNum();
- //获得Excell列数
- //int columnNum=r.getPhysicalNumberOfCells();
-
- List<Param> params=new ArrayList<Param>();
- for(int i=1;i<=rowNums;i++){
- HSSFRow r = s.getRow(i);
- cell=r.getCell(0);
- Param param= new Param();
- param.setNo(r.getCell(0).getStringCellValue());
- param.setName(r.getCell(1).getStringCellValue());
- param.setAge(r.getCell(2).getStringCellValue());
- param.setSex(r.getCell(3).getStringCellValue());
- param.setExpResu(r.getCell(4).getStringCellValue());
- // System.out.println(cell.getRichStringCellValue());
- params.add(param);
- }
- return params;
- }
- /**
- * 写入Excel,在任意坐标处写入数据。
- * String value:你要输入的内容
- * int x :行坐标,Excel从 0 算起
- * int y :列坐标,Excel从 0 算起
- */
- public static void writeCell(String filePath,int x,int y,String value) {
- try {
- // 创建Excel的工作书册 Workbook,对应到一个excel文档
- HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath));
- HSSFSheet sheet=wb.getSheetAt(0);
- HSSFRow row=sheet.getRow(x);
- HSSFCell cell=row.getCell((short) y);
- cell.setCellValue(value);
- FileOutputStream os;
- os = new FileOutputStream(filePath);
- wb.write(os);
- os.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
复制代码
2、JsonsUtil.java- package client;
- import java.text.ParseException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- /**
- * 使用json-lib构造和解析Json数据
- */
- public class JsonsUtil {
- /**将Bean转换成Map
- * 将Map转换Json数据
- */public static String BuildJson(Param param) throws JSONException {
-
- Map<String, String> map1 = new HashMap<String, String>();
- map1.put("no", param.getNo());
- map1.put("name", param.getName());
- map1.put("age", param.getAge());
- map1.put("sex", param.getSex());
- // map1.put("expResu", param.getExpResu());
- // JSON格式数据解析对象
- JSONObject jo = new JSONObject();
- // 将Map转换为JSONArray数据
- JSONArray ja = new JSONArray();
- ja.put(map1);
- // System.out.println("JSONArray对象数据格式:"+ja.toString());
- jo.put("map", ja);
- // System.out.println("最终构造的JSON数据格式:"+jo.toString());
- return jo.toString();
- }
- /**
- * 解析Json数据
- *
- */public static JSONArray ParseJson(String jsonString) throws JSONException,
- ParseException {
- JSONObject jo = new JSONObject(jsonString);
- JSONArray ja = jo.getJSONArray("map");
- // System.out.println(ja.getJSONObject(0).getString("name"));
- return ja;
- }
- }
复制代码
3、Param.java
- package client;
- public class Param {
-
- String no;//编号
- String name;//姓名
- String age;//年龄
- String sex;//性别
- String expResu;//期望结果
- String actResu;//实际结果
- String pass;//是否通过
- String desc;//描述
-
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNo() {
- return no;
- }
- public void setNo(String no) {
- this.no = no;
- }
- public String getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public String getExpResu() {
- return expResu;
- }
- public void setExpResu(String expResu) {
- this.expResu = expResu;
- }
- public String getActResu() {
- return actResu;
- }
- public void setActResu(String actResu) {
- this.actResu = actResu;
- }
- public String getPass() {
- return pass;
- }
- public void setPass(String pass) {
- this.pass = pass;
- }
- public String getDesc() {
- return desc;
- }
- public void setDesc(String desc) {
- this.desc = desc;
- }
- }
复制代码
|