• 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
    

      

  • 相关阅读:
    fedora安装后的配置
    linux下的Shell编程(7)使用-x和-n调试shell程序
    linux下的Shell编程(8)自定义函数
    linux下的Shell编程(6)case和select
    linux下的Shell编程(5)循环
    linux下的Shell编程(4)特殊的变量和占位符
    linux下的Shell编程(3)shell里的流程控制
    Linux下的Shell编程(2)环境变量和局部变量
    Linux下的Shell编程(1)最简单的例子
    Docker学习笔记
  • 原文地址:https://www.cnblogs.com/Lam7/p/13475977.html
Copyright © 2020-2023  润新知