Hitchhiker 是一款開源的 Restful Api 集成測試工具,你可以在輕鬆部署到本地,和你的team成員一起管理Api。
先上圖看看:
簡單介紹
背景是Team在開發一些Api,這些Api依賴於其他Team的Api,依賴的Api是比較底層且比較大的,用起來不太方便且沒有詳細文檔。
在開發Api的過程中有一個問題讓我比較在意,我們Team是我先研究那個依賴的Api,過程不太容易,需要找文檔,找那個Team的人協作,找case 等,研究了一些後做了一些東西,後面隔了一段時間開始陸續有其他同事參與進來,每進來一個都去研究一下那個Api,包括我做了其他事情後再回來開發Api時又得找資料熟悉下,這個過程造成了很大程度的時間和經驗的浪費。
所以我覺得應該有款工具能讓Team的人一起協作開發Api,和Code一樣,每個人研究的東西可以保存下來方便其他開發,這就是開發Hitchhiker的第一個引子。
後來,Api開始發佈出去,爲減少QA的工作量,需要做一個Api的自動化測試工具來保證數據準確性,希望能讓測試環境的數據和生產上的數據作對比,這樣保證新開發的Api不影響到舊的,測試專注於新功能就好,這是第二個引子。
Api的性能也是個關鍵的指標,在大規模使用前也需要對Api的性能做測試,所以性能測試是Hitchhiker下一個目標。
如果Api是公開的話,文檔是必須的,試想如果我們依賴的Api文檔好的話不僅我們這邊容易,他們那邊其實也省事不少,至少我們不用去頻繁打擾他們了。不過寫文檔過程是比較痛苦的且更新很麻煩,但如果Api的case都已經有了的話,文檔的主體其實就有了,然後對參數加些說明就可以了,QA熟悉的話都可以幫着做,所以一個所見即所得並且支持模板的文檔也在計劃中。
其實我們之前也是有用過一些測試工具,但不是很滿意,就易用性來說,最好用的還是Postman,所以Hitchhiker的UI就是模仿它的,用過Postman的話會很容易上手。
能做什麼
- Team協作開發Api
- Api歷史修改記錄及支持diff展示
- 支持多環境變量及運行時變量,可以處理Api依賴問題
- 參數化請求,把query/body裏的變化點提取出來,構建出參數列表,極大減少request的數量
- 支持Schedule及批量run
- 不同環境下的請求數據對比 (eg: stage vs product)
- 支持在數據對比前對數據進行處理
- 易部署 (支持 docker, windows, linux), 數據都存在自己這裏,不會上傳及丟失
- 會記往任何修改,不用怕沒保存時session失效或系統重啓
- 支持導入Postman v1 collections
- 性能測試 (開發中...)
- Api文檔 (計劃中...)
如何部署
首推使用 docker 部署,簡單快捷,具體操作參考 deploy with docker
如果沒有docker環境也可以使用源碼部署,也很簡單
linux 請參考 deploy to linux
windows 請參考 deploy to win
如何使用
參考 使用說明
用到的技術
前後端分離,前端採用 React + Redux + AntDesign,後端基於 Nodejs, 採用 Koajs + TypeORM + MySQL。
語言統一用的 Typescript。
測試前端用Jest,覆蓋了邏輯最多的 reducer,後端使用的就是本工具來測試自己,這對時間有限的我來說算是最有性價比的選擇。
開源
可以訪問 http://www.hitchhiker-api.com/ 來使用,點擊 try without login
免註冊登錄使用,另外,爲了免備案,服務器在海外的,所以速度上可能會有點慢,抽瘋時可能訪問不了,請諒解。
所以最好還是在本地局域網部署,用起來會比較爽。
Github: https://github.com/brookshi/Hitchhiker, 覺得不錯的話麻煩 Star 支持下,謝謝。