UI Recorder 自動化測試 錄制原理(八)


錄制原理

一、原理流程圖

 

 

 錄制功能主要由 Chrome Extension 和 Node Process 兩部分組成:

       Chrome Extension 會對當前瀏覽器進行全局事件監聽,當觸發某個事件(比如 click)時,即獲取當前操作元素的節點信息,同時通過 WebSocket 發送指令(開始錄制、錄制、結束錄制)、數據(事件類型、節點信息)至 Node Process。

       Node Process 接收到 Chrome Extension 的請求指令、數據,將其記錄在一個數組中,當 Chrome Extension 發起結束錄制指令時,結合記錄隊列和配置的腳本模版,生成測試用例腳本至指定目錄(如 sample/test.spec.js )。

 

1.1 事件驅動

       UIRecorder 的錄制功能基於事件驅動,默認觸發某個事件的操作行為,都作為有效操作記錄下來。記錄一系列的操作行為,即記錄一系列的事件行為。

 

1.2 捕獲元素

       UIRecorder 事件操作的元素信息,基於 DOM 進行定位,UIRecorder 主要選擇 CSS Selector 的方式進行定位,捕獲元素信息主要包括標簽(tag)、屬性(attribute)、文本內容(text)、值(value)。

 

1.3 Websocket 通信

       WebSocket 是一種網絡傳輸協議,可在單個 TCP 連接上進行全雙工通信。UIRecorder 主要利用 WebSocket 實現 Chrome Extension 與 Node Process 的通信,Chrome Extension 將錄制過程的相關指令、數據(事件類型、節點信息)傳輸至 Node Process。

 

1.4 生成腳本

       Chrome Extension 會向 Node Process 發送指令、數據。指令主要包括開始錄制、錄制、結束錄制:開始錄制時,Node Process 會初始化一個數組;錄制過程中,將數據(事件類型、元素信息)push 至數組中;結束錄制時,將數組與定義好的腳本模版結合,生成測試用例腳本。

       其中,不同事件類型會配置不同腳本模版,結合元素信息及腳本模版,即可生成該操作行為對應的回歸腳本代碼。

二、更多參考

Node.js http 模塊:http://nodejs.cn/api/http.html
Node.js fs 模塊:http://nodejs.cn/api/fs.html
DOM:https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object_Model/Introduction

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM