• UI Recorder 自动化测试 整体架构(七)


    整体架构

    一、整体架构

    1.1 底层依赖

    Chrome Extension:Chrome 拓展程序是一个用 Web 技术开发增强浏览器功能的软件,由 HTML、CSS、JavaScript、图片等静态资源组成打包的一个 .crx 后缀的压缩包。UIRecorder 主要利用了 Chrome Extension 实现事件驱动DOM 捕捉的能力。

    NodeJS:Node.js 是一个基于 Chrome V8 JavaScript 引擎实现的 JavaScript 运行时。UIRecorder 主要利用其 http 模块实现 Websocket 通信能力、利用其 fs 模块实现生成脚本能力。

    Selenium:Selenium 是一款主流的 Web UI 测试框架,是一款用于运行端到端功能测试的工具,且得到了各大浏览器厂商的支持。UIRecorder 主要利用其 WebDriver 服务能力实现端到端功能测试,并且 Selenium 支持各大主流浏览器,因此可以利用 Selenium 进行多浏览器兼容测试。

    Mocha:Mocha 是一款主流的 JavaScript 测试框架,包括多种测试风格脚本模版、执行库、报告器等测试场景通用能力。UIRecorder 主要利用其 BDD 风格设计脚本模版,利用其执行库功能进行场景回归测试,且将回归测试的结果通过报告器进行数据提炼、渲染,多维度直观呈现回归结果。

    1.2 核心能力

    事件驱动:UIRecorder 录制功能中,Chrome Extension 基于 JavaScript 的 事件机制 进行全局事件监听,当触发事件操作时(click、keyDown等),记录事件类型及当前操作节点信息。

    DOM 捕捉:录制过程中记录的元素信息,Chrome Extension 基于 JavaScript 的 DOM 实现,记录的信息主要包括 DOM 节点的标签(tag)、属性(attribute)、文本内容(text)、值(value)等。

    WebSocket 通信:WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信。UIRecorder 主要利用 WebSocket 实现 Chrome Extension 与 Node Process 的通信,Chrome Extension 将录制过程的相关指令、数据(事件类型、节点信息)传输至 Node Process。

    生成脚本:Node Process 利用 Chrome Extension 传输的相关指令、数据,结合配置好的录制脚本模版,生成对应的测试用例脚本。

    WebDriver:Selenium 提供的 WebDriver 服务能力,符合 W3C WebDriver Protocol 规范,UIRecorder 执行回归测试时,可通过 http 请求的形式,调用浏览器并进行操作,且 WebDriver 会返回对应响应信息。

    多浏览器兼容:Selenium 的 WebDriver 服务支持各大主流浏览器,包括 Chrome、Firefox、IE 等,采用 Selenium 进行回归测试时,可同时测试多浏览器兼容性。

    执行库:UIRecorder 进行回归测试的执行库基于 Mocha 实现,其功能主要是将测试用例脚本按照一定的规则处理、执行,返回对应的执行结果。

    报告器:执行库返回的执行结果,可经过报告器进行数据提炼,多维度展示。

    1.3 应用层

    录制功能:通过无干扰的形式,进行业务场景测试的同时,将测试的操作行为录制下来,生成测试用例,供回归测试使用。

    回归功能:执行回归测试脚本,输出对应的执行报告。

    数据可视化:提取多个报告数据,从时间、业务等维度度量产品质量。

     

     

    二、更多参考

    Chrome-plugin-develop:https://www.yuque.com/artist/aori6e/brhggm
    NodeJs:https://nodejs.org/en/
    Selenium:https://www.seleniumhq.org/
    Mocha:https://mochajs.org/
    如何实现一个简易版的 Mocha:https://www.yuque.com/artist/aori6e/vt4171
    WebSocket:https://en.wikipedia.org/wiki/WebSocket
    macaca-reporter:https://macacajs.github.io/macaca-reporter/zh/guide/
    

      

  • 相关阅读:
    wget下载https文件,服务器可以虚拟机中不行的问题
    FTP被动模式服务器端开有限的端口
    ZOJ
    HDU
    JAVA 大数 A+B问题
    A Simple Math Problem(矩阵快速幂)----------------------蓝桥备战系列
    Covering(矩阵快速幂)
    卡特兰数详讲(转)
    Just a Hook(线段树区间修改值)-------------蓝桥备战系列
    A Simple Problem with Integers(线段树区间更新复习,lazy数组的应用)-------------------蓝桥备战系列
  • 原文地址:https://www.cnblogs.com/Lam7/p/13475949.html
Copyright © 2020-2023  润新知