乾貨分享丨一種DevOps模式下UI自動化測試左移思路的探究
隨著科技的不斷髮展成熟,市場的變化也越來越迅速,為了更快捷地應對客戶需求,更多的企業選擇了快速迭代的方式進行產品的研發,因此DevOps也就應運而生。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~
DevOps模式是文化、流程、概念、結構、技術等方方面面的變革,同時也對測試工作提出了更加嚴格、高效的要求。在DevOps的趨勢下,測試工作由原來的大量集中測試,變成了高頻次的迭代測試,由原來的純手工測試,演變成了依託工具和平臺的自動化測試,由原來僅僅需要關注測試階段,左移到了產品的開發設計階段。
本文提供了一種DevOps模式下UI自動化測試左移的思路,將涉及到的環節進行了標記,如圖1所示。
圖1 產品週期概要圖
該思路是將測試工作左移到了開發設計階段,分為五個步驟實現:
·根據UI設計圖,測試人員設計基於介面元素的業務流程圖;
·根據業務流程圖,測試人員補充介面元素的賦值情況,形成業務/資料流圖;
·在編碼階段,開發人員根據業務/資料流圖的資訊,對介面元素加入定製化的描述,包括介面元素唯一驗證、元素型別、操作、賦值等資訊;
·在編碼完成後,進行程式碼掃描,將之前加入的定製化描述抓取出來,根據唯一驗證資訊捕捉介面元素從而形成物件庫,根據元素型別、操作、賦值等形成標準化案例步驟,並根據業務流程圖的業務規則對標準化步驟進行排序,進而生成UI自動化案例;
·在部署完成後,可以透過前面步驟生成的UI自動化案例進行測試准入檢測。
透過上面五個步驟,使得測試工作介入到了開發的設計階段,在UI設計完成的同時,也完成了業務流圖和資料流圖的設計工作,實現了對業務邏輯的梳理和測試資料的準備,最終在程式碼部署之前,透過程式碼掃描的方式進行了UI自動化案例的自動生成,並以UI自動化執行冒煙測試。
我們以某報表查詢交易為例,進行UI自動化測試左移思路的詳細說明。
1.基於UI設計圖與介面元素形成業務流程圖
本文選取了某報表查詢的介面為例,UI設計介面如圖2所示:
圖2 UI設計介面
由上圖可知,該介面包含了2個文字框(查詢機構和查詢日期)、3個按鈕(查詢、重置和下載)、1個表格,共計6個介面元素。在UI設計完成後,結合需求對該介面的業務流程進行分析,可以得到介面元素的操作順序,也即是該介面的業務流程圖,如圖3所示:
圖3 介面元素業務流程圖
2.基於業務流程圖與資料賦值形成的業務/資料流圖
依據圖3的業務流程圖,測試人員繼續按照標準規範“物件|操作|資料”補充介面元素的賦值情況,例如文字框需要輸入資料,則採用“文字框|輸入|資料”的形式,如按鈕不需要輸入資料,則採用“按鈕|點選”的形式,以此最終形成業務/資料流圖,如圖4所示:
圖4 介面元素業務/資料流圖
3.基於業務/資料流圖完成介面元素的定製化描述
在測試人員完成業務/資料流圖後,開發人員會根據流圖內容和規範進行程式碼編寫,透過在介面元素的Xpath中加入圖4的ID,例如Frame("name:=udesk-tab-iframe-1").WebEdit("xpath:=//INPUT[@id='00001']"),以此來獲取介面元素的定位資訊與其他描述,從而形成UI自動化案例的介面物件庫;透過加入定製化的介面元素描述例如“AutoTest 介面元素ID|步驟序號|介面元素型別|操作|資料 End”的方式,例如圖4中的第二步則可以寫成“AutoTest 00002|2|文字框|輸入|20210512 End”,第七步則可寫出“AutoTest 00003|7|按鈕|點選 End”。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~
4.基於程式碼掃描與定製化描述生成UI自動化案例
開發人員按照上述標準對介面元素進行描述,在編碼階段完成後,便可對程式碼文字進行掃描,當掃描工具遇到AutoTest時則開始抓取後續資訊,在遇到End後停止抓取,直到下次遇到AutoTest時則繼續抓取資訊。
將抓取的資訊按照“|”進行拆分,根據“介面元素ID”形成物件庫,根據“介面元素型別|操作|資料”形成標準化案例步驟,根據“步驟序號”進行案例的排序,並最終整合成完整案例。
5.利用UI自動化案例進行冒煙測試
根據上述程式碼掃描生成UI自動化案例,並將案例上傳到管理平臺,在進行相關流水線配置後即可進行UI自動化准入,執行冒煙測試。
透過這種思路,可以實現測試左移至開發設計階段,在UI設計完成時,便開始進行業務流程圖和資料流程圖的設計工作,透過流程圖的設計,達到了業務分析和資料準備的目的,並形成了流程圖等相關專案資產。而透過UI自動化冒煙的方式,減少了人工的干預,用機器代替手工,提高了測試的效率,符合DevOps的相關要求。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2781113/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- APP UI自動化測試思路總結APPUI
- 一種基於 cypress 的 UI 自動化測試框架UI框架
- 乾貨丨實現UI自動化測試,這5個常見問題你應該知道!UI
- 自動化測試思路
- 乾貨分享:Totoro 在自動化測試領域的深耕與收穫
- 乾貨分享丨3種SQL語句最佳化方法,軟體測試必備!SQL
- 自動化測試系列 —— UI自動化測試UI
- 乾貨丨RPA郵件自動化技巧
- 自動化測試系列(三)|UI測試UI
- 介面自動化測試框架搭建的思路框架
- UI 自動化測試平臺UI
- UI自動化測試之AirtestUIAI
- UI自動化測試實戰UI
- 乾貨丨Python介面測試自動化實戰及程式碼示例:含get、post等方法Python
- 乾貨分享 | PCB測試點的用途
- 前端自動化UI測試的完整方案前端UI
- 自動化測試框架的AW模式框架模式
- Postman實現UI自動化測試PostmanUI
- UI自動化測試工程實踐UI
- UI自動化測試框架Cypress初探UI框架
- 新夢想幹貨分享——持續整合的自動化測試
- ui自動化測試,頁面方法的使用UI
- 從一次故障聊聊前端 UI 自動化測試前端UI
- 前端ui自動化測試sdk封裝前端UI封裝
- 關於Web端-UI自動化測試WebUI
- UI自動化測試-web元素選擇UIWeb
- android 5個自動化測試Ui框架AndroidUI框架
- 乾貨丨RPA 關於各種對賬的分享與總結
- 移動端 UI 自動化測試框架對比UI框架
- UI自動化測試介紹及入門UI
- 使用Selenium自動化測試SAP CRM WebClient UIWebclientUI
- iOS appium UI 自動化測試配置可控 xpathiOSAPPUI
- 關於 ui 自動化測試 driver 疑問?UI
- 求大神指點思路-python 自動化介面測試Python
- 乾貨分享▏軟體效能測試包括哪些測試內容?
- 一次 Linux 桌面自動化測試工具的試用經歷分享Linux
- 介面自動化測試工程實踐分享
- 左移測試,如何確保安全合規還能實現高度自動化?