發表文章

目前顯示的是 8月, 2017的文章

Mock Server&契約測試

圖片
Mock Server&契約測試 這篇文章會介紹如何運用 Mock Server 和 Integration Contract Test(契約測試)解決一些在前後端分離的開發環境底下會碰到的問題。 大綱如下: 什麼是 Mock Server? 為什麼需要 Mock Server? 如何使用 Mock Server? 什麼是契約測試? 為什麼需要契約測試? 什麼是 Mock Server? 下圖是傳統的前後端分離架構: 當後端 API 還沒開發完成的時候,前端會需要一個可以暫時回應假資料(mock data)的 mock server,如下圖: 等到後端的 API 開發完成之後,前端只需要將 API endpoint 從 mock server 切回 remote server 就可以使用真實資料,如下圖: 為什麼需要 Mock Server? 一句話,因為有了 Mock Server 之後,前後端就能夠並行開發。 如何使用 Mock Server? 這裡會介紹兩種方法: Postman Mock Service Puer Mock Server Postman Mock Service Postman 是前後端在開發上很常用到的一款 HTTP Client 應用程式,主要是拿來測試 API,除了有好用的 Collection Test Runner 之外(詳見《 基於 Postman 的 API 自動化測試 》),其實 Postman 還有提供 Mock Service 的功能,大致流程如下: 送出一個 request(R1) 儲存 R1 至 Collection(C1) 編輯 R1 的 response,儲存成為一個 example(P1) 建立一個 C1 的 Mock Server(M1) 再次向 M1 送出 R1,即會收到格式為 P1 的 response 詳細操作方法請見官方教學文章《 Mocking with examples 》。 但是使用 Postman Mock Service 會碰到一個問題,雖然 Postman 可以同時 mock 多筆 API,但是一個頁面可能會同時存在「需要 mock 的 API」和「後端已經寫好