接口測試框架


接口測試不像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,前面的文章已經講過了。

暫時先介紹到這吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM