定義了RestFul Api,必須先做單元測試,確定Api可用,然後再交給别人去調用,這樣才能確定工作進度。下面我就說說我測試Api的幾種方法,具體怎麼測試這裡不做較長的描述。
(1)使用Apache的jmeter測試工具,很友善,可以批量測試Api,
(2) 使用JerseyClient寫測試程式。因為我們用的是jersey實作的RestFul。
(3) 使用浏覽器插件工具,我用的是火狐的插件RESTClient
(4)使用curl指令行工具。
使用工具測試Api,GET方法還好,如果是POST方法需要指定方法的Headers(資料格式),Body(請求參數),Api的url。
Body請求參數,如何擷取呢,在這裡我使用了Gson,先用java組織參數對象,然後用Gson将參數對象轉化為json串。
Gson gson = new Gson();
String wqtString = gson.toJson(wqt);
System.out.println(wqtString)
舉例說明:
我們架構中封裝了一個查詢參數WebQueryTerm。我擷取到它的json串格式為:
{"page":{"number":1,"size":10,"total":0,"sorts":[{"field":"creationTime","type":"DESC"}]},"terms":[{"field":"appType","operator":"equal","value":"0"}]}
其中
page表示分頁屬性。number目前頁,size一頁顯示多少條資料,
sorts排序:field表示排序字段。type表示排序類型,是desc降序還是asc升序
terms表示查詢。field表示查詢字段;operator表示是模糊查詢Like還是精确查詢Equal,value表示你輸入的查詢值。
這裡簡單說一下,怎麼使用火狐的RESTClient。
(1)首先,在火狐浏覽器菜單-附件元件-插件,中搜尋RESTClient,并安裝
(2)打開RESTClient,點選菜單Headers。輸入自定義Request Headers。例如Name = Content-Type Value=application/json 點選okay!
(3)選擇Method,我選擇Post,因為我測試擷取應用清單,帶分頁,帶查詢條件。
(4)輸入api資源的url:http://192.168.1.183:8080/osd/rest/app/get_app_list
(5)輸入上面的請求參數json串。
(6)點選Send請求API。
結果檢視:Response Headers如果Status Code =200 ok則表明API沒有異常
再看Response Body傳回資料,是否滿足你的要求。測試工作完成!