接口测试框架

接口测试不像UI测试有界面,比较直观,其实核心的测试思想都是一致的,主要验证接口是否通,接口之间的传递是否正常,把正常的情况考虑进去,再考虑一些异常情况。一般的接口测试可以用浏览器插件,如postman、restclient等,接口较多的话也可以用loadrunner、jmeter、soapui等工具,目前业内用的比较多的还是自己封装一套测试框架,进行自动化测试。

近日整理了一下接口的测试框架,虽然比较low,但也算自己的成果和总结,目前这套框架的主要工作量是在excel中写用例上,即把ip、端口、请求方式,参数及响应的参数值等在excel中配置好后,由用例层去调起这个sheet页,然后交给数据驱动,数据驱动根据配置的优先级去读取测试数据,把符合用例优先级的测试数据提供给测试类。测试类把测试数据再提供给执行器,由执行器去请求,并把请求结果存到对象中。供后者调用使用。

接口测试中比较麻烦的还是对返回结果的一个断言,有的接口返回结果简单,有的接口返回结果比较复杂,json中有数组,且字段多。具体我们以什么为预期结果,还是得实际情况实际考虑,可以从数据库中取值,也可以设定好场景,存为国定值。

下图是我简单画了一个流程图,不对之处还望读者指出。

拿其中的结果存储举例。excel的样式

1.要自动存储到excel中的话,需要知道存储的目标位置,这里定义了一个枚举,是excel中的表头。

package com.core.ienum;
/** 
 * @author QiaoJiafei 
 * @version 创建时间:2016年3月4日 下午3:41:00 
 * 类说明 
 */
public enum ExcelHeaders {
    StatusCode(){
        @Override
        public String toString() {
            return "StatusCode";
        }
    },
    ResponseJson(){
        @Override
        public String toString() {
            return "ResponseJson";
        }
    },
    ResultCode(){
        @Override
        public String toString() {
            return "ResultCode";
        }
    },
    Result(){
        @Override
        public String toString() {
            return "Result";
        }
    },
    RUN(){
        @Override
        public String toString() {
            return "RUN";
        }
    };
    ExcelHeaders() {
    }
}

2、再定义一个方法,是返回这个表头的所在列数

    private int getheaderColNum(ExcelHeaders headers) {
        int colNum = 0;
        int startCol = 3;
        int paramcount = Integer.parseInt(OptionFile.getExcel("./excel/testresultnew.xls", sheet, 1, 4));
        
        switch (headers) {
        case StatusCode:
            colNum = startCol+paramcount+1;
            break;

        case ResponseJson:
            colNum = startCol+paramcount+2;
            break;
            
        case ResultCode:
            colNum = startCol+paramcount+3;
            break;
            
        case Result:
            colNum = startCol+paramcount+5;
            break;
            
        case RUN:
            colNum = startCol+paramcount+6;
            break;

        default:
            break;
        }
        return colNum;
    }

3、这样就有了excel的列数,行数是测试驱动类提供的,sheet页是测试驱动通过java反射获取到的,这样有了excel的sheet、行数、列数,就可以自动的存贮值了。

4、json处理的话还是推荐用jsonpath,前面的文章已经讲过了。

暂时先介绍到这吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值