?

自動化測試方法在區塊鏈服務平臺的實現及應用

2021-03-14 06:14李丹霞劉舒婷周濤董欣
電腦與電信 2021年12期
關鍵詞:測試數據測試用例用例

李丹霞 劉舒婷 周濤 董欣

(中移信息技術有限公司,廣東 深圳 518048)

1 引言

區塊鏈以其去中心化、傳遞信任的特性和能力,將作為最底層的通信協議撐起未來的網絡通信,為下一代網絡提供可信環境和價值互聯,區塊鏈平臺與技術開發服務是上層應用的重要支撐。各大互聯網、云服務、電信運營商紛紛布局BaaS服務,中國移動也布局建設了自己的區塊鏈服務(China Mobile Blockchain as a Service,CMBaaS)平臺,希望為用戶提供可信、可靠、高效的區塊鏈服務,并提供統一區塊鏈管理平臺門戶,實現從平臺用戶、租戶、智能合約管理、權限管理、多鏈管理、鏈賬戶管理、瀏覽器等鏈外、鏈內的可視化管理。為滿足靈活管控、自動伸縮、高效協同,整個開發架構采用敏捷構建的開發模式,需求版本迭代周期大大縮短,在有限的時間和人力資源下,手工測試,很難做到對每個迭代周期功能進行全量回歸驗證,只能抽取影響范圍內的核心場景進行回歸驗證,存在一定的漏測風險,且考慮到不同引擎引入的適配、不同用途鏈的重復部署,為確保功能一致性和正確性,功能全量回歸頻率增多,結合手工測試流程對接口測試場景進行梳理和分析,處理邏輯類似,耗時較多的工作集中在接口模擬數據構造、測試結果核查上。若能開發一種接口自動化測試框架,實現接口測試數據的快速構造和測試結果自動輸出,將大大提高測試效率,滿足敏捷構建要求。

基于此,本文設計開發了IATest(InterfaceAutoTest)接口自動化測試框架,實現接口模板數據解析、測試數據批量生成、測試結果自動核查和統計分析等功能,且各功能采用解耦設計,根據用戶需要,可實現測試數據構造、用例執行等某一個測試階段自動化,也支持測試全流程的自動化,使用靈活易用,復用性高,滿足了各類接口測試自動化的需要。

2 自動化框架設計

該測試框架主要基于python3+request進行開發,主要分為三層結構,即基礎配置層、業務數據層、可視化用戶層。針對區塊鏈服務平臺測試特點,為兼容需要頻繁更替測試數據和可復用相同測試數據的測試場景,把測試數據構造和測試用例設計過程進行了解耦設計,應用更加靈活高效,既支持新功能模塊或需頻繁更替測試數據場景用例,又支持老功能回歸歷史測試數據的直接引入,滿足用戶不同自動化場景使用需求。同時設計了自己的測試數據和測試用例模板,可以快速適配到其他業務系統接口測試中,該框架對代碼進行了封裝,用戶無需關注底層代碼實現,只需要關注測試用例和測試數據設計即可實現自動化,主要框架結如圖1所示。

圖1 IATest框架分層結構圖

3 自動化框架實現

IATest自動化測試框主要功能模塊包含:接口參數解析、測試數據模板生成、測試數據構造、測試用例解析和執行、測試結果比對、測試報告統計分析、測試日志管理模塊,針對不用規范要求的接口測試,支持獨立開發解析庫,實現功能快速擴展,滿足不同業務系統的多種類型的接口測試。

IATest框架的處理流程如圖2所示。

圖2 IAT框架處理流程圖

3.1 處理流程介紹

根據框架處理流程圖,處理流程中各功能模塊說明如下:

(1)接口參數解析:測試人員提供需要自動化測試的每個接口的請求參數樣例,IATest系統根據請求參數樣例,解析出包含每個請求參數的excel測試數據構造模板和默認取值。

(2)測試數據構造:測試人員根據測試用例場景,填寫接口參數解析出的excel表格,每個字段可以填寫多個取值,用分號分隔,IATest可以批量根據組合關系批量生成與自動化用例對應的測試數據。

(3)測試用例執行:讀取配置文件獲取環境部署、測試賬號、密碼加密公鑰等信息,并讀取測試用例文件,根據是否自動化標識字段,逐行遍歷測試用例并進行測試數據關聯和自動化執行。

(4)測試結果記錄:每條用例執行完成后,根據數據比對結果,回填測試結果為fail或success到測試用例對應“比對結果”列,并把實際執行結果也回填到“實際結果”列,同時會把“此次運行”列內容由“是”修改為“已運行”,并另存為帶時間戳的測試結果記錄文件,確保每輪執行結果的獨立性。

