继vue单元测试,将进行vue的e2e测试学习。

学习点:

  • 安装uirecorder
  • 用工具(UI Recorder)录制测试脚本
  • 测试脚本的回放

本文意在安装UI Recorder,并且利用该工具进行测试脚本(.js)的录制与回放。

一、安装

安装NodeJS(已安装)、Chrome(已安装)、UI Recorder、mocha。

解决权限问题:

在虚拟机Linux操作系统下,会涉及到另一种安装失败的情况:权限不足(permission denied)。故在install uirecorder之前,先配置权限:

#sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
  • 以上命令表示为当前用户设置npm相关安装目录的权限
  • chown全称为change owner,授予权限命令
  • -R 表示递归,对指定目录下所有的子目录和文件采取同种操作
  • $(whoami) 表示获取当前用户名,即为当前用户设置权限【也可以直接写用户名】
  • $(npm config get prefix) 表示获取 npm 全局安装默认目录  

 安装uirecorder和mocha:

#npm install uirecorder mocha -g

若是安装失败(在安装到chrome相关包时可能会失败),则试试用cnpm命令,#cnpm install uirecorder mocha -g

【安装cnpm:#npm install -g cnpm --registry-https://registry.npm.taobao.org】

检查版本与建立软链接:

检查uirecorder安装成功与否,可以用查看版本的命令检查【Linux】:

#uirecorder --version 

如果报错:bash: uirecorder: 未找到命令... 则需要建立软链接,才能使用uirecorder命令。

转到 root 权限,建立软链接:

#sudo ln -s /opt/tools/node-v9.2.0-linux-x64/bin/uirecorder /usr/local/bin/uirecorder

【ln -s 源文件 目标文件】

【 /usr/local/bin  目录是给用户放置自己的可执行程序的地方(Linux),避免系统升级而覆盖同名文件】

再检查版本:

#uirecorder --version

 

 成功!接下来就可以在具体的项目中进行测试脚本的录制啦!

二、PC录制

1. 初始化测试工程

  • 转到项目根目录: #cd 项目根目录
  • 初始化uirecorder配置:  #uirecorder init

一路回车即可,在选择浏览器列表那里根据自己的需求输入相应的浏览器,默认会出现两项(chrome,ie11),我虚拟机没有ie,故而只输入了chrome。

TODO:解释创建的各文件作用。

  • 安装相关依赖
#npm install jwebdriver expect.js mocha-generators faker --save-dev
#npm install jwebdriver chai faker --save-dev 
  • 后话:在初始化 uirecorder 配置时,也许不应该直接在项目根目录下进行该操作,这样不便于管理。好的做法应该是为uirecorder专门建立一个目录,uirecorder init生成的各种配置文件都在次目录下,项目结构友好。下图的绿色点就是新生成的文件及文件夹,可以看出来,很散乱。

2. 开始录制测试用例

  • 修改hosts文件:

config.json内容如下,根据需要修改,可以不修改:

{
"webdriver": {
"host": "127.0.0.1",
"port": "4444",
"browsers": "chrome"
},
"vars": {},
"recorder": {
"pathAttrs": "data-id,data-name,type,data-type,role,data-role,data-value",
"attrValueBlack": "",
"classValueBlack": "",
"hideBeforeExpect": ""
}
}
  • uirecorder sample/test.spec.js

3. 启动WebDriver服务器

  • 安装服务Selenium standalone server:

#npm install selenium-standalone -g

  • 建立软链接:

#sudo ln -s

#sudo ln -s /opt/tools/node-v9.2.0-linux-x64/bin/selenium-standalone /usr/local/bin/selenium-standalone
#sudo ln -s /opt/tools/node-v9.2.0-linux-x64/bin/start-selenium /usr/local/bin/start-selenium

selenium-standalone install

selenium-standalone start

或者 java -jar selenium-server-standalone-3.7.1.jar

4. 运行测试用例

  • 运行所有脚本:#source run.sh ( Linux|Mac ) 或者# run.bat ( Windows )【官网写的,但是运行不起来,会报错说丢失脚本:

    npm ERR! missing script: singletest

  • 运行单个脚本:#source run.sh sample/test.spec.js ( Linux|Mac ) 或 run.bat sample/test.spec.js ( Windows )

用mocha(摩卡)命令来回放:

#mocha sample/test.spec.js

5. 获得测试报告和单步截图

mochawesome

6. 总结

安装uirecorder

资料:

1. UI Recorder官方中文教程

2. 自动化测试工具UIRecorder安装教程

3. UI自动化录制工具----UI Recorder

4. 基于录制的前端测试工具UI Recorder

