软件测试技术分享测试复盘软件测试er的学习与分享

UI Recorder + Selenium standalon

2018-12-29  本文已影响2人  Rethink

系统平台:win10 x64
官方网站:http://uirecorder.com/
Github:https://github.com/alibaba/uirecorder
使用手册:https://github.com/alibaba/uirecorder/blob/master/doc/zh-cn/readme.md
UI Recorder Version :2.5.45

UI Recorder 是一款零成本UI自动化录制工具,类似于Selenium IDE,但UI Recorder 要比Selenium IDE更加强大。我用来录制GUI脚本,并集成到CI中进行回归测试。

踩坑

  1. 一定注意安装的Nodejs版本,按照我下面给出的地址下载;
  2. 在UI Recorder Version @2.5.45中,去掉了maximize() 这个 api(据说是因为和selenium-standalone有兼容问题),如果想要全屏回放脚本,可以手动修改此处:
 try {
                    self.driver = driver.session(sessionConfig).maximize().config({
                        pageloadTimeout: 30000, // page onload timeout
                        scriptTimeout: 5000, // sync script timeout
                        asyncScriptTimeout: 10000 // async script timeout
                    });
                } catch (e) {
                    console.log(e);
                }
  1. UI Recorder 在录制时,不支持浏览器回退操作;
  2. 可以使用无头浏览器回放脚本,需要修改录制的脚本,在args处加上headless参数,不会影响截图等功能,如下:
let driver;
            before(function(){
                let self = this;
                let driver = new JWebDriver({
                    'host': host,
                    'port': port
                });
                let sessionConfig = Object.assign({}, webdriverConfig, {
                    'browserName': browserName,
                    'version': browserVersion,
                    'ie.ensureCleanSession': true,
                    'chromeOptions': {
                        'args': ['--enable-automation','--incognito','headless']
                    }
                });
  1. UI Recorder 在录制时,只支持固定的sleep时间,不支持智能等待功能;
  2. 如果想要在脚本回放时才生成截图,可以修改package.json 文件,在--reporter mochawesome-uirecorder后面添加: --reporter-options copyShotOnlyFail=true (要注意有三处需要修改!)
 "scripts": {
    "installdriver": "./node_modules/.bin/selenium-standalone install --drivers.firefox.baseURL=http://npm.taobao.org/mirrors/geckodriver --baseURL=http://npm.taobao.org/mirrors/selenium --drivers.chrome.baseURL=http://npm.taobao.org/mirrors/chromedriver --drivers.ie.baseURL=http://npm.taobao.org/mirrors/selenium",
    "server": "./node_modules/.bin/selenium-standalone start",
    "test": "./node_modules/.bin/mocha \"!(node_modules)/**/*.spec.js\" --reporter mochawesome-uirecorder --reporter-options copyShotOnlyFail=true --bail",
    "singletest": "./node_modules/.bin/mocha --reporter mochawesome-uirecorder --reporter-options copyShotOnlyFail=true --bail",
    "paralleltest": "./node_modules/.bin/mocha-parallel-tests \"!(node_modules)/**/*.spec.js\" --reporter mochawesome-uirecorder --reporter-options copyShotOnlyFail=true --max-parallel 5 --bail"
  },

安装

  1. 环境准备
  1. 安装Chrome浏览器,不要安装绿色版。

  2. 使用管理员权限打开命令行窗口,安装cnpm ,查看cnpm介绍

npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. 安装UI Recorder以及依赖项(注意使用管理员权限)
> cnpm install uirecorder mocha -g
> cnpm install jwebdriver expect.js mocha-generators faker chai --save-dev
# 查看版本
> npm ls uirecorder -g
uirecorder@2.5.45
  1. 新建一个项目目录,并cd到该目录下,执行初始化命令: uirecorder init , 根据项目具体情况输入相关参数后回车即可。参数介绍见UIRecorder PC标准入门 , 这里我设置的需要同时测试的浏览器列表仅为chrome.

  2. 开始录制脚本: uirecord start ,参数根据需要自行填写,建议开启同步校验浏览器,点击查看uirecorder录制视频教程


    ​ 结束录制后,可在文件夹./sample/目录下看到刚才录制的脚本。
  3. 回放刚才录制的脚本,需要搭建WebDriverServer,支持:Selenium standalone server, Selenium Grid 和 F2etest 三种,下面只介绍第一种单机方式。

    下载selenium-standalone和Chromedriver:

  1. 启动Selenium server: java -jar .\selenium-server-standalone-3.9.1.jar , 不要关闭该窗口。

    selenium server
  2. 运行(回放)测试用例

上一篇 下一篇

猜你喜欢

热点阅读