接口自動化測試從入門到高級實戰(zhàn)

image

?移動互聯(lián)網(wǎng)公司的一般架構(gòu)簡化模擬

接口測試背景和必要性

接口測試是測試系統(tǒng)組件間接口(API)的一種測試,主要用于檢測內(nèi)部與外部系統(tǒng)、內(nèi)部子系統(tǒng)之間的交互質(zhì)量,其測試重點是檢查數(shù)據(jù)交換、傳遞的準確性红符,控制和交互管理過程蔚龙,以及系統(tǒng)間相互邏輯依賴關(guān)系等冰评。

現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用(App)已經(jīng)普遍基于前后端分離架構(gòu)思路構(gòu)建,即后端提供數(shù)據(jù)接口木羹,前端調(diào)用接口返回 JSon 數(shù)據(jù)渲染到 UI甲雅。而隨著微服務(wù)的流行,后端服務(wù)模塊越來越多坑填,技術(shù)團隊迫切需要一個效率更高更穩(wěn)定的獲取系統(tǒng)質(zhì)量信息的方法抛人,以便進行缺陷檢測和質(zhì)量監(jiān)督。

image
image

真實的企業(yè)后端服務(wù)和分層自動化的關(guān)鍵質(zhì)量保證手段

之前基于 UI 自動化測試技術(shù)的思路和手段由于低效繁雜且容易出錯已經(jīng)無法滿足實際需要脐瑰,而面向服務(wù)的接口自動化測試體系則應(yīng)運而生妖枚,成為業(yè)界最主流的質(zhì)量管理手段。尤其是對高復(fù)雜性的互聯(lián)網(wǎng)企業(yè)平臺苍在,系統(tǒng)越復(fù)雜龐大绝页,接口測試自動化和持續(xù)集成的效果就越明顯。業(yè)界已經(jīng)有成熟的低成本寂恬、高效率的解決方案续誉、開源工具和案例經(jīng)驗。當下初肉,熟悉和掌握接口自動化測試技術(shù)也成為了一線互聯(lián)網(wǎng)企業(yè)對中高級測試開發(fā)工程師的基本要求酷鸦。

接口測試的質(zhì)量目標

建設(shè)完備的接口自動化測試體系主要從以下幾個角度考慮:

質(zhì)量維度

  • 功能正常:保持新老版本的兼容

  • 性能正常:單次請求的響應(yīng)時間跟總體的 qps 相關(guān)

  • 變更檢測:字段的缺失,字段的類型變更

  • 異常和健壯性測試

質(zhì)量體系

  • 構(gòu)建接口層的快速穩(wěn)定的質(zhì)量保證體系

  • 構(gòu)建接口監(jiān)控體系

接口測試流程

在企業(yè)內(nèi)部實施接口測試的實際流程如下:

  1. 接口的范圍:需要覆蓋多少業(yè)務(wù)和接口

  2. 接口分析:接口的協(xié)議牙咏、上下游依賴

  3. 接口測試用例設(shè)計:業(yè)務(wù)用例如何模擬和覆蓋

  4. 接口測試框架選擇:選擇合適的框架

  5. 測試用例編寫與維護:用例編寫與維護更新

  6. 持續(xù)集成:不斷集成測試

待測接口范圍

常見的待測接口范圍如下:

  1. 業(yè)務(wù)需求調(diào)研:研發(fā)和產(chǎn)品反饋常出問題的業(yè)務(wù)

  2. 接口文檔:人工文檔臼隔、Swagger 自動生成的文檔

  3. 代碼分析:分析 Spring 等框架的代碼

  4. 線上 Log 和數(shù)據(jù):線上的生產(chǎn)監(jiān)控和接口 Log

  5. 客戶端抓包:基于用戶角度的接口行為分析

常見抓包分析

  1. 監(jiān)聽分析:TCPDUMP + WireShark + HAR 提取工具

  2. 代理分析:Charles + BurpSuite

  3. 轉(zhuǎn)發(fā)分析:修改 Host 域名 + 反向代理轉(zhuǎn)發(fā)

