Hitchhiker 是一款開源的 Restful Api 測試工具,支持Schedule, 數據對比,壓力測試,支持上傳腳本定製請求,可以輕鬆部署到本地,和你的team成員一起管理Api。
詳細介紹請看: http://www.cnblogs.com/brookshi/p/7440663.html
在線體驗: http://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: https://github.com/brookshi/Hitchhiker, 覺得不錯的話麻煩 Star 支持下,謝謝。