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

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]
}

使用的方式同變量一樣,用{{}}包起來。

下圖就展示了參數化請求的使用方式,可變的三個參數namepwdagename有兩個值: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 支持下,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章