中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java SDK集成測試的概述及實踐

發布時間:2021-09-16 21:53:51 來源:億速云 閱讀:151 作者:chen 欄目:互聯網科技

本篇內容主要講解“Java SDK集成測試的概述及實踐”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java SDK集成測試的概述及實踐”吧!

項目背景

作為長期專注于區塊鏈底層平臺設計和研發的專業團隊,趣鏈科技對產品質量尤其重視。軟件測試可以說是平臺的質量保證的最關鍵一環。

底層的技術平臺通常會提供對外交互的SDK,在測試環節中,可以通過SDK對系統進行集成測試,從而驗證系統的各項功能是否能夠正常使用。

Java SDK是軟件開發中應用最廣泛的一類,以在BitXMesh項目測試的實踐為背景,介紹Java SDK集成測試的一些心得體會。

系統提供的功能主要有如下幾點:

  1. 資源庫中資源管理,包括文件/數據庫/模型/Restful接口等

  2. 聯邦計算

  3. 跨節點資源獲取和展示

  4. 系統和用戶管理

起初測試工具較為零散,新增模塊或者功能之后往往趨向新建一個小的測試項目進行測試。但是隨著功能和客戶越來越多,質量保證的要求不能放松,構建一個完善的測試項目成為必然要求。

本文以該項目為例,詳細介紹測試項目的分析、規劃、實現、具體模塊示例以及最終形成的測試報告。

測試項目分析

在測試項目中,最核心的一個環節就是測試用例設計,要想設計出優雅的測試用例,首先要對項目本身有充分的了解,根據對項目的功能和代碼結構分析,將測試項目用例結構分為以下三類:

  1. 用戶權限相關測試:驗證不同類型的用戶對模塊操作的權限正常

  2. 異常數據測試:包括數據異常和功能邏輯異常

  3. 正常功能測試 

單獨的用例實現起來難度不大。

但要充分考慮到后續維護,特別是權限測試異常測試兩方面。

因此在設計測試用例的時候要秉承以下兩點原則:

  1. 優化代碼結構,減少代碼冗余,增加可讀性;

  2. 測試用例數據和測試代碼分離,方便后面單獨維護測試用例。

測試項目規劃

測試框架

TestNG是一個開源自動化測試框架,其靈感來自JUnit和NUnit,但引入了一些新的功能,使其功能更強大,使用更方便,它在很大程度上借鑒了Java注解來定義測試。

本項目使用TestNG進行測試。Excel維護用例數據,封裝函數讀取其中數據,使用dataProvider傳遞給測試函數進行測試。

Java SDK集成測試的概述及實踐

數據驅動測試,函數傳參形式

由于系統功能耦合性較強,因此單個用例往往包含較多操作。我們把類似流程的測試用例組合到一起,對各個操作進行位置編號,使用Pair<Integer, Integer>的形式傳參,對預期出現異常的位置進行斷言。

測試過程中異常捕獲和處理

權限相關的測試,每個操作都可能有權限或者沒有權限,因此每個操作完成后直接與預期進行對比進行即可,捕獲到異常就斷言錯誤碼。

流程相關的測試,如果前一個操作對后面操作有影響,檢測到該操作拋出異常后直接對錯誤碼進行斷言,然后退出當前測試,繼續后面測試;反之繼續進行后面操作。

自動觸發Jenkins項目構建

使用觸發器執行自動構建,具體配置參考第六板塊【持續集成

項目結構

用例組織方式

測試用例在內部的Thoughts環境以表格的形式編寫,用例來源于需求文檔和系統測試分析文檔。

測試項目結構

在這個項目中使用項目管理工具Maven來管理構建和報告。

版本控制

版本號與待測項目版本號保持一致,在Git中進行維護。

部分實現示例

BitXMesh中有多種不同類型的用戶,這些用戶對不同模塊和資源的操作權限不一樣,因此需要逐一進行權限測試,看是否有遺漏或者越權問題。

另外,BitXMesh需求中對部分輸入信息有限制,如長度/是否為空/重復/特殊格式等,需要對邊界值和其他相關邏輯進行測試。

權限測試(有統一的報錯代碼)

模塊中權限主要包括創建/刪除/查看/修改/上傳/下載/賦權操作等。

因為創建是后面操作的基礎,因此單獨指定用例對創建功能進行權限測試;其他操作共用一個用例,每輪對不同用戶執行用例時,讓指定用戶先創建,再執行后面操作。

一個用戶在一個模塊中的所有權限作為一組測試數據;有權限時操作正常完成,沒有權限時拋出異常,狀態碼為指定值;獲取錯誤信息之后對捕獲到的每個異常狀態碼進行斷言對比即可,當前測試繼續進行。

Java SDK集成測試的概述及實踐

異常數據測試(有專門的報錯代碼)

這里對模塊功能做全流程測試。當測試程序捕獲到有操作拋出異常的時候就直接返回,不執行后續測試。

為了方便進行數據驅動測試,我們把用例中每個操作順序進行標注,從1開始遞增;如果期望在第n個操作處捕獲到異常,則可以傳入(n, errCode)進行斷言驗證

持續集成

Jenkins配置

編寫部署腳本,使用shell命令運行集成測試

觸發流程

  1. Git webhook檢測到打tag或者主干分支有合并之后,觸發上游Jenkins打包任務,生成可執行文件,并推送到Nexus倉庫

  2. 生成可執行文件任務成功后,觸發集成測試任務,遠程拉取可執行文件,執行部署和測試

程序運行環境

Jenkins slave節點提供的Docker容器。因為單個BitXMesh占用資源不多,因此可以在一個Docker容器中同時運行測試程序和多個BitXMesh節點程序。

測試報告

本項目使用了maven插件maven-surefire-plugin來生成測試報告。項目測試完成之后,自動生成target/surefire-reports/emailable-report.html報告,在Jenkins中指定相應測試報告路徑即可。

pom.xml中配置如下:

Java SDK集成測試的概述及實踐

總結

權限測試和異常測試是測試過程中兩個需要注意的點,需要在自動化測試中提前規劃。

前者容易導致代碼比較臃腫;后者難以一次性考慮全面,需要后續進行維護。通過合理的數據驅動測試可以解決這兩塊的問題,再加上一些工程化的方式就可以實現比較完善的自動化測試。

大多數測試人員是界面功能測試入門,對后臺服務測試需要一定時間進行了解。

Java SDK本質是把系統調用接口封裝成類庫,供客戶端使用;開展集成測試時,需要提前熟悉SDK使用文檔,然后通過分層架構去進行規劃即可。

到此,相信大家對“Java SDK集成測試的概述及實踐”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临沧市| 卢氏县| 临夏县| 沧州市| 泰兴市| 横山县| 南木林县| 蒙自县| 宜阳县| 阳城县| 金湖县| 新沂市| 郯城县| 仲巴县| 来安县| 明星| 德州市| 交口县| 基隆市| 兖州市| 额尔古纳市| 神农架林区| 郸城县| 汨罗市| 莒南县| 龙游县| 杭州市| 凤阳县| 固阳县| 许昌县| 金昌市| 永平县| 利津县| 溧水县| 永仁县| 黄梅县| 泊头市| 盐亭县| 柏乡县| 共和县| 阿尔山市|