UNPKG

uirecorder

Version:
114 lines (81 loc) 8.39 kB
UIRecorder PC标准入门 =================== 如何录制正常网页操作步骤? ------------------- 1. 首先安装UIRecorder,这个请参考项目介绍首页:[https://github.com/alibaba/uirecorder](https://github.com/alibaba/uirecorder) 2. 创建新目录并进入,然后初始化UIRecorder工程目录:`uirecorder init`, 根据具体情况输入相关的参数,几个回车后,我们的准备工作就结束了,这里详细介绍下几个参数分别是什么作用 1. `Path扩展属性配置,除id,name,class之外`: 此参数,用来定义网页DOM中哪些属性可以用来定位我们的控件,默认值已经包括了主流的属性,一般情况下不需要修改 2. `属性值黑名单正则`:网页中当某些属性值是随机或者不稳定的时候,我们可以通过这个配置来忽略那些属性值,从而保证我们的自动化脚本稳定性,例如我们可以这样配置:`/attr_name_\d+/`,如果需要配置多个属性,可以这么写:`/attr1_\d+|attr2_\d+|/`,详细更多的正则教程请自行搜索 3. `class值黑名单正则`:某些场景下,class属性的值会干扰自动化录制,比如当鼠标移到某个控件上时会动态的添加一个class样式名称,就可能会被录制到PATH中,从而导致自动化无法稳定重放。此时就可以将那个class名称加到黑名单中,例如:`/class_name/`,详细值的配置请参考属性值黑名单 4. `断言前隐藏`:某些业务场景下,会在最上层显示一层透明的div,用来实现一些高级的富应用需求,会导致无法直接断言透明div下方的控件。此种场景下,可以将透明div的PATH配置在此属性中,即可实现在断言时自动移除透明的div,断言后再自动恢复 5. `WebDriver域名或IP`:WebDriver执行机的IP地址,默认是指向本地,如果有部署grid执行机集群,可以指向对应的执行机集群IP 6. `WebDriver端口号`:WebDriver端口号,一般情况下是4444端口号,不需要修改 7. `需要同时测试的浏览器列表`: 需要同时测试的浏览器列表,例如:chrome, firefox, ie 11,可以根据本地或远程执行机集群所支持的浏览器类型自行输入 3. 输入`uirecorder`,会要求输入相关的几个参数, 我们这里介绍下几个参数的意义 1. `测试脚本文件名`: 录制后保存到哪个文件,支持直接输入目录名,例如:test/aaa.spec.js,我们要求脚本文件名必需是xxx.spec.js,否则会导致无法定位到 2. `打开同步校验浏览器?`:校验浏览器是用来实现边录边跑,同步的校验录制的步骤是否能够稳定的重现,避免录制后进行大量的调试。从而实现一次录制,即可稳定重现,极大的提高成功率和稳定性。默认值已经是打开,按回车即可。 3. `浏览器大小`:默认值是1024x768,如果对于浏览器窗口大小没有特殊要求,用默认值回车即可。如果某些场景要求特定大小,那么可以自己指定特定的大小,例如:1024x768 当以上4个参数确认后,我们将看到一个黑背影的开始界面。此时,我们仅需输入需要测试的目标网址,即可正式开始我们的录制之旅。 常规录制说明: 1. 对于常规的网页操作行为,我们没有任何学习门槛,按照正常的网页操作步骤进行即可,UIRecorder会在后台默默的记录并生成自动化脚本 2. 除了鼠标的悬停操作,我们需要通过录制面板,在目标控件上手工添加一个悬停。例如,二级菜单就需要鼠标移到一级菜单后,才能在二级菜单进行点击操作。 3. 如何录制三级甚至四级的多级菜单? 按住`Ctrl/Command键`,然后点击`添加悬停`按钮,即可进入持续悬停模式。进入此模式后,每次添加悬停后,会持续处于事件拦截状态,不用担心鼠标移动会导致二级菜单缩回,然后就可以持续的添加更多的悬停操作。 4. 如何在悬停后断言? 进入`持续悬停模式`后,同时也可以解决悬停后的断言问题。如果希望结束`持续悬停模式`,请再次点击`结束悬停`按钮,即可退出此模式。 如何添加断言? ------------------- 当进行一系列操作后,往往我们需要添加一系列的断言,用来判断操作后的结果是不是正确的。 在操作录制后,我们仅需点击录制面板上的`添加断言`按钮即可,点击按钮后,我们可以发现有以下几个选项: 1. `延迟时间`:用来设置本次断言延迟一定的时间后才执行,一般用来解决某些异步操作时间不确定的问题。 2. `断言类型`:我们提供子丰富的断言类型,不同的控件类型要选择合适的断言类型,这里针对每个断言类型进行介绍 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`: 断言当前控件的图片差异,可以自定义图片差异的百分比 3. `断言DOM`:当前DOM控件的PATH,录制时自动生成,也可以自己进行修改,以在某些特殊场景下进行微调 4. `比较方式`: 针对读取到的值,如何进行断言,我们解释下每个比较方式 1. `equal`: 相等 2. `notEqual`: 不相等 3. `contain`: 包含,目标值包含另外一个值 4. `notContain`: 不包含 5. `above`: 大于,用于断言数值大于某个值 6. `below`: 小于,用于断言数值小于某个值 7. `match`: 匹配正则,一般用于高级断言,例如:/aaa\d+bbb/ 8. `notMatch`: 不匹配正则 5. `断言结果`: 判断的目标值 其它录制功能介绍 -------------------- 1. `属性开关`:对于某些特殊场景,可以通过灵活的开启或关闭属性项,不同步骤选择不同的PATH生成策略,例如:某些控件不太适合用文本定位,就可以临时先关闭`text`属性项 2. `属性值黑名单`: 可以即时配置属性值黑名单,立即生效,用来解决随机属性值的问题,修改后记得按一下回车键,让变更立即生效,格式如下:`/aaa_bbb_\d+/` 3. `执行JS`: 可以用来在浏览器端执行一些扩展功能,例如:`document.title=123;` 4. `添加延迟`:某些操作后,会发起异步请求,异步请求的完成时间不太确定时,可以通过添加延迟时间提升稳定性,时间单位是毫秒 5. `脚本跳转`:用来跳到新的URL,或者跳到另外一个脚本,一般情况下用来引用公共脚本,例如登录操作 如何部署WebDriver服务? ---------------- 1. 本地部署Selenium standalone server: 新开控制台窗口然后执行 > `npm run server` 2. Selenium Grid: [https://github.com/SeleniumHQ/selenium/wiki/Grid2](https://github.com/SeleniumHQ/selenium/wiki/Grid2) 3. F2etest: [https://github.com/alibaba/f2etest](https://github.com/alibaba/f2etest) 录制后如何运行脚本? -------------------- 1. 运行所有脚本: `source run.sh` ( Linux|Mac ) 或 `run.bat` ( Windows ) 2. 运行单个脚本: `source run.sh sample/test.spec.js` ( Linux|Mac ) 或 `run.bat sample/test.spec.js` ( Windows ) 如何临时基于本地浏览器调试脚本? ---------------- 对于常态基于远程执行机跑的场景下,出现问题时,往往需要在本机进行调试,我们可以通过设置环境变量,临时基于本机的浏览器来调试。 1. `export webdriver=127.0.0.1:4444``set webdriver=127.0.0.1:4444` (Windows) 提示:端口号是非必填项,例如:`export webdriver=127.0.0.1`