《5-趙志遠-華為云web頁面自主探索測試.pdf》由會員分享,可在線閱讀,更多相關《5-趙志遠-華為云web頁面自主探索測試.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、WEB頁面自主探索測試2023 深圳站趙志遠4年開發/測試經驗,專注于自主搜索遍歷測試。負責控件圖像識別、智能交互、結果判定的算法實現以及迭代升級,實現低成本檢測WEB頁面、搜索功能異常。華為云運營平臺測試開發專家2023 深圳站目錄CONTENTS頁面自動化測試的痛點和挑戰01 頁面/控件探索測試方案02 場景識別的智能化自主測試方案03 自主探索測試應用效果展示04 2023 深圳站01議題背景2023 深圳站頁面規模大頁面交互復雜A控制臺 100+B控制臺 300+華為云官網 1w+頁面控件100+交互組合上萬控制臺4XX異??刂婆_5XX異??刂婆_js報錯頁面白屏查詢異常傳統頁面自動化難
2、以勝任痛點:重復性高,工作量大,易造成漏測?;举|量需要看護痛點:易觸發,難看護全。挑戰:系統前端頁面多,變化快,頁面基本質量如js報錯、接口異常、查詢異常頻發,缺乏高效看護手段目標:構建低成本、廣覆蓋的UI質量看護能力,現實對頁面基本質量的低成本看護1.背景2023 深圳站02探索測試2023 深圳站2.探索測試方案:面向路徑模型的腳本實現Testpublic void testCase001()moveToElement(findElement(客戶);click(findElement(客戶報備);click(findElement(新建報備);checkError();Testpubl
3、ic void testCase002()moveToElement(findElement(客戶);click(findElement(客戶報備);click(findElement(導出);checkError();NVSTestpublic void testCase001()new MouseMoveAndClickChain(/firstMenuAll,/secondMenuAll).addChain(new MouseClickChain(/button).addChain(new ErrorCheckChain().runTest();傳統測試腳本面向路徑模型測試腳本腳本寫作低成
4、本,按照固定語言格式描述出探索路徑模型,探索框架可自動取出每一條路徑進行探索,實現一個系統一套腳本看護。系統核心代碼行頁面數量交互控件數量A控制臺90+130+2600+B控制臺90+360+3000+華為云官網100+1200+10000+12腳本維護低成本,頁面新增菜單或者新增頁面控件,都屬于路徑模型的一次新的實例化,腳本無需做任何修改,探索框架可自動完成新增元素的探索。新增菜單自適應新增按鈕自適應2023 深圳站Selenium2.探索測試方案:路徑模型的承載探索鏈測試腳本MouseClickChain(鼠標單擊)InputChain(鍵盤輸入)MouseMoveAndClickChai
5、n(鼠標移動&點擊)MouseClickConditionTwiceChain(鼠標點擊&條件再次點擊)MultiActionChain(組合多個探索動作)DynamicLoadChain(動態探索鏈)AISearchChain(自主查詢)IframeSwitchChain(Ifram切換)SequenceClickChain(順序點擊)RefreshPageChain(頁面刷新)Testpublic void testCase001()/打開所有頂部菜單 MouseMoveAndClickChain menu=new MouseMoveAndClickChain(/firstMenuAll,
6、/secondMenuAll);/打開所有頁面頂部頁簽 MouseClickChain tab=new MouseClickChain(/tab);/點擊所有頁面按鈕 MouseClickChain button=new MouseClickChain(/button);/頁面所有輸入框隨機輸入值 InputChain input=new InputChain(/input);/頁面探索包含按鈕和輸入框的探索 MultiActionChain pageDiscover=new MultiActionChain(new DiscoveryChainbutton,input );/檢測到彈窗時點擊
7、關閉 DynamicLoadChain alert=new DynamicLoadChain(/spanid=closeBtn,new DiscoveryChain new MouseClickChain(/spanid=closeBtn);/按照規定路徑模型探索每一條路徑 menu.addChain(tab).addChain(pageDiscover).addDynamicChain(alert).runTest(this);2023 深圳站2.遍歷測試方案:路徑模型解讀Testpublic void testCase001()/打開所有頂部菜單 MouseMoveAndClickChai
8、n menu=new MouseMoveAndClickChain(/firstMenuAll,/secondMenuAll);/打開所有頁面頂部頁簽 MouseClickChain tab=new MouseClickChain(/tab);/點擊所有頁面按鈕 MouseClickChain button=new MouseClickChain(/button);/頁面所有輸入框隨機輸入值 InputChain input=new InputChain(/input);/頁面探索包含按鈕和輸入框的探索 MultiActionChain pageDiscover=new MultiAction
9、Chain(new DiscoveryChainbutton,input );/檢測到彈窗時點擊關閉 DynamicLoadChain alert=new DynamicLoadChain(/spanid=closeBtn,new DiscoveryChain new MouseClickChain(/spanid=closeBtn);/按照規定路徑模型探索每一條路徑 menu.addChain(tab).addChain(pageDiscover).addDynamicChain(alert).runTest(this);123D2023 深圳站2.探索測試方案:廣覆蓋與時效性設計p 探索留
10、痕設計,頁面已探索控件打上標記由測試人員定期分析頁面控件遺漏,及時對腳本進行補充p 并發探索設計,基本腳本可派生出子腳本對系統菜單并發探索以提高異常檢測時效性ASystemDiscoveryDiscovery_客戶Discovery_訂單Discovery_財務Discovery_促銷2023 深圳站112.探索測試方案:頁面及控件可用性檢測檢測瀏覽器日志異?;舅悸罚罕O控運行瀏覽器日志,捕獲接口4XX、5XX、JS異常檢測頁面白屏基本思路:使用圖形學算法,計算頁面空白占比超過閾值時,自動判定為白屏異常原始圖像處理后圖像接口500Js拋異常2023 深圳站03自主測試2023 深圳站3.自主測
11、試方案:基于AI圖像識別實現頁面查詢功能的自動測試查詢控件識別查詢觸發器結果列識別312查詢觸發器識別:定位可以觸發查詢的事件關鍵技術:圖像識別(AI)、圖形學算法分割圖像實現思路:1):提取CRM、BM的頁面控件圖片,訓練模型。實現控件分類2):檢索分類為“按鈕”的控件,查找“搜索按鈕”;或者檢索分類為“logo”為放大鏡的控件查詢控件識別:定位查詢控件、控件分類、搜索語義提取、結果列匹配關鍵技術:圖像識別(AI)、分詞實現思路:1):控件分類2):檢索分類為“輸入框”,“輸入搜索框”,“日期”,“下拉框”等控件,并根據位置信息提取搜索語義(提取前置“文本“)結果列識別:同一行識別為一條記錄
12、,對應列識別為記錄中的某個字段關鍵技術:DOM元素提取1):提取dom屬性為“table”控件的每一行,每一列值,映射為二維數組方便結果提取及比對4條件查詢以及結果檢查:帶入結果列中的某一條記錄搜索,并對結果進行檢查關鍵技術:提取DOM的元素交互1):將步驟2提取控件相匹配的步驟3中某一記錄帶入該控件,點擊步驟1中的查詢觸發器進行查詢操作2);帶有“模糊”搜索提示的,使用“包含”檢查結果;使用“精確”搜索的,使用“等于”檢查結果;時間控件采用“在范圍之內”檢查結果條件查詢以及結果檢查說明:查詢功能自動測試已封裝為AISearchChain,拆入路徑模型中即可完成系統級自主測試2023 深圳站1
13、43.自主測試方案:場景識別分割&去重打標控件提取頁面爬蟲AI場景識別微服務輸入輸出訓練&模型部署p 使用殘差神經網絡模型,進行圖片分類,輔助場景識別2023 深圳站153.自主測試方案:控件建模輸入重置輸入框下拉框下拉重置日期選擇條件輸入框條件選擇輸入重置邊界識別選項提取目標選擇選擇范圍輸入關聯組合控件下拉重置年月導航導航識別當前年月判斷邊界識別日期輸入選項提取目標選擇數值范圍輸入框日期范圍輸入框數值起止值確定輸入重置日期起止值確定年月導航日期選擇重置2023 深圳站163.自主測試方案:控件建模案例日期提取頂層容器通過圖像比對,提取日期控件頂層容器,獲取頂層容器DOM路徑關鍵技術:圖形學算
14、法實現思路:1):對比日期按鈕點擊前后頁面,識別變化區域2):通過位置信息獲取頂層Element,進而獲取DOM路徑提取當前年月及導航控件通過XPATH提取當前年月控件,通過以圖找圖提取導航控件關鍵技術:圖形學算法實現思路:1):從頂層容器Xpath出發,找到包含年/月的控件2):通過以圖找圖算法,找到導航控件提取日期通過XPATH提取日期實現思路:1):從頂層容器Xpath出發,找到1,2,3日期選擇控件統一交互實現思路:1):將所有控件轉換為xpath,方便后續交互操作重置年月導航日期輸入實現思路:重置功能實現思路與日期輸入一致,使用以圖找圖算法查找重置按鈕并將控件轉換為xpath日期模型
15、2023 深圳站173.自主測試方案:交互與結果判定結果判定結果提取目標判斷2023 深圳站04應用效果2023 深圳站194.應用效果系統頁面數量已發現問題遍歷周期A控制臺130+49每日B控制臺360+64每日C控制臺110+9每日華為云官網1200+31每日UI測試可覆蓋系統每一個頁面可做到每日例行看護,歷史問題可由系統自動分析測試人員每日分析增量異常異常誤報主要集中在查詢異常,當前誤報低于5%問題類型問題數量JS運行異常66接口異常(4XX,5XX)24查詢功能問題32頁面異常問題3接口請求資源失敗導致頁面加載異常Js報錯導致頁面展示價格異常查詢返回值非預期頁面白屏接口異常JS運行異常
16、查詢功能問題頁面異常問題感謝聆聽CSDN全球最大的中文開發者社區平臺CSDN全球最大的中文開發者社區平臺CSDN創立于1999年全球編程類網站排名第7(來源:Similarweb 2023.04)注冊用戶超過4300萬,覆蓋90%的中文開發者新媒體矩陣粉絲數量超過3100萬超過1000家企業客戶和合作伙伴目前公司員工近800名,分布在北京、長沙、上海、深圳、杭州、成都等城市,并在美國硅谷常設辦事處旗下品牌旗下品牌專業中文IT技術社區:CSDN.NET多媒體專業出版:新程序員開發者專屬移動APP:CSDN APP代碼托管協作平臺:GitCode代碼工具協同平臺:InsCodeIT人力資源服務:科銳??怂关俗W絡高校IT技術學習成長平臺:高校俱樂部