強(qiáng)大的API測試工具Hitchhiker v0.9 基于UI的斷言測試圈盔,回顧2017

v0.9是Hitchhiker在2017農(nóng)歷年的最后一個(gè)版本售滤,而起點(diǎn)正是剛過完2016農(nóng)歷年罚拟,農(nóng)歷2018即將到來,一年輪回完箩,今天寫點(diǎn)東西稍微回顧下hitchhiker的2017赐俗。

先還是說v0.9,這次版本發(fā)布主要帶來一個(gè)新的輔助測試功能:免腳本的斷言測試嗜憔,這是一個(gè)攜程的朋友提出來的需求秃励。

之前Hitchhiker支持在test腳本里寫 tests['assert'] = value 這樣來斷言,但很多QA其實(shí)并不會編程吉捶,或者會其他語言但對js不熟夺鲜,這樣斷言寫起來就不太方便,所以這次應(yīng)朋友的需求加了這個(gè)功能:

assert.gif

上面動(dòng)圖已經(jīng)展示了功能和用法呐舔,具體就不多說了币励。

回頭看下Hitchhiker的2017,一年過來珊拼,對這個(gè)項(xiàng)目來說結(jié)果還不錯(cuò)食呻,大小版本發(fā)了14個(gè),github上有了1k+的star,我也因此認(rèn)識了一些朋友仅胞,對技術(shù)上有也不少提升每辟,總體看對我來說是成功了。

https://github.com/brookshi/Hitchhiker

contributor.png
2017.png

起初干旧,大概是2016年年中渠欺,我開始負(fù)責(zé)公司一個(gè)API項(xiàng)目,因?yàn)槭墙鹑诠咀得校瑢?shù)據(jù)準(zhǔn)確性要求很高挠将,所以產(chǎn)生想法,做一個(gè)工具來輔助這個(gè)API項(xiàng)目的測試编整,減少溝通成本以及QA做regression時(shí)的壓力舔稀。后面準(zhǔn)備了下,在2016年農(nóng)歷年后掌测,也就是17年的3月份内贮,正式開始編碼實(shí)現(xiàn)功能。

由于不懂設(shè)計(jì)赏半,所以UI上參考了比較熟悉的一個(gè)成名已久的測試工具:Postman贺归,這也導(dǎo)致:即使后來除了UI外,實(shí)現(xiàn)了很多Postman沒有的功能也還是擺脫不了Postman的影子断箫,不少人一看跟Postman一樣,覺得沒有意義秋冰,在這點(diǎn)上算是一個(gè)敗筆仲义。不過也因?yàn)轭怭ostman UI的易用性,讓使用Hitchhiker的人很容易上手剑勾,這又是一大優(yōu)勢埃撵,算是兩者抵消吧。

collection.png

當(dāng)時(shí)虽另,想要通過這個(gè)工具解決的問題只有2個(gè):

  1. 減少開發(fā)的溝通成本暂刘,原因是我們的API是面向用戶的,依賴公司其他Team的眾多API捂刺,我們寫一個(gè)接口可能要調(diào)用公司好幾個(gè)API才能整合出想要的數(shù)據(jù)谣拣,這就需要開發(fā)去和好幾個(gè)team打交道,溝通成本很大族展。而如果要所有開發(fā)都做一遍同樣的事情森缠,浪費(fèi)的時(shí)間可想而知。

  2. 減少浪費(fèi)QA人力做無聊的數(shù)據(jù)對比仪缸,這個(gè)算是自動(dòng)化的一部分贵涵,上面說了,金融數(shù)據(jù)的準(zhǔn)確性是非常關(guān)鍵的,我們的產(chǎn)品又是直面用戶的宾茂,有問題第一個(gè)找到我們頭上瓷马,所以QA在這方面也非常頭痛,以往都是依賴人眼去對比線上和UAT兩個(gè)版本的報(bào)表是否匹配跨晴,容易疏忽不說决采,時(shí)間有效的情況下,覆蓋率也很難達(dá)到要求坟奥,且對QA來說树瞭,這類事情是最應(yīng)該自動(dòng)化的。

解決這2個(gè)問題的方案是:

  1. 很多工具需要互相share爱谁,有更新就share的話也很麻煩晒喷。 Hitchhiker支持多人同時(shí)在線維護(hù)同一份API,支持實(shí)時(shí)更新访敌,一個(gè)開發(fā)在完成溝通后凉敲,把依賴的API都整理在一起,寫好case寺旺,其他開發(fā)就可以直接借鑒使用了爷抓,只花一個(gè)人的時(shí)間,成果所有開發(fā)共享阻塑。

  2. 使用Schedule來實(shí)現(xiàn)Case的自動(dòng)化運(yùn)行蓝撇,以及用腳本做斷言來判斷數(shù)據(jù)是否正確,但金融數(shù)據(jù)上經(jīng)常有動(dòng)態(tài)值陈莽,比如求上個(gè)月的回報(bào)渤昌,對今天來說,上個(gè)月是1月走搁,但過一個(gè)月后独柑,上個(gè)月就是2月了,數(shù)據(jù)很可能就不一樣了私植,所以對這類動(dòng)態(tài)值用斷言方式很難解決忌栅,Hitchhiker支持在做自動(dòng)化測試時(shí)對比不同環(huán)境的數(shù)據(jù),我們以線上的數(shù)據(jù)為準(zhǔn)的話就可以知道沒上線環(huán)境的API運(yùn)行是否正常了曲稼。

