利用eolinker實現api接口mock測試(mock server)


轉載:http://blog.csdn.net/naicha_qin/article/details/78276172

前后端分離或者是進行單元測試的時候,必須要用mock api替換掉第三方調用或者是實際的API,eolinker提供了非常全面的mock api支持,其他那些需要安裝配置的mock server就不說了,有現成的干嘛還要自己搭。

 

Api信息如下,url里面可以把根路徑去掉,直接寫api的地址就行。到時候在項目里面統一配置線上環境以及測試環境的地址前綴,切換就好。

 

 

 

在api的編輯頁面,高級mock里面,輸入mock的規則就行。eolinker的mock是基於mockjs來改的,不過規則大同小異,規則可以參考這里http://mockjs.com/examples.html

 

編輯完成之后,回到api的詳情頁面,在mock的標簽下面會看到有一個url,復制到項目里面就行。因為地址前綴是統一的,所以可以按照剛剛說的,在項目里統一配置一個測試的前綴,到時候上線就換成生產環境的前綴既可。支持restful這點還是非常不錯的,似乎是我目前看到唯一支持restful的mock server?

 

用到項目里面大概是這樣的(只是簡單寫了個demo):

 

[java]  view plain  copy
 
  1. public class MockServerTest {  
  2.     @Test  
  3.     public void testMockServer() throws IOException {  
  4.         mockClient.when(  
  5.                 request()  
  6.                         .withPath("http://mock.eolinker.com/TPivSvI55cabdf9f2243a023dc6a76ec9514dc38084c19d?uri=/bestedu/course/primarySchool")  
  7.                         .withMethod("POST")  
  8. //                        .withHeader(new Header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN))  
  9. //                        .withQueryStringParameter(new Parameter("my-token", "12345"))  
  10.         ).respond(  
  11.                 response()  
  12.                         .withStatusCode(200)  
  13.                         .withBody(expected)  
  14.         );  
  15.         CloseableHttpClient client = HttpClients.createDefault();  
  16.         HttpGet httpGet = new HttpPost("http://mock.eolinker.com/TPivSvI55cabdf9f2243a023dc6a76ec9514dc38084c19d?uri=/bestedu/course/primarySchool");  
  17.         CloseableHttpResponse response = client.execute(httpGet);  
  18.         //驗證輸出是否是正確  
  19.         InputStream content = response.getEntity().getContent();  
  20.         InputStreamReader inputStreamReader = new InputStreamReader(content);  
  21.         BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  
  22.         String responseText = bufferedReader.readLine();  
  23.         assertThat(responseText, equalTo(expected));  
  24.     }  
  25. }  

 

除了返回mock數據之外,eolinker還有對請求方式以及參數的校驗,如果不對的話還會提示,這個還是很cool的。but,對於mock的校驗只有企業版才有,默默希望到時候技術老大可以批一下。。。

 

總結:

不重復造輪子,現在很多人崇尚自己去搞一套服務啊啥的,研究一下還行,真的干活還是簡單粗暴到手即用最好。何況現在也在推崇遠程辦公,eolinker在這一塊我覺得做的還是ok的。


免責聲明!

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



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