Hitchhiker 是一款開源的 Restful Api 集成測試工具,你可以輕鬆部署到本地,和你的team成員一起管理Api。
詳細介紹請看: http://www.cnblogs.com/brookshi/p/7440663.htm
在線體驗:http://www.hitchhiker-api.com/ , 可以用 try without login
來免登錄使用。
這次版本主要增加一個重磅功能 - 參數化請求:
參數化請求
什麼是參數化請求,就是把一個Api裏可變的點提取出來,參數化,這樣就可以用一個Case覆蓋到所有可變請求。
參考下圖(比較大,可能會比較慢出來):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:
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] }
使用的方式同變量一樣,用{{}}
包起來。
下圖就展示了參數化請求的使用方式,可變的三個參數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
時就會用導出的數據進行對比了。
默認Headers
之前有加一個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 支持下,謝謝。