schedule.png

這兩個(gè)功能在17年7月左右先后實(shí)現(xiàn)索绪,我的API項(xiàng)目的接口測試也陸續(xù)加了進(jìn)去,基本上滿足了需求躯肌。

由于項(xiàng)目的API的并發(fā)量比較大者春,在服務(wù)器有限的情況下,需要盡量提前優(yōu)化來提高吞吐清女,避免上線后出問題钱烟,所以需要在測試階段給到服務(wù)器壓力,然后在10月份時(shí)用Go語言為Hitchhiker實(shí)現(xiàn)了壓力測試。

stresstest.gif

在0.5版本時(shí)用gitbook重寫了文檔: Hitchhiker使用文檔

接下來的一個(gè)版本又大幅加強(qiáng)了腳本功能拴袭,支持require读第,支持上傳腳本庫和數(shù)據(jù)文件,標(biāo)志著 NPM 里幾十萬的js庫盡可以拿來用了拥刻。

不過可惜的是基于Go語言寫的壓力測試由于對js支持有限怜瞒,不得不放棄,轉(zhuǎn)而使用Node重寫了一份壓力測試的功能并在v0.6版本上線般哼。

其實(shí)到這時(shí)為止吴汪,Hitchhiker已經(jīng)滿足我的API項(xiàng)目的需求了,但隨著使用者越來越多蒸眠,需求不斷出現(xiàn)漾橙,后續(xù)的版本基本都在實(shí)現(xiàn)這些需求了:

v0.7:支持自定義smtp,為請求生成各種語言的code楞卡,schedule數(shù)據(jù)不同時(shí)的diff展示

v0.8: 自動(dòng)化測試結(jié)果統(tǒng)計(jì)

statistics.png

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

assert.PNG

還有很多功能想要實(shí)現(xiàn)霜运,文檔,Mock蒋腮,管理平臺等等淘捡,將會在接下來的2018里陸續(xù)實(shí)現(xiàn)。

在線體驗(yàn): http://www.hitchhiker-api.com/池摧, 可以用 try without login 來免登錄使用 (在線演示不支持壓力測試和上傳js庫焦除,虛擬機(jī)單核的,撐不紫栈妗)踢京。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宦棺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌黔帕,老刑警劉巖代咸,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異成黄,居然都是意外死亡呐芥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門奋岁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來思瘟,“玉大人,你說我怎么就攤上這事闻伶”豕ィ” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長光绕。 經(jīng)常有香客問我女嘲,道長,這世上最難降的妖魔是什么诞帐? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任欣尼,我火速辦了婚禮,結(jié)果婚禮上停蕉,老公的妹妹穿的比我還像新娘愕鼓。我一直安慰自己,他們只是感情好慧起,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布菇晃。 她就那樣靜靜地躺著,像睡著了一般完慧。 火紅的嫁衣襯著肌膚如雪谋旦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天屈尼,我揣著相機(jī)與錄音册着,去河邊找鬼。 笑死脾歧,一個(gè)胖子當(dāng)著我的面吹牛甲捏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鞭执,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼司顿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了兄纺?” 一聲冷哼從身側(cè)響起大溜,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎估脆,沒想到半個(gè)月后钦奋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疙赠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年付材,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圃阳。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厌衔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捍岳,到底是詐尸還是另有隱情富寿,我是刑警寧澤睬隶,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站作喘,受9級特大地震影響理疙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泞坦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一窖贤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贰锁,春花似錦赃梧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锣险,卻和暖如春蹄皱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芯肤。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工巷折, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人崖咨。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓锻拘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親击蹲。 傳聞我的和親對象是個(gè)殘疾皇子署拟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)歌豺,斷路器推穷,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 洞見SELENIUM自動(dòng)化測試 寫在最前面:目前自動(dòng)化測試并不屬于新鮮的事物,或者說自動(dòng)化測試的各種方法論已經(jīng)層出...
    厲鉚兄閱讀 6,728評論 3 47
  • (此文曾先后發(fā)表于TW洞見和InfoQ) 2015年11月类咧,ThoughtWorks發(fā)布了新一期的技術(shù)雷達(dá)缨恒。技術(shù)雷...
    BY林子閱讀 1,037評論 0 13
  • 下班路上經(jīng)過曉風(fēng)書屋血巍,就進(jìn)去看了看,瞥見一本《宋詞排行榜》珊随,作者是某個(gè)大學(xué)的教授述寡,“千百年來第一個(gè)宋詞排行榜橫空出...
    子曰少懷閱讀 9,486評論 108 170
  • 搜腸刮肚柿隙,想不夠五件喜悅的事,原來有好多東西都蒙蔽了心靈鲫凶,本來的那個(gè)我在尋求什么禀崖? 年前的元旦一個(gè)孩子表演的古箏吸...
    不二努力閱讀 199評論 0 0