(5)測試數據統計分析:當每個接口自動化測試用例運行完成后,從自動化率、自動化通過率、失敗率等維度對自動化測試執行結果進行統計分析,并輸出統計分析圖表。

(6)測試結果比對:對每條自動化測試用例的實際執行結果和預期結果進行一一比對,獲取最終自動化測試結果。

(7)執行日志管理:在測試用例執行過程中,每執行一個場景用例,日志關聯模塊打印該用例執行相關的URL、請求參數、執行結果等信息,方便問題定位。

3.2 測試數據和用例設計介紹

為滿足不同場景的應用需求,測試數據和測試用例進行了解耦設計,用戶可以快速進行測試數據構造后進行自動化執行,也可以手工完成測試數據的準備后直接進行測試用例的執行,靈活便捷。

測試人員提供被測系統的接口參數模板后,IATest系統解析出該接口對應的測試數據快速構造模板,見表1,包含參數名、參數值(默認)、控制變量值(支持一對多)、用例名稱4列內容,其中C列和D內容默認為空,用戶可以根據要構造的測試場景自行填寫,然后進行批量測試數據的生成。

表1 測試數據構造模板

因區塊鏈服務平臺接口設計特點,很多接口請求URL中包含鏈相關的參數信息,為滿足支撐需要特設計了針對該類接口的測試用例模板,見表2,包含“此次運行*”“用例名稱*”“發送地址*”“請求方式*”“請求參數格式”“比對結果”“實際結果”,其中A-D列為用戶必填列,E列為選填列,默認為json格式,如果存在其他格式的請求,需要用戶填寫,F和G列為測試完成后結果回填列,A列為測試完成后值修改列。

表2 測試用例模板

規范化的用例模板設計,降低了對用戶的使用門檻,用戶只需要了解被測系統接口規范信息接口快速實施自動化。同時在設計自動化用例模板時,為保持和而不同,兼容不同測試用例,框架代碼設計實現時采用用例表頭列名進行遍歷定位,用戶使用的用例模板只需要包含測試用例模板的相關列內容,不受表頭列位置影響,都可兼容讀取執行,降低用戶同時維護手工和自動化測試用例兩套用例的困擾。

3.3 可視化界面實現

為提升用戶操作便利性,實現了可視化運行界面,見圖3,可以在該界面實現接口模板和測試用例模板下載、測試數據和測試用例、新增接口參數模板上傳、測試數據構造、測試執行等操作。

圖3 可視化界面

4 應用效果分析

目前,運用IATest自動化測試系統框架,已實現了區塊鏈服務平臺多接口的自動化測試功能。實現了559個場景的自動化,該自動化測試框架提供了可視化執行界面和后臺執行2種方式,可滿足實時在線和無人值守模式運行,平均在1分鐘內執行完成需要1人日手動執行用例數量,并能根據測試執行結果數據,生成統計圖表,將測試結果和統計分析圖表填寫到測試用例文件中。相比人工測試和結果比對,大大提高了執行效率。

5 結語

IATest框架針對手工測試過程中測試數據構造和測試結果比對等環節耗時多、易出錯問題進行設計,有效節省了人力成本,減少了人工失誤率,最終滿足敏捷項目構建需要。通過測試數據和測試用例解耦設計,大大增加了應用的范圍和靈活性,在區塊鏈服務平臺接口測試中得到了很好的應用。IATest通用性強,支持快速擴展,其它新增系統只需要提供接口參數模板或者符合要求的測試數據和用例,即可快速實現測試數據批量自動構造或者測試自動化執行。主框架提供的功能,用戶可以根據測試場景需要,自主選擇使用全流程或者某一個階段流程的自動化。

總之,基于python3+request技術的IATest框架,提出了一種支持階段或全流程的自動化測試框架,并在區塊鏈服務平臺后臺接口測試中得到很好的應用,給后臺接口自動化測試提供了一種新思路。

猜你喜歡
測試數據測試用例用例
UML用例間包含關系與泛化關系的比較與分析
UML用例模型中依賴關系的比較與分析
基于SmartUnit的安全通信系統單元測試用例自動生成
聯鎖軟件詳細設計的測試需求分析和用例編寫
測試數據管理系統設計與實現
從出土文獻用例看王氏父子校讀古書的得失
基于混合遺傳算法的回歸測試用例集最小化研究
基于自適應粒子群優化算法的測試數據擴增方法
空間co-location挖掘模式在學生體能測試數據中的應用
基于依賴結構的測試用例優先級技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合