接口測試不像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
暫時先介紹到這吧。測試