Hitchhiker 是一款開源的支持多人協(xié)作的 Restful Api 測試工具囚灼,支持Schedule, 數(shù)據(jù)對比呛踊,壓力測試,支持上傳腳本定制請求啦撮,可以輕松部署到本地谭网,和你的team成員一起管理Api。
詳細介紹請看: http://doc.hitchhiker-api.com/cn/introduction.html
在線體驗: http://www.hitchhiker-api.com/赃春, 可以用 try without login
來免登錄使用 (在線演示不支持壓力測試和上傳js愉择,虛擬機單核的,撐不住)锥涕。
下面來看看這次的更新:
request和setRequest
Script 增加屬性request來得到請求的信息衷戈,包括 method, url, headers, body。
const req = hitchhiker.request;
const {url, headers, method, body} = req;
另外增加了一個方法 setRequest(request)层坠,這個方法是對請求進行修改殖妇。
request和setRequest配合著一起用就可以在請求發(fā)送前對其進行適當(dāng)?shù)木庉嫞热缭黾右粋€簽名破花,增加一個header之類谦趣。
const crypto = hitchhiker.require('crypto-js');
const sign = crypto.HmacSHA1('test', 'asdf');
const req = hitchhiker.request;
url = `${url}?sign=${sign}`;
hitchhiker.setRequest({...hitchhiker.request, url});
當(dāng)然,做得過份點座每,把GET請求變成POST請求也不是不行:
let url = hitchhiker.request.url;
url = `${url.substr(0, url.lastIndexOf('/'))}/post?c=d`;
hitchhiker.setRequest({...hitchhiker.request, url, body: '{"name":"brook"}', method: 'POST'});
Common Pre Request Script
之前有個Pre Request Script前鹅,是Request級別的,但一個Collection下往往有很多Request有幾乎相同的操作峭梳,如果每個Request去寫將會非常麻煩舰绘,維護也不方便。
一個典型的應(yīng)用場景是Collection下面所有的Request的url都需要在發(fā)送前加一個動態(tài)hash值葱椭,把這些通用的事情放到Collection 級別來做就會非常方便捂寿。
配置 inviteMemberDirectly
Hitchhiker 增加了一個新配置:inviteMemberDirectly, 用于決定邀請成員時是否需要發(fā)郵件孵运,還是直接拉到Project里來秦陋,默認是true。
背景是有些公司的server是不能訪問外網(wǎng)的掐松,也就用不了Hitchhiker提供的郵件功能,這時這個直接拉同事到Project里來的功能就非常有用了粪小。
當(dāng)然大磺,Hitchhiker是支持外部郵件接口的,其實如果愿意的話自己在內(nèi)網(wǎng)搭一個郵件服務(wù)器也不麻煩探膊。
具體這些配置可以參考:Configuration
Request Follow Redirect 和 Request Strict SSL
這兩個都是Collection下面的屬性杠愧。
Request Follow Redirect 用來設(shè)置這個Collection下面的請求是否在返回狀態(tài)碼為3xx時繼續(xù)重定向到下一個頁面,默認為false逞壁。
Request Strict SSL 用來設(shè)置這個Collection下面的請求在發(fā)送時是否需要做SSL證書的校驗流济,因為有些公司用的自己做的證書,這些證書在嚴格SSL模式下會返回證書錯誤信息腌闯,不勾這個選項的話就會忽略這種錯誤绳瘟,默認為false。
整理文檔
把文檔重新整理了一遍姿骏,使用gitbook來寫和發(fā)布糖声,不過gitbook貌似在國內(nèi)經(jīng)常被墻,所以在hitchhiker的網(wǎng)站上也放了一份,方便查閱蘸泻。
文檔地址:http://doc.hitchhiker-api.com/cn/introduction.html
畫了一個Script流程圖:
后續(xù)計劃
接下來的一個主要目標是讓壓力測試支持ES6和支持js庫琉苇,不過因為壓力點是用GO寫的,用的otto的解釋器悦施,而otto只支持到ES5并扇,需要在server做下轉(zhuǎn)換,另外還要支持async/await抡诞,可能會有點麻煩穷蛹。
Github: https://github.com/brookshi/Hitchhiker, 覺得不錯的話麻煩 Star 支持下沐绒,謝謝俩莽。