接口测试用例模板_ITest:京东数科接口自动化测试实践
ITest
作者:鄭琳
京東數科平臺開發團隊原創,轉載請獲得授權
導讀:你是否為每天“點點點”的工作而感到索然無味?你是否苦于沒有合適的工具而對復雜的測試任務望而卻步?頻繁變動的接口,重復的功能測試,你,疲憊么?京東數科運維部平臺開發組基于日常接口測試經驗,開發了接口測試平臺——ITest。通過此平臺讓研發流程更高效,讓測試回歸測試本身,做適配數科場景的通用接口測試平臺。本文將從需求背景、平臺特性、架構設計、未來規劃幾方面詳細闡述ITest助力接口自動化測試在京東數科的最佳實踐與探索。一、需求背景接口測試位于測試金字塔的中間層,與業務關聯度較高,測試及運行成本適中,同時能夠覆蓋到端對端測試所不能覆蓋的并發,安全等,在測試過程中占據重要地位。接口自動化測試因其能夠降低回歸成本,提高回歸效率,在回歸測試及冒煙測試階段應用較為廣泛。但面對日益復雜的軟件設計,做好接口自動化工作并非易事,在此針對其中兩個痛點進行闡述:1、復雜場景的接口自動化編碼耗時多,接口測試工具無法滿足個性化需求自動化測試能夠穩定執行的前提是,單個測試用例必須能夠重復成功運行。這意味著完整的自動化用例中必須包含測試數據準備,測試調用,數據校驗及數據清理工作等。在應用逐漸微服務化的今天,A服務接口的數據準備工作可能會依賴多個B服務的接口,接口測試用例的設計本身對于測試同學的業務能力就是不小的挑戰,要完成高質量的穩定可重復運行的自動化用例的編碼,更是一件耗時的事情。而目前通用的接口測試工具能解決的多是通用性的需求,當用戶的接口請求中包含自定義算法,加解密信息等情況時,接口測試工具無法給予友好的支持。2、團隊協作不易,開發和測試對齊用例有溝通成本在自動化編碼的過程中,測試代碼維護在代碼倉庫中,測試用例的管理也依賴于代碼倉庫。項目中不同模塊的測試情況沒有一個總體的入口,較難對測試的情況進行度量和總體評估,不同模塊間的用例復用也變得比較困難。同時因開發同學對測試情況了解不足,在冒煙階段,bug驗證及測試回歸階段,往往需要測試和開發同學對代碼倉庫中的用例進行對齊,有一定的溝通成本。為提高測試效率,簡化溝通成本,讓測試同學專注于測試策略選擇,測試用例設計、codeReview等更重要的工作,筆者所在團隊研發了接口自動化測試平臺ITest, 致力于提供簡易、靈活,通用的接口自動化測試服務。二、ITest特性1、靈活的用例組織,提高測試效率簡潔的用例配置視圖,提供多協議支持(http, jsf, dubbo, jdbc 等)
ITest提供了簡潔的可視化配置頁面,用戶通過對關鍵接口信息的配置、斷言項的選擇及預期結果配置即可完成單個接口測試用例的組織。目前平臺可支持http, jsf, dubbo, jdbc 等常用協議類的接口用例配置。
圖1??jdbc協議測試步驟配置
通用的用例組織方式,可將測試結果特定信息提取為變量,在測試上下文中傳遞
用例與數據分離
圖3? 用例參數化配置
內嵌常用的函數(時間戳,隨機數,求和,常用加解密算法等)
圖4? ?常用函數支持
2、便利的項目協作&管理,簡化溝通流程
項目空間內用例共享,利于項目內用例復用和對齊
項目域內測試執行計劃靈活編排
圖5??測試計劃編排示意
項目域管理多組測試計劃,用于不同迭代及測試目標
圖6??測試工程詳情視圖
測試計劃執行情況可追溯,提供歷史測試報告及執行詳情
3、多維度運行支持,提高測試運行穩定性
用例在線快速調試
測試計劃執行,支持定時執行,批量執行等
任務運行狀態通知
4、持續集成
與JCI & JAT 深度合作,嵌入JCI CI&CD流水線
開放API,滿足業務線多樣化的CI&CD需求
圖8? 與通用接口測試工具功能對比
三、ITest架構設計
1、核心概念
測試步驟,測試用例及測試計劃是ITest接口自動化平臺的核心概念。其中,測試步驟和測試用例是兩個描述不同粒度測試行為的單位,測試步驟定義了單個接口測試行為,測試用例則可描述多個接口測試行為。測試用例可嵌套測試用例和測試步驟,滿足復雜測試場景的編排需求。
圖9? ?測試步驟,測試用例及參數化關系
測試計劃是多組測試步驟及測試用例的有序集合,beforeGlobal和afterGlobal 中的用例是整個計劃的前置用例和后置用例,beforeGlobal用例會先于整個測試計劃內其他用例執行,若執行失敗,則直接跳過該測試計劃剩余用例。
測試計劃可包含多個group,同一group中用例可共享執行上下文。在group中可定義beforeGroup 和afterGroup用例,做為group 內的前置用例和后置用例。beforeGroup用例若執行失敗,則直接跳過該group 中剩余用例。不同group間用例互不影響,可并行執行。
圖 10??測試計劃組成示意
2、總體架構及模塊簡介
圖11?? ITest 總體架構概覽ITest由管理平臺和執行引擎兩大模塊構成。其中,管理平臺是面向用戶側的,負責測試用例的編輯及快速調試,測試計劃的編排及調度執行,測試結果展示,消息通知,角色權限管理,項目空間和個人空間用例及計劃的維護等工作。執行引擎則負責測試模板的解析及執行工作。執行引擎通過java編寫,可以通過ITest Agent,Jenkins,容器云輕松集成,當前默認環境托管在數科容器云lambda上,提供面向數科測試環境及公網的集成測試能力。
圖12??? ITest engine 功能邏輯示意
四、ITest未來規劃
為更好支持接口自動化測試,ITest 接口自動化測試平臺計劃在以下方面繼續豐富完善功能:
1、豐富測試用例及測試計劃的組織結構,在目前順序組織的基礎上,增加分支選擇結構和循環結構的組織方式,以應對復雜測試邏輯的需求。
2、增加對腳本語言的支持,同時提供函數的上傳與編輯需求,滿足用戶多樣化自定義函數的需求。
3、自動化測試的精準度量:從代碼及接口數據層面對測試覆蓋率進行度量,進一步結合分布式服務跟蹤系統SGM與精準測試的理念,實現源碼與用例的雙向綁定,繼而針對版本迭代的代碼變更為用戶回歸范圍提供建議。
互動討論:你在日常工作中都遇到哪些接口測試的痛點?你覺得一個好的接口自動化測試平臺是什么樣子的呢?歡迎在留言區分享你的困惑或你的見解。
往期好文推薦:>自動化測試在京東數科的實踐與探索>只看這三點就夠:快速了解聯邦學習框架!> 京東數科七層負載 | HTTPS硬件加速 (Freescale加速卡篇)>?京東數科mPaaS:深度解讀京東金融App(Android)的秒開優化實踐總結
以上是生活随笔為你收集整理的接口测试用例模板_ITest:京东数科接口自动化测试实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何实现凯撒密码加密解密
- 下一篇: 如何解决python3.6 右键没有 E