《A3--尹飛--證券行業智能UI自動化測試平臺建設實踐.pdf》由會員分享,可在線閱讀,更多相關《A3--尹飛--證券行業智能UI自動化測試平臺建設實踐.pdf(37頁珍藏版)》請在三個皮匠報告上搜索。
1、證券行業智能UI自動化平臺建設實踐尹飛尹飛測試工具團隊負責人證券信息技術,質量效能部,測試工具平臺研發組負責人,目前主要負責公司測試工具平臺的研發、運營、運維工作,通過探索工具與DevOps結合,實現業務測試效果賦能。曾就職于百度,工作以來長期從事質量平臺和智能化測試的開發、建設工作。在ICST會議,發表IEEE論文一篇。目錄C O N T E N T S1.證券行業質量工作特點2.明確問題3.平臺關鍵技術(CS/Algorithm)4.實施實踐經驗(DevOps/效率/能力/信創)5.效果和收益6.思考與后續計劃證券行業質量工作特點01行業數智化改革,對于信息系統的測試質量和效率有更高要求。
2、行業背景,測試對象、類型、范圍質量工作特點:1、測試對象,分自研與非自研兩類產品,其中非自研產品占比高,供應商眾多。測試人員對于系統自身,以及各系統間溝通、對齊,需要更多的把控能力。2、測試類型,非自研產品以手工黑盒測試為主,測試執行人員側重用戶視角的驗收測試。3、測試范圍,交易系統與資金相關,環境鏈路屬于中心發散形態,質量問題影響嚴重、涉及面大,牽一發而動全身,回歸測試頻繁。明確問題02效能瓶頸-大量手工黑盒測試需要自動化提升效率面對柜臺系統快速的產品迭代壓力,外圍產品受限于跨廠商、跨產品的信息流通屏障,無法感知柜臺升級的精確內容和改動點,為保證產品高質量交付,各個外圍測試項目組會開展全用例
3、的“兼容”回歸測試,不可避免的承擔大量手工測試成本。典型問題一:典型問題一:交易柜臺外圍產品d外圍產品e外圍產品f外圍產品a外圍產品b外圍產品c12升級受影響外圍受影響外圍均需回歸驗收均需回歸驗收推廣瓶頸-低成本、規?;淖詣踊芰εcDevOps對接DevOps研發測試一體化成為行業事實上標準流程,工具和平臺的集成缺少自主可控解決方案。DevOps CD/CT階段,對自動化測試工具、平臺提出了標準化要求:線上平臺化、低代碼化。典型問題二:典型問題二:DevOps平臺冒煙測試集成測試回歸測試驗收測試線上測試線下腳本用例線上平臺化自動化用例運維成本高降低成本(快速編寫、錄制)專業自動化人員業務人員
4、主動參與(低代碼)工具平臺問題解決技術瓶頸-自動化驅動技術需要智能化改造業界已有UI自動化能力受限于技術瓶頸,控件定位以ID手段為主,因產品迭代導致控件定位失效經常發生,需要投入大量測試人力對用例進行更新維護。部分視覺定位方法,要么存在訓練成本,要么像素敏感,技術魯棒性強。典型問題三:典型問題三:1920X108070X60圖像驅動方式優于控件,但環境變化,識別失敗控件驅動圖像驅動關鍵平臺技術(CS,ALGORITHM)03關鍵平臺(CS,Algorithm)(虛擬)WinServer執行機(虛擬)WinServer執行機統信執行機前端服務Python算子APICSUI一款BS架構,支持win
5、dows客戶端遠程控制、具備錄制、回放功能的UI自動化測試工具平臺。Algorithm基于springcloud微服務架構,使用python實現計算機視覺算法的API托管平臺。CS UI自動化平臺功能演示用例錄制用例組織測試執行測試報告行業用例組織形式結合行業用例特點,用例組織采用:1、流程用例+數據集2、用例包含元件CS UI自動化用例編寫執行演示登錄數據準備委托數據校驗成交數據校驗持倉數據校驗下單買賣集中普通買賣流程測試用例:數 據 化元 件 化易 維 護平 臺 化變 量 化CS UI自動化用例編寫執行演示數據校驗思路:定位目標數據行01復制數據或OCR識別數據02解析表格數據03數據校驗
6、04通常采用排序、搜索等方法將目標數據行置為第一行,通過偏移點擊等指令將鼠標定位到目標數據行。通常采用右鍵復制、ctrl+c、右鍵導出等方法可以將單行或全部數據復制出來,或者對于簡單文本采用OCR圖片識別指令識別出目標文本。通過“解析數據表格”指令,將數據智能解析為json格式,并可以存入上下文變量中。通過斷言指令做解析后數據的校驗。解析后的結果CS UI自動化平臺功能演示CV算法平臺建設背景隨著UI自動化平臺的建設、發展,存在諸多智能化改造訴求。為了給UI自動化測試平臺擴展智能視覺識別技術,需要算法服務中心,將算法、算子實現了API服務化。算法中心實現算子與工程的解耦,解決高耦合帶來系統升級
7、風險及性能瓶頸等諸多問題。高耦合 部署風險 性能下降 擴展受限定制化訴求 業務自有腳本集成 不同業務自有處理邏輯智能化訴求 Python語言相對JAVA在智能化處理方面有明顯優勢CV算法平臺建設目標算法服務中心將算法相關能力從工程側抽離出來,為UI自動化平臺以及其他業務方提供了更為優質的算法支持和更靈活的擴展能力。算子能力完備度OCRCV圖像處理(傳統算法,深度學習)文本分析水平擴展能力靈活的線性擴容能力易用性很低的算子接入復雜度方便的算子調用方式CV算法平臺技術選型方案一方案二方案三方案概述采用Spring Cloud架構,對外暴露API接口實現算子調用,采用ProcessBuilder實現
8、與算子的調用。Web端采用Flask、Tornado等主流框架,同時算子作為框架的內部函數調用。SpringBoot可以實現更完善的算子調用和管理能力,使用Jython調用python。優點1、開發成本低2、擴展靈活3、算子與算法中心解耦1、性能高,節省進程開銷1、開發成本低2、無進程開銷缺點1、可能存在性能損耗1、開發成本較高2、耦合度高1、兼容性較差2、耦合度高選擇算子生命周期算子的請求和使用過程1、使用者發起Http請求。2、一級路由,通過App_name路由到指定算法模塊。3、二級路由,可支持繼續通過plugin_name實現二級路由到特定圖像識別或者ocr識別任務算子。4、實現處理并
9、返回請求。算子調用演示3、Http請求返回坐標信息,對應的算子日志也可通過taskId在平臺展示。2、講對應紅框圖片按如下封裝Http請求,完成算子請求。1、期望獲取紅框圖片的坐標信息,用于自動化驅動。實施實踐經驗(DEVOPS、效率、能力、信創)04與DevOps集成1.支持流水線或者定時任務觸發2.支持質量門禁,實現卡點3.支持失敗用例重試,避免環境因素干擾多種措施提升UI自動化執行效率算法平臺:線程池技術CS UI:智能等待技術1、自定義進程池:實現進程復用,減少進程創建和銷毀帶來的開銷。2、設置合適的參數與選項,預先設置ProcessBuilder工作目錄,確保進程在啟動時使用指定的工
10、作目錄,避免切換。3、引入NuProcess,使用更輕量級的進程管理機制,采用異步非阻塞的方式來管理進程,提供更好的性能表現算子圖像識別平均耗時paddleORC平均耗時耗時657ms2.844s以等待出現舉例,首先會以截圖與目標圖片進行匹配,如果置信度高于默認置信度(90),那么繼續下一步驟,如果置信度,當前線程等待兩秒,然后再次進行判斷,直至圖片出現,或者本步驟的執行時間超時。如果超時,當前步驟狀態置為失敗,結束用例或者結束當前驅動??绶直媛首R別提升智能驅動的魯棒性子算法1:通過深度特征融合實現多分辨率的識別能力。識別泛化能力好。子算法2:進行金字塔多尺度變化,多次模版匹配。識別性能能力好
11、。模版匹配效果與收益05效果與收益調用量:CSUI平臺用例8900多條,算法平臺每周提供5萬次的算法服務。后續計劃與總結06思考和后續計劃1.【生成】利用大語言模型的生成能力,與現有平臺的圖片控件庫,進行匹配,實現UI自動化用例的生成。2.【自愈】當前UI自動化用例因依賴服務,網絡環境等導致執行失敗,用例的自愈技術值得研究。3.【輔助】用例錄制過程中,借助智能化視覺理解技術實現輔助提示,進一步降低用例維護成本??偨Y1.證券行業測試的特點。2.介紹了,客戶端UI自動化(視頻流和控制流)及Python圖像算子API化的關鍵技術。3.實踐了,DevOps集成、UI自動化執行效率優化、視覺泛化識別能力、信創化等實施經驗。感謝聆聽關注公眾號