接口測試框架

接口測試不像UI測試有界面,比較直觀,其實核心的測試思想都是一致的,主要驗證接口是否通,接口之間的傳遞是否正常,把正常的狀況考慮進去,再考慮一些異常狀況。通常的接口測試能夠用瀏覽器插件,如postman、restclient等,接口較多的話也能夠用loadrunner、jmeter、soapui等工具,目前業內用的比較多的仍是本身封裝一套測試框架,進行自動化測試。java

近日整理了一下接口的測試框架,雖然比較low,但也算本身的成果和總結,目前這套框架的主要工做量是在excel中寫用例上,即把ip、端口、請求方式,參數及響應的參數值等在excel中配置好後,由用例層去調起這個sheet頁,而後交給數據驅動,數據驅動根據配置的優先級去讀取測試數據,把符合用例優先級的測試數據提供給測試類。測試類把測試數據再提供給執行器,由執行器去請求,並把請求結果存到對象中。供後者調用使用。數據庫

接口測試中比較麻煩的仍是對返回結果的一個斷言,有的接口返回結果簡單,有的接口返回結果比較複雜,json中有數組,且字段多。具體咱們以什麼爲預期結果,仍是得實際狀況實際考慮,能夠從數據庫中取值,也能夠設定好場景,存爲國定值。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() {
    }
}

二、再定義一個方法,是返回這個表頭的所在列數ide

    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;
    }

三、這樣就有了excel的列數,行數是測試驅動類提供的,sheet頁是測試驅動經過java反射獲取到的,這樣有了excel的sheet、行數、列數,就能夠自動的存貯值了。工具

四、json處理的話仍是推薦用jsonpath,前面的文章已經講過了。post

暫時先介紹到這吧。測試

相關文章
相關標籤/搜索