UI 自动化测试: UIRecorder + Selenium standalone server 搭建 Web UI 自动化测试
相关文档链接
1. 操作: https://www.jianshu.com/p/f7b11da864fa
官方网站:http://uirecorder.com/
Github:https://github.com/alibaba/uirecorder
使用手册:https://github.com/alibaba/uirecorder/blob/master/doc/zh-cn/readme.md
录制视频:https://v.youku.com/v_show/id_XMTY4NTk5NjI4MA==.html
参考链接: https://blog.csdn.net/weixin_38208401/article/details/79512791
chromedriver 版本下载:https://npm.taobao.org/mirrors/chromedriver/
chrome浏览器与 chromedriver的早期对应关系:https://blog.csdn.net/yoyocat915/article/details/80580066
安装
1. 安装 Java JDK 并配置环境变量
新建系统变量JAVA_HOME 和CLASSPATH
- 变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_140
- 变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
2. 安装 nodejs
注意,当前实测 可用版本为 V12.20 (实测:V13.14 uirecoder init 时失败,V8.11.3 安装 selenium-standalone时无匹配版本)
可用版本下载链接: https://npm.taobao.org/mirrors/node/latest-v12.x/node-v12.20.0-x64.msi (全部版本:https://npm.taobao.org/mirrors/node/)
安装完成后使用 "node -v" 查看
1 | node - v |
3. 安装 chrome 浏览器
打开浏览器,输入“chrome://version”,查看 浏览器版本。
4. 安装 UIRecorder
1)进入 C:\Users\xxxx\AppData\Roaming\,手动删掉 npm 及 npm-cache 文件夹,然后重新,然后重新创建 npm
2)配置环境变量: %PATH%,加入 C:\Users\{username}\AppData\Roaming\npm,并通过 “npm -v” 查看是否生效
==== 以下步骤使用管理员权限 在 cmd 窗口操作
3)安装 UIRecorder:
cnpm install uirecorder mocha -g
4)安装 Selenium standalone server:
cnpm install selenium-standalone -g
5)安装 webdriver:
selenium-standalone install
查看是否安装完成。
(1)某些 driver 可能下载失败,可以尝试再次执行安装
(2)Firefox geckodriver 可以通过 https://github.com/mozilla/geckodriver/releases/ 下载
(3)selenium driver 的文件存放在 C:\Users\xxxx\AppData\Roaming\npm\node_modules\selenium-standalone\.selenium,手动放置后,可以 运行 查看是否正常启动
selenium-standalone start |
6) 安装Mocha单元测试框架
cnpm install mocha -g cnpm install jwebdriver expect.js mocha-generators faker --save-dev cnpm install jwebdriver chai faker --save-dev |
5. 检查浏览器与driver版本是否对应
1)selenium之 chromedriver与chrome版本映射表(https://blog.csdn.net/huilan_same/article/details/51896672)
Note: 最新: https://blog.csdn.net/yoyocat915/article/details/80580066
2) C:\Users\{username}\AppData\Roaming\npm\node_modules\uirecorder\package.json
将chromedriver 改成 浏览器对应的 driver 版本,如本机安装的chrome 为 89.0,则对应的 driver 为 89.0
3) 确定chromedriver版本
1 2 3 4 5 | cd C:\Users\xxxxx\AppData\Roaming\npm\node_modules\uirecorder cnpm install / / 更新uirecorder依赖的chromedriver为 2.45 . 0 版本 npm ls chromedriver - g / / 查看chromedriver的版本 |
完成后,进入 C:\Users\xxxx\AppData\Roaming\npm\node_modules\uirecorder\node_modules\chromedriver\lib\chromedriver,双击 chromedriver.exe,查看版本是否与 chrome浏览器的版本对应。
开始录制
1. 初始化工程
1 2 3 4 5 6 7 | E: mkdir project_name / / 创建工作目录 cd project_name / / 进入到工作目录中,以下的命令都是在此工作目录中执行 uirecorder init / / 初始化uirecorder |
* 一路回车,浏览器的地方选择 "Chrome"
如果卡在 start install dependencies,可能是版本不匹配的原因
2. 开始录制测试用例
启动uirecorder录制,并且录制的脚本保存到工作目录下的sample/test.spec.js
1 | uirecorder start |
此时会打开两个chrome浏览器,一个用来校验的,一个用来录制脚本的
上传文件:
UI Recorder仅支持Native文件上传, 不支持FLASH上传
直接点击“选择文件”按钮或点击“Upload file”, 占位按钮必需要用role或data-role标注为upload

上传的文件必需保存在 /uploadfiles/ 中。
回放
1. 启动 selenium-standalone
selenium-standalone start
2. 运行回放
1 | run.bat sample / test.spec.js |
查看回测报告
reports\index.html
录制中禁止如下操作!
1、禁止直接手动修改地址栏中的URL
2、禁止使用TAB切换焦点
3、不要使用双击, WebDriver兼容性不好
4、不要使用鼠标选择部分文本, WebDriver兼容性不好
5、不要手动切换至背景窗口
6、不要点击非关键区域, 仅录制关键步骤
断言类型
1)val:输入框的值
2)text:文本的内容
3)displayed:控件是否处于显示状态
4)enabled:当前控件是否可用(没有禁用)
5)selected:当前控件是否打勾选中了
6)attr:当前DOM的属性值
7)css:当前DOM的CSS值
8)url:当前网页的URL地址
9)title:当前网页的title标题
10)cookie:当前网页的cookie值
11)localStorage:当前网页的localStorage
12)sessionStorage:当前网页的sessionStorage
13)alert:弹出的alert窗口的提示文本
14)jscode:浏览器端执行自定义的JS代码,断言JS代码的返回值
15)count:控件匹配的数量
16)imgdiff:当前控件的图片差异,可以自定义图片差异的百分比
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)