WireMock 僞造 REST 服務

1.簡介


WireMock是一個針對Web Service測試樁(stubbing)和模擬函數(mocking)開發庫。與一般通用的模擬工具不同,WireMock會實際創建一個HTTP服務器,測試代碼對其連接後進行測試。WireMock支持HTTP響應樁,提供針對測試樁的請求驗證、代理/攔截、記錄/回放以及故障植入。既可以在單元測試中使用,也可以部署到一個獨立的測試環境。儘管WireMock採用Java編寫,但你仍然使用多種編程語言通過JSON API調用。(來自於 :http://hao.jobbole.com/wiremock/) 
當使用前後端分離的模式進行開發的時候.當後端api 沒有開發完成而前端需使用數據時.如果使用前端人員自己編造數據的方法.如果是隻有一端還好.如果是有web .安卓、ios、等等不同的的開發人員僞造的數據難免 良莠不齊.對開發進度造成影響,這個時候需要一個 僞造 REST 服務 來提供一個統一的規範的數據.


2 安裝


首先下載WireMock http://wiremock.org/docs/running-standalone/ 
下載下來是一個jar 使用命令 java -jar wiremock-standalone-2.10.1.jar –port 8080 
啓動wiremock 設置端口爲8080


3.碼代碼


添加pom依賴


<dependency>
    <groupId>com.github.tomakehurst</groupId>
    <artifactId>wiremock</artifactId>
</dependency>


編寫一個類向wiremock 中寫入服務


public class MockServer {


    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        configureFor(8080);
        removeAllMappings();
        mock("/order/1", "01");
        mock("/order/2", "02");
    }
    private static void mock(String url, String file) throws IOException {
        ClassPathResource resource = new ClassPathResource("mock/response/" + file + ".txt");
        String content = StringUtils.join(FileUtils.readLines(resource.getFile(), "UTF-8").toArray(), "\n");
        stubFor(get(urlPathEqualTo(url)).willReturn(aResponse().withBody(content).withStatus(200)));
    }


}


上述代碼只創建了一個簡單的get請求勢力 其他的請求 請自行觀看文檔 wiremock.org/docs/ 
在src/main/resources 中創建 mock/response/ 文件夾 在其中寫入對應的json 字符串 
如1.txt中寫入


{
    "id":1,
    "type":"C"
}


運行main方法 刷入到WireMock 中 
在瀏覽器中訪問http://localhost:8080/order/1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章