UI平台计划引入录制功能模块,准备在开源项目中进行二次开发,经过需求和实现的比对,app录制在airtest的基础上二次开发,web录制在selenium ide的基础上二次开发

接下来主要说明selenium ide的二次开发方案

功能

首先看看selenium ide当前能够提供的功能模块

  • 录制
    点击、滚动、输入等事件均可以录制
    【selenium】ide录制二次开发
  • 编辑
    对元素定位和操作及描述进行二次编辑
    【selenium】ide录制二次开发
  • 断言
    【selenium】ide录制二次开发
  • 调试

支持回放和单点调试等

从功能模块上基本满足UI自动化平台web录制功能

导出脚本

在预研录制方案时,发现selenium ide 其实提供了到处脚本的功能

  • 导出

【selenium】ide录制二次开发

  • 代码文件

【selenium】ide录制二次开发

导出实现

代码导出以模块化方式构建,每种语言和测试框架都有自己的包含要导出代码的包。每个代码段都映射到Selenium IDE中的命令 github源码
【selenium】ide录制二次开发
代码导出的核心功能是生成特定于语言的字符串,其中最关键的是操作和元素定位策略

  1. 操作
  2. 操作执行
  3. 定位元素
  4. 定位元素策略

【selenium】ide录制二次开发
操作属性映射
【selenium】ide录制二次开发

开发方案

由于按照上面的方案进行开发,虽然可以实施但是工作量较大,研究selenium ide录制时现成的内部通信机制

  1. selenium 打开任何页面都会注入content-script/ record.js的文件,用于监听整个浏览器的事件,由于生成录制的数据
  2. record.js向页面中注入inject-script /gen-step.js
  3. record.js 被加载后 则会与chrome插件的background建立一个长连接
  4. 用户在录制操作后,record.js会将相应的数据发送给到backgroud.js

那么只需要:

  1. 维护一个ui自动化平台页面的发起链接的连接对象列表
  2. 当收到发送的录制数据后,将其转发给到ui自动化平台,平台只需要操作对应的redux数据即可

相关文章:

  • 2021-08-08
  • 2021-11-16
  • 2021-06-13
  • 2022-12-23
  • 2021-11-12
  • 2022-12-23
  • 2022-12-23
  • 2021-07-02
猜你喜欢
  • 2021-07-08
  • 2021-08-19
  • 2021-04-02
  • 2022-12-23
  • 2021-05-26
  • 2022-01-17
  • 2021-10-24
相关资源
相似解决方案