Hitchhiker 是一款開源的 Restful Api 集成測試工具,你能夠輕鬆部署到本地,和你的team成員一塊兒管理Api。git
詳細介紹請看: http://www.cnblogs.com/brookshi/p/7440663.htmgithub
在線體驗:http://www.hitchhiker-api.com/ , 能夠用 try without login
來免登陸使用。json
什麼是參數化請求,就是把一個Api裏可變的點提取出來,參數化,這樣就能夠用一個Case覆蓋到全部可變請求。api
參考下圖(比較大,可能會比較慢出來):parameters
就是用來構建參數化請求的,請求一般有不少參數,好比query string, body裏的變化點等,這些參數可能會有不止一個值,每一個都要覆蓋的話須要寫不少request。數組
舉個例子:好比一個request有三個可變的參數A
, B
, C
,每一個參數又分別有3個值,A的1,2,3
, B的4,5,6
, C的7,8,9
,這樣隨機組合下來會有3*3*3=27
個request:app
147 148 148 157 158 159 167 168 169 247 248 248 257 258 259 267 268 269 347 348 348 357 358 359 367 368 369
很麻煩有沒有,若是再多兩個參數呢,輕鬆過百了呀,想一想都頭大,但其實它們之間只是一點不一樣,何須要費這麼大勁呢,參數化請求能夠幫你作這個事,只須要把可變的參數寫在parameter裏面,Hitchhiker會自動構建出全部request。函數
parameters
有兩種組合方式,一種是全部組合Many to Many
,另外一種是一對一組合One to One
,上面生個27個request的就是ManytoMany
,若是用一對一組合的話就只有3個,分別是:147, 258, 369
。工具
Parameters
的格式是一個json對象,對象的下一層是變量以及它的值:數組。看個例子:測試
{ "A": [1, 2, 3], "B": [3, 4, 5], "C": [7, 8, 9] }
使用的方式同變量同樣,用{{}}
包起來。code
下圖就展現了參數化請求的使用方式,可變的三個參數name
, pwd
, age
。
name
有兩個值:tom
和jerry
, pwd
有兩個值:123
和456
,age
也是兩個值:20
和18
,使用OnetoOne
時會生成兩個請求:name:tom, pwd:123, age:20
和name:jerry, pwd:456, age:18
,一一對應的,能夠分別請求,也能夠一塊兒請求。
若是選了ManytoMany
就會有8個請求,這裏就不一一列舉出來。
參數化請求的request保存後左邊對應的item裏會顯示出請求的真正個數,如圖中的8
。
參數化請求跑schedule同樣沒問題,會自動拆分開跑和顯示。
大圖:右鍵新標籤打開圖片
Hitchhiker的一個重要功能就是能夠對比不一樣環境的返回數據,以前是直接對比response,但實際上每每想要對比的是其中一部分或去掉可變部分,考慮一種狀況,返回的response裏帶有一個當前時間,也就表示每次返回的數據都是不一樣的,由於時間確定不同,這樣就影響了對比結果,可是這個時間沒什麼對比意義,因此咱們須要在對比前把它去掉,這時能夠用這個功能了。
具體用法:在test
裏用js處理responseObj
,而後用$export$(data)
函數導出處理後的數據(data就是處理後的數據),而後跑schedule
時就會用導出的數據進行對比了。
以前有加一個header收藏功能,方便使用一些經常使用的header,可是有些server會校驗一些請求頭,好比Accept
,UserAgent
等,這個是每一個請求都須要帶的,每一個request都寫也有些麻煩,如今能夠配置一些默認header,這些header能夠在根目錄下的appconfig.json裏配置,默認定義的是這些:
"defaultHeaders": [ "Accept:*/*", "User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36", "Cache-Control:no-cache" ]
能夠根據須要自行修改。
原本的計劃是兩週一版本,其中一週作小版本的新功能和改bug,另外一週作大版本的壓力測試。不過此次參數化請求比預想的要麻煩些,上面兩週時間基本都花這上面了,壓力測試這塊就沒進展,下兩週除了改bug外就全力作壓力測試這塊,但願國慶事後能作到差很少。
Github: https://github.com/brookshi/Hitchhiker, 以爲不錯的話麻煩 Star 支持下,謝謝。