rest-assured接口自动化(二):往execl中增加用例,自动执行所有接口

利用空闲之余,写了第一个接口自动化测试demo, 通过读取execl中的接口测试用例,接口自动执行。(这里跟很多网上的接口自动化有点不同的是:无需再写代码,只需要从execl中增加用例,就可执行)。
这是execl的模板:
在这里插入图片描述
这个模板可以很好的管理项目的各个模块,看起来也是简洁,也是颇为喜欢的~~
主要就是写了这几个类,完成了接口自动化的第一步:
在这里插入图片描述
在尝试写这个demo时,最大的问题困扰的我是:每个请求的参数方式(请求参数和body参数)不一致,个数不一致。怎样能用简洁的方式实现? 最终解决的办法就是:
在execl中增加参数类型判断:paramType, 如果是params,封装一个将json格式的字符串转换成map格式,如果是body, 就直接使用execl中的json格式。

好了,上代码(只是简单的实现,还没有很多处理,如果你们有幸看到,可以自己在这个基础上改进完善,我也会一直完善这个框架,嘻~~)

首先是util:
execlUtil:读取execl数据

package utils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
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.XSSFWorkbook;

public class ExcelUtils {
    Sheet sheet = null;
    Row row = null;
    List<Map<String,String>> list = null;
    String cellData = null;
    String filePath =System.getProperty("user.dir")+"/XapiCaseData/ScooperApiTestCase.xlsx";
    String columns[] = {"caseName","caseDescription","isRun","baseURI","path","method","paramType","params"};
    Workbook wb = readExcel(filePath);

    /**
     * 获取excel的sheet的数量
     */
    public int getSheetNum(){
        return wb.getNumberOfSheets();
    }

    /**
     * 获取excel的sheet[]的名字
     */
    public String getSheetName(int i){
        return wb.getSheetName(i);
    }

    /**
     * 读取sheet里的接口用例参数:
           "caseName","caseDescription","isRun","baseURI","path","method","paramType","params"
     * @param sheetNum
     * @return List
     */
    public List<Map<String,String>> getTestData(int sheetNum) {
           //获取sheet
           sheet = wb.getSheetAt(sheetNum);
           if(wb != null){
                //用来存放表中数据
                list = new ArrayList<Map<String,String>>();
                //获取最大行数
                int rownum = sheet.getPhysicalNumberOfRows();
                //获取第一行
                row = sheet.getRow(0);
                //获取最大列数
                int colnum = row.getPhysicalNumberOfCells();
                //循环遍历各个sheets的行和列值添加到List集合
                for (int i 
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值