UIRecorder安装与使用的更多相关文章

  1. UIRecorder环境搭建及录制实现

    前天看TesterHome提到UI录制做UI自动化,很感兴趣,前来学习学习. 参考:https://github.com/alibaba/uirecorder/blob/master/doc/zh-c ...

  2. 记录项目代码迁移后,UI测试框架的搭建(配置文件的修改、测试脚本试运行)

    前文:记录一次项目代码迁移过程 上文代码迁移的目的就是为了新增vue脚手架自带的UI测试框架,工具有了,就需要实践运行在项目中了(修改配置文件.编写测试脚本等). 一.单元测试 测试框架 karma ...

  3. Macaca自动化工具之uirecorder脚本录制

    UI Recorder功能介绍 支持所有用户行为: 键盘事件, 鼠标事件, alert, 文件上传, 拖放, svg, shadow dom 支持无线native app录制, 基于macaca实现: ...

  4. uirecorder 启动webdriver服务报错

    在安装好uirecorder后,执行起来是各种错误. 不是少这个就是缺那个,也是因为自己对自动化测试知识太匮乏. 导致刚开始走自动化测试绕了很多弯路,报个错都不知所措.后来才知道要多看ERROR后面的 ...

  5. UI Recorder 安装教程(一)

    前言: UI Recorder 是一款零成本UI自动化录制工具,类似于Selenium IDE. UI Recorder 要比Selenium IDE更加强大! UI Recorder 非常简单易用. ...

  6. UI Recorder 安装教程(二)

    前言: UI Recorder支持无线native app(Android, iOS)录制, 基于macaca实现:https://macacajs.com/ 本次教程只针对无线native app( ...

  7. 使用jenkins管理uirecorder录制的任务

    在uirecorder官网(http://uirecorder.com/)上,对jenkins的配置只有简单的几句话: How to dock Jenkins? Add commands source ...

  8. F2eTest和uirecorder自动化测试环境部署填坑记录

    坑1:尝试部署的时候只在opennode.bat里面填写了两个浏览器,测试通过后再增加其他浏览器,页面上一直不显示. 填坑:需要清空数据库里的`wd_browsers`和`wd_nodes`表,然后重 ...

  9. Macaca 自动化录制工具uirecorder使用入门

    Q&A PC端执行用例前,一定要运行selenium-standalone start,否则会出现这个问题:https://github.com/alibaba/uirecorder/issu ...

随机推荐

  1. hdu4513吉哥系列故事——完美队形II 马拉车

    题目传送门 题意:求最长回文串长度,要求回文串左边是非下降. 思路一: 先把连续的回文串,满足先上升再下降的序列处理出来,再对这部分序列做马拉车模板就可以了. 需要注意的是,由于他要的是非下降的序列, ...

  2. npm的介绍

    npm使JavaScript开发人员能够轻松地共享和重用代码,并且可以轻松更新你正在共享的代码. 如果你一直在使用JavaScript,你可能已经听说过npm.npm使JavaScript开发人员能够 ...

  3. PIE SDK打开静止卫星数据

    1. 功能简介 静止卫星是位于地球赤道上空约3.58万km处,与地面始终保持相对静止的卫星,静止卫星的特点是覆盖区域广,具有很强的机动灵活性,能够对特定区域进行分钟级高重复观测,可快速监测灾害目标的动 ...

  4. 后台返回的值ajax接收不到

    原因有很多种可能,我遇到的是后台写的Controller忘记了加@ResponseBody,导致springMVC把返回的字符串当成view了

  5. 「bzoj1925」「Sdoi2010」地精部落 (计数型dp)

    「bzoj1925」「Sdoi2010」地精部落---------------------------------------------------------------------------- ...

  6. AppInventor2笔记

    将视觉化的 块语言 翻译为 Android上的实现 的编译器使用了Kawa语言框架,而Kawa是Scheme编程语言的方言,由Per Bothner开发,并由自由软件基金会发布,它是GNU操作系统的一 ...

  7. do while循环

    do while循环: 语法格式: do{ 循环体 }while(循环条件); 执行流程: 先执行循环体,然后判断条件,当条件为true时,则继续执行循环体,然后再判断条件... 一直到循环条件为fa ...

  8. 关于Json字符串"反序列化Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path..."

    描述的很清楚就是说给它的不是一个对象,而是一个数组,所以他在建议你用JArray去解析,但是你明明就是给它的一个对象,并不是一个数组 这是我下意识的去把我的json字符串中的"[ ]&quo ...

  9. nginx location 配置阐述优先级别使用说明

    使用nginx 有大半年了,它的高性能,稳定性表现很好. 这里也得到很多人的认可. 其中它的配置,有点像写程序一样,每行命令结尾一个";"号,语句块用"{}"括 ...

  10. 游戏AI的生命力源自哪里?为你揭开MOBA AI的秘密!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由wataloo发表在专栏wataloo的试验田 1 设计概要 1.1 设计原则和目的 英雄AI的目的主要有: 1.新手过渡局,让玩家刚 ...