Hitchhiker:原創開源API協作測試工具

Glen Wang發表於2017-10-26

原文:Hitchhiker:原創開源API協作測試工具

enter image description here

Hitchhiker 是一款開源的 Restful Api 整合測試工具,支援Schedule, 資料對比,壓力測試,可以輕鬆部署到本地,和你的team成員一起管理Api。

訪問 http://www.hitchhiker-api.com 測試,可以點選 try without login, 另外,為了免備案,伺服器在海外的,所以速度上可能會有點慢,請諒解。(線上演示不支援壓力測試)

簡單介紹

背景是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文件 (計劃中...)

壓力測試

Hitchhiker-Node

展示

閱讀原文訪問。

部署

首推使用 docker 部署,簡單快捷,具體操作參考 deploy with docker

如果沒有docker環境也可以使用原始碼部署,也很簡單

linux 請參考 deploy to linux

windows 請參考 deploy to win

瀏覽器

只在Chrome(推薦)和Firefox下測試過,其他的暫不考慮。 這個工具的使用者應該是Developer或QA,沒理由沒有Chrome和Firefox中的一個。

用到的技術

前後端分離,前端採用 React + Redux + AntDesign,後端基於 Nodejs, 採用 Koajs + TypeORM + MySQL。

語言統一用的 Typescript。

測試前端用Jest,覆蓋了邏輯最多的 reducer,後端使用的就是本工具來測試自己,這對時間有限的我來說算是最有價效比的選擇。

License

GPL-2.0 + 禁止商用

開源

可以訪問 http://www.hitchhiker-api.com/ 來使用,點選 try without login 免註冊登入使用,另外,為了免備案,伺服器在海外的,所以速度上可能會有點慢,抽瘋時可能訪問不了,請諒解。

所以最好還是在本地區域網部署,用起來會比較爽。

Github: https://github.com/brookshi/Hitchhiker, 覺得不錯的話麻煩 Star 支援下,謝謝。

閱讀原文,訪問文中連結。

相關文章