測試用例設(shè)計

  1. 接口調(diào)用的流程分析
  • 代理抓包

  • 線上 Log 提取

  • 人工用例補充:用流程圖和思維導(dǎo)圖進行業(yè)務(wù)建模

  • 正常場景用例 Right Path

  • 異常場景用例

  • 安全和穩(wěn)定性用例

接口測試框架選擇

關(guān)于如何選擇接口測試框架,列舉幾個常見的框架特性供參考:

  1. 早期階段:基于各種語言的 HTTPClient 封裝

  2. JMeter:性能測試工具妄壶,不具備完備的接口測試框架功能

  3. RobotFramework:強大的ATDD工具摔握,不過約束性太大

  4. RestAssured + Swagger

  5. SoapUI [商業(yè)化]

這里推薦開源的 Rest-Assured,它有如下優(yōu)點:

  • 簡約的接口測試 DSL

  • 支持 XML JSon 的結(jié)構(gòu)化解析

  • 支持 XPath JSonPath GPath等多種解析方式

  • 對 Spring 的支持比較全面

落地接口自動化測試體系有哪些技能挑戰(zhàn)盯拱?

要真正落地接口自動化測試體系盒发,測試開發(fā)工程師必須根據(jù)公司業(yè)務(wù)實際情況,選擇合適的框架狡逢,并熟練掌握接口測試工具和平臺使用宁舰,設(shè)計出通用、易于校驗奢浑、健壯易用的接口測試用例蛮艰,還需要掌握數(shù)據(jù)驅(qū)動機制,能用斷言來完善接口測試用例雀彼。

其次壤蚜,還需要了解接口測試體系架構(gòu)與常見后端發(fā)布機制即寡,能基于 RPC 協(xié)議的微服務(wù)框架如 Dubbo 做測試,熟悉測試用例和套件管理機制袜刷,能掌握 Jenkins 執(zhí)行用例的方法聪富,讓接口測試實現(xiàn)真正的自動化。

另外著蟹,還要對接口測試方案做持續(xù)優(yōu)化墩蔓,可進一步通過抓包、Hook 等方法實現(xiàn)接口測試用例的自動生成萧豆,并掌握基于接口的快速回歸測試手段提升效率奸披。

熟練掌握接口自動化測試體系背后的這些技能和處理問題的思路,實現(xiàn)時間涮雷、人力阵面、收益的平衡,對于一個經(jīng)驗尚淺的初洪鸭、中級測試開發(fā)人員來說絕對是一個艱巨的挑戰(zhàn)样刷。

(文章來源于霍格沃茲測試學(xué)院)

更多優(yōu)秀內(nèi)容及資料可點擊獲取

http://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/3595

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卿嘲,隨后出現(xiàn)的幾起案子颂斜,更是在濱河造成了極大的恐慌,老刑警劉巖拾枣,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盒让,居然都是意外死亡梅肤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門邑茄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姨蝴,“玉大人,你說我怎么就攤上這事肺缕∽笠剑” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵同木,是天一觀的道長浮梢。 經(jīng)常有香客問我,道長彤路,這世上最難降的妖魔是什么秕硝? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮洲尊,結(jié)果婚禮上远豺,老公的妹妹穿的比我還像新娘奈偏。我一直安慰自己,他們只是感情好躯护,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布惊来。 她就那樣靜靜地躺著,像睡著了一般棺滞。 火紅的嫁衣襯著肌膚如雪裁蚁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天检眯,我揣著相機與錄音厘擂,去河邊找鬼。 笑死锰瘸,一個胖子當著我的面吹牛刽严,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播避凝,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舞萄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了管削?” 一聲冷哼從身側(cè)響起倒脓,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎含思,沒想到半個月后崎弃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡含潘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年饲做,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遏弱。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盆均,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漱逸,到底是詐尸還是另有隱情泪姨,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布饰抒,位于F島的核電站肮砾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏循集。R本人自食惡果不足惜唇敞,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疆柔。 院中可真熱鬧,春花似錦模叙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至权旷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躲查,已是汗流浹背译柏。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鄙麦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓蚓聘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親与纽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355