?移動互聯(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)督。
真實的企業(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)部實施接口測試的實際流程如下:
接口的范圍:需要覆蓋多少業(yè)務(wù)和接口
接口分析:接口的協(xié)議牙咏、上下游依賴
接口測試用例設(shè)計:業(yè)務(wù)用例如何模擬和覆蓋
接口測試框架選擇:選擇合適的框架
測試用例編寫與維護:用例編寫與維護更新
持續(xù)集成:不斷集成測試
待測接口范圍
常見的待測接口范圍如下:
業(yè)務(wù)需求調(diào)研:研發(fā)和產(chǎn)品反饋常出問題的業(yè)務(wù)
接口文檔:人工文檔臼隔、Swagger 自動生成的文檔
代碼分析:分析 Spring 等框架的代碼
線上 Log 和數(shù)據(jù):線上的生產(chǎn)監(jiān)控和接口 Log
客戶端抓包:基于用戶角度的接口行為分析
常見抓包分析
監(jiān)聽分析:TCPDUMP + WireShark + HAR 提取工具
代理分析:Charles + BurpSuite
轉(zhuǎn)發(fā)分析:修改 Host 域名 + 反向代理轉(zhuǎn)發(fā)
測試用例設(shè)計
- 接口調(diào)用的流程分析
代理抓包
線上 Log 提取
人工用例補充:用流程圖和思維導(dǎo)圖進行業(yè)務(wù)建模
正常場景用例 Right Path
異常場景用例
安全和穩(wěn)定性用例
接口測試框架選擇
關(guān)于如何選擇接口測試框架,列舉幾個常見的框架特性供參考:
早期階段:基于各種語言的 HTTPClient 封裝
JMeter:性能測試工具妄壶,不具備完備的接口測試框架功能
RobotFramework:強大的ATDD工具摔握,不過約束性太大
RestAssured + Swagger
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