您好,登錄后才能下訂單哦!
本篇內容主要講解“Java SDK集成測試的概述及實踐”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java SDK集成測試的概述及實踐”吧!
作為長期專注于區塊鏈底層平臺設計和研發的專業團隊,趣鏈科技對產品質量尤其重視。軟件測試可以說是平臺的質量保證的最關鍵一環。
底層的技術平臺通常會提供對外交互的SDK,在測試環節中,可以通過SDK對系統進行集成測試,從而驗證系統的各項功能是否能夠正常使用。
Java SDK是軟件開發中應用最廣泛的一類,以在BitXMesh項目測試的實踐為背景,介紹Java SDK集成測試的一些心得體會。
系統提供的功能主要有如下幾點:
資源庫中資源管理,包括文件/數據庫/模型/Restful接口等
聯邦計算
跨節點資源獲取和展示
系統和用戶管理
起初測試工具較為零散,新增模塊或者功能之后往往趨向新建一個小的測試項目進行測試。但是隨著功能和客戶越來越多,質量保證的要求不能放松,構建一個完善的測試項目成為必然要求。
本文以該項目為例,詳細介紹測試項目的分析、規劃、實現、具體模塊示例以及最終形成的測試報告。
在測試項目中,最核心的一個環節就是測試用例設計,要想設計出優雅的測試用例,首先要對項目本身有充分的了解,根據對項目的功能和代碼結構分析,將測試項目用例結構分為以下三類:
用戶權限相關測試:驗證不同類型的用戶對模塊操作的權限正常
異常數據測試:包括數據異常和功能邏輯異常
正常功能測試
單獨的用例實現起來難度不大。
但要充分考慮到后續維護,特別是權限測試和異常測試兩方面。
因此在設計測試用例的時候要秉承以下兩點原則:
優化代碼結構,減少代碼冗余,增加可讀性;
測試用例數據和測試代碼分離,方便后面單獨維護測試用例。
TestNG是一個開源自動化測試框架,其靈感來自JUnit和NUnit,但引入了一些新的功能,使其功能更強大,使用更方便,它在很大程度上借鑒了Java注解來定義測試。
本項目使用TestNG進行測試。Excel維護用例數據,封裝函數讀取其中數據,使用dataProvider傳遞給測試函數進行測試。
由于系統功能耦合性較強,因此單個用例往往包含較多操作。我們把類似流程的測試用例組合到一起,對各個操作進行位置編號,使用Pair<Integer, Integer>的形式傳參,對預期出現異常的位置進行斷言。
權限相關的測試,每個操作都可能有權限或者沒有權限,因此每個操作完成后直接與預期進行對比進行即可,捕獲到異常就斷言錯誤碼。
流程相關的測試,如果前一個操作對后面操作有影響,檢測到該操作拋出異常后直接對錯誤碼進行斷言,然后退出當前測試,繼續后面測試;反之繼續進行后面操作。
使用觸發器執行自動構建,具體配置參考第六板塊【持續集成】
用例組織方式
測試用例在內部的Thoughts環境以表格的形式編寫,用例來源于需求文檔和系統測試分析文檔。
在這個項目中使用項目管理工具Maven來管理構建和報告。
版本控制
版本號與待測項目版本號保持一致,在Git中進行維護。
BitXMesh中有多種不同類型的用戶,這些用戶對不同模塊和資源的操作權限不一樣,因此需要逐一進行權限測試,看是否有遺漏或者越權問題。
另外,BitXMesh需求中對部分輸入信息有限制,如長度/是否為空/重復/特殊格式等,需要對邊界值和其他相關邏輯進行測試。
模塊中權限主要包括創建/刪除/查看/修改/上傳/下載/賦權操作等。
因為創建是后面操作的基礎,因此單獨指定用例對創建功能進行權限測試;其他操作共用一個用例,每輪對不同用戶執行用例時,讓指定用戶先創建,再執行后面操作。
一個用戶在一個模塊中的所有權限作為一組測試數據;有權限時操作正常完成,沒有權限時拋出異常,狀態碼為指定值;獲取錯誤信息之后對捕獲到的每個異常狀態碼進行斷言對比即可,當前測試繼續進行。
這里對模塊功能做全流程測試。當測試程序捕獲到有操作拋出異常的時候就直接返回,不執行后續測試。
為了方便進行數據驅動測試,我們把用例中每個操作順序進行標注,從1開始遞增;如果期望在第n個操作處捕獲到異常,則可以傳入(n, errCode)進行斷言驗證
編寫部署腳本,使用shell命令運行集成測試
Git webhook檢測到打tag或者主干分支有合并之后,觸發上游Jenkins打包任務,生成可執行文件,并推送到Nexus倉庫
生成可執行文件任務成功后,觸發集成測試任務,遠程拉取可執行文件,執行部署和測試
Jenkins slave節點提供的Docker容器。因為單個BitXMesh占用資源不多,因此可以在一個Docker容器中同時運行測試程序和多個BitXMesh節點程序。
本項目使用了maven插件maven-surefire-plugin來生成測試報告。項目測試完成之后,自動生成target/surefire-reports/emailable-report.html報告,在Jenkins中指定相應測試報告路徑即可。
pom.xml中配置如下:
權限測試和異常測試是測試過程中兩個需要注意的點,需要在自動化測試中提前規劃。
前者容易導致代碼比較臃腫;后者難以一次性考慮全面,需要后續進行維護。通過合理的數據驅動測試可以解決這兩塊的問題,再加上一些工程化的方式就可以實現比較完善的自動化測試。
大多數測試人員是界面功能測試入門,對后臺服務測試需要一定時間進行了解。
Java SDK本質是把系統調用接口封裝成類庫,供客戶端使用;開展集成測試時,需要提前熟悉SDK使用文檔,然后通過分層架構去進行規劃即可。
到此,相信大家對“Java SDK集成測試的概述及實踐”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。