強大的API測試工具Hitchhiker v0.9 基於UI的斷言測試,回顧2017

v0.9是Hitchhiker在2017農曆年的最後一個版本,而起點正是剛過完2016農曆年,農曆2018即將到來,一年輪迴,今天寫點東西稍微回顧下hitchhiker的2017。git

先仍是說v0.9,此次版本發佈主要帶來一個新的輔助測試功能:免腳本的斷言測試,這是一個攜程的朋友提出來的需求。github

以前Hitchhiker支持在test腳本里寫 tests['assert'] = value 這樣來斷言,但不少QA其實並不會編程,或者會其餘語言但對js不熟,這樣斷言寫起來就不太方便,因此此次應朋友的需求加了這個功能:編程

上面動圖已經展現了功能和用法,具體就很少說了。api

回頭看下Hitchhiker的2017,一年過來,對這個項目來講結果還不錯,大小版本發了14個,github上有了1k+的star,我也所以認識了一些朋友,對技術上有也很多提高,整體看對我來講是成功了。服務器

https://github.com/brookshi/Hitchhiker併發

起初,大概是2016年年中,我開始負責公司一個API項目,由於是金融公司,對數據準確性要求很高,因此產生想法,作一個工具來輔助這個API項目的測試,減小溝通成本以及QA作regression時的壓力。後面準備了下,在2016年農曆年後,也就是17年的3月份,正式開始編碼實現功能。工具

因爲不懂設計,因此UI上參考了比較熟悉的一個成名已久的測試工具:Postman,這也致使:即便後來除了UI外,實現了不少Postman沒有的功能也仍是擺脫不了Postman的影子,很多人一看跟Postman同樣,以爲沒有意義,在這點上算是一個敗筆。不過也由於類Postman UI的易用性,讓使用Hitchhiker的人很容易上手,這又是一大優點,算是二者抵消吧。測試

當時,想要經過這個工具解決的問題只有2個:優化

  1. 減小開發的溝通成本,緣由是咱們的API是面向用戶的,依賴公司其餘Team的衆多API,咱們寫一個接口可能要調用公司好幾個API才能整合出想要的數據,這就須要開發去和好幾個team打交道,溝通成本很大。而若是要全部開發都作一遍一樣的事情,浪費的時間可想而知。
  2. 減小浪費QA人力作無聊的數據對比,這個算是自動化的一部分,上面說了,金融數據的準確性是很是關鍵的,咱們的產品又是直面用戶的,有問題第一個找到咱們頭上,因此QA在這方面也很是頭痛,以往都是依賴人眼去對比線上和UAT兩個版本的報表是否匹配,容易疏忽不說,時間有效的狀況下,覆蓋率也很難達到要求,且對QA來講,這類事情是最應該自動化的。

解決這2個問題的方案是:ui

  1. 不少工具須要互相share,有更新就share的話也很麻煩。 Hitchhiker支持多人同時在線維護同一份API,支持實時更新,一個開發在完成溝通後,把依賴的API都整理在一塊兒,寫好case,其餘開發就能夠直接借鑑使用了,只花一我的的時間,成果全部開發共享。
  2. 使用Schedule來實現Case的自動化運行,以及用腳本作斷言來判斷數據是否正確,但金融數據上常常有動態值,好比求上個月的回報,對今天來講,上個月是1月,但過一個月後,上個月就是2月了,數據極可能就不同了,因此對這類動態值用斷言方式很難解決,Hitchhiker支持在作自動化測試時對比不一樣環境的數據,咱們以線上的數據爲準的話就能夠知道沒上線環境的API運行是否正常了。

這兩個功能在17年7月左右前後實現,個人API項目的接口測試也陸續加了進去,基本上知足了需求。

因爲項目的API的併發量比較大,在服務器有限的狀況下,須要儘可能提早優化來提升吞吐,避免上線後出問題,因此須要在測試階段給到服務器壓力,而後在10月份時用Go語言爲Hitchhiker實現了壓力測試。

在0.5版本時用gitbook重寫了文檔: Hitchhiker使用文檔

接下來的一個版本又大幅增強了腳本功能,支持require,支持上傳腳本庫和數據文件,標誌着 NPM 裏幾十萬的js庫盡能夠拿來用了。

不過惋惜的是基於Go語言寫的壓力測試因爲對js支持有限,不得不放棄,轉而使用Node重寫了一份壓力測試的功能並在v0.6版本上線。

其實到這時爲止,Hitchhiker已經知足個人API項目的需求了,但隨着使用者愈來愈多,需求不斷出現,後續的版本基本都在實現這些需求了:

v0.7:支持自定義smtp,爲請求生成各類語言的code,schedule數據不一樣時的diff展現

v0.8: 自動化測試結果統計

v0.9: 基於UI的斷言測試

還有不少功能想要實現,文檔,Mock,管理平臺等等,將會在接下來的2018裏陸續實現。

在線體驗: http://www.hitchhiker-api.com/, 能夠用 try without login 來免登陸使用 (在線演示不支持壓力測試和上傳js庫,虛擬機單核的,撐不住)。

相關文章
相關標籤/搜索