Hitchhiker 是一款開源的 Restful Api 測試工具,支援Schedule, 資料對比,壓力測試,支援上傳指令碼定製請求,可以輕鬆部署到本地,和你的team成員一起管理Api。
詳細介紹請看: www.cnblogs.com/brookshi/p/…
線上體驗: www.hitchhiker-api.com/, 可以用 try without login
來免登入使用 (線上演示不支援壓力測試和上傳js,虛擬機器單核的,撐不住)。
下面來看看這次的更新:
Pre Request Script
這個算是之前就想實現的,拖了會,不過也是有朋友在github裡的issue裡提出,正好促使我完成這個功能。
在Pre Request Script裡寫的指令碼會在請求傳送前執行,這就使得可以在請求傳送前處理一些事情,比如生成一個md5給請求使用,或者讀取檔案內容,再或者在請求前先請求一個資料,把這個資料做為變數給現在的請求使用,可以做的事有很多,發揮的餘地很大。
現在在指令碼里可以使用的方法有:
require // 這個做js的都懂,有了這個就有無限可能,內建了`lodash`, `request`, `cypro-js`等庫,重要的是支援上傳js庫
readFile // 讀取檔案
readFileByReader // 使用自定義的方法讀取檔案,比如讀取excel
saveFile // 儲存檔案
removeFile // 刪除檔案
setEnvVariable // 設定環境變數
getEnvVariable // 獲取環境變數
removeEnvVariable // 刪除環境變數
environment // 獲取當前環境的名字複製程式碼
當然上面的函式同樣可以在Test中使用,下面這些只在Test裡支援:
responseBody
responseObj
responseHeaders
responseTime
responseCode.code
responseCode.name複製程式碼
專案資料夾
對每個專案來說都有一個data
資料夾和一個lib
資料夾。data
資料夾用於上傳一些測試所需要的資料,可以是任何格式,只要你能讀取。lib
資料夾則用於上傳一些js庫,需要先壓縮成zip格式,上傳後會自動解壓。
然後在指令碼里就可以通過 readFile
讀取 data
資料夾下的檔案,或者通過 saveFile
儲存檔案到這個資料夾。
同樣可以在指令碼通過require
來引用上傳的js庫,然後使用它。
除了專案資料夾外其實還有一個全域性的資料夾,這個資料夾可以放一些全域性的js庫或資料,比如已經內建了一些常用的js庫:uuid
,lodash
等。
schedule支援以小時或分鐘為單位
這個算是呼聲比較高的,之前只是做到按天來跑schedule,後來收到不少這方面的需求,所以增加了以小時或分鐘為單位的schedule。
支援自定義郵件傳送介面
這個也算是剛需了,因為很多公司會過濾一些來源不明的郵件,所以 Hitchhiker發出的郵件很可能會收不到,現在增加了一個自定義的郵件介面,Hitchhiker會把資料post到這個介面上,就可以使用公司的郵箱來接發郵箱了。
開放schedule的run now介面以便其他程式呼叫
有朋友表示想在Jenkins裡呼叫Schedule的Run介面,這是個好方法,所以開放了這個介面出來,方便其他程式呼叫。
Bug fix
- schedule的順序執行無效
- sync有時會覆蓋使用者已經更改的資料
- sync時環境變數編輯對應框裡的內容會被清掉
後續計劃
現在的Pre Request Script和資料夾系統在壓力測試下是不支援的,這個得想個辦法支援起來,另外一個是文件,現在文件有點亂,得整理下。
Github: github.com/brookshi/Hi…, 覺得不錯的話麻煩 Star 支援下,謝謝。