開源API集成測試工具 Hitchhiker v0.1.3 - 參數化請求

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

下圖就展現了參數化請求的使用方式,可變的三個參數namepwdage
name有兩個值:tomjerrypwd有兩個值:123456age也是兩個值:2018,使用OnetoOne時會生成兩個請求:name:tom, pwd:123, age:20name: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 支持下,謝謝。

相關文章
相關標籤/搜索