引子

对于测试从业者来说,手工测试是一个绕不过去的坎。当年我校招毕业以测试工程师岗位进了一家互联网公司。入职第一天就被师父"拉去干活",至今印象深刻,是一个投顾管理平台(投资顾问管理客户的平台,主要功能是为用户做理财资讯推荐)。主要工作就是让我结合测试用例对这个web页面进行测试,说白了就是点点点。测试新人嘛,这些对于我来说挺新鲜的,但是随着时间的流逝,不到几个月就感觉有点不对了,手工测试完全是个机械化的工作,在执行用例过程大脑是没有思考的,长此以往,会让你的大脑形成固化思维,在测试过程中大脑能得到的测试价值边际效应是递减的,所以这也就解释了大部分手工测试人员普遍测试积极性不高,对未来充满焦虑。

穷则思变,当时作为小白的我向身边的测试老手了解到可以学习UI自动化测试。那时起,测试之路仿佛有了一盏灯塔,让我对其充满向往。随着从事测试行业工作的年限增长,测试经验也越来越丰富,期间大大小小也做了非常多的项目。渐渐地对UI测试自动化也做了些许积累。下面将这些年来接触的UI自动化测试框架做一个对比,供大家能结合自己手上的项目选择合适的框架用于工作中。

框架大比拼

UIrecoder

UIRecorder 是一款阿里开源的 UI录制 和 回归测试 工具,用于录制浏览器页面 UI 的操作。通过 UIRecorder 的录制功能,可以在自测的同时,完成测试过程的录制,生成 JavaScript 测试脚本代码。回归测试过程中,可以利用生成的 JavaScript 测试脚本代码,使用 Mocha 对自测过程进行回放,以达到零成本做自动化回归测试的目的。

优点

  • 零成本的自动化解决方案:完全无干扰录制,让开发在自测过程中就能同步录制出自动化。

  • 测试报告直观:测试结果会生产 HTML 格式的报告文件,且每一个核心步骤都会自动截图,便于通过截图直观地分析报错原因。

  • 测试多浏览器兼容性:通过 Chrome 浏览器一端录制生成的测试用例脚本,可以在 Firefox、IE、Opera 等浏览器多端运行回归测试。

    搭建

环境搭建

  • Nodejs

根据电脑操作系统,选择对应的安装包,下载链接:https://nodejs.org/en/

  • Chrome

下载链接:https://www.google.com/chrome/

  • CNPM

由于 npm 是国外网络环境,可能被墙或下载速度较慢,可以使用 cnpm , 下载速度更快。运行以下命令安装 cnpm:

sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
  • JDK

安装 Java JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  • UIRecorder

cnpm install uirecorder mocha macaca-reporter -g

可以使用以下命令检查安装情况:

cnpm list uirecorder -g
cnpm list mocha -g
cnpm list macaca-reporter -g

Cypress

Cypress 是在 Mocha的基础上开发的一套开箱即用的 E2E测试框架,并不依赖前端框架,也无需其他测试工具库,配置简单,并且提供了强大的 GUI 图形工具,可以自动截图录屏,在测试流程中 Debug。 支持端到端测试、集成测试和单元测试,支持测试在浏览器中运行的任意内容。

功能

  1. 时间旅行

  2. 自动等待(类似 Jest 中的 wait)

  3. 网络流量控制

  4. 截屏

  5. 持续集成

环境搭建

  • Nodejs

根据电脑操作系统,选择对应的安装包,下载链接:https://nodejs.org/en/

  • Cypress

npm install cypress --save-dev   # 安装cypres

Selenium

Web UI自动化测试框架,底层基于webdriver实现,浏览器实现了webdriver功能都可以用它来自动调起和测试。

功能

  1. 测试与浏览器的兼容性;

  2. 测试系统功能;

  3. 支持自动录制动作,和自动生成 .NET、Perl、Python、Ruby 和 Java 等不同语言的测试脚本。

环境搭建

  • Chrome

下载链接:https://www.google.com/chrome/

ChromeDriver 镜像: http://npm.taobao.org/mirrors/chromedriver

  • Python/JDK

pip3 install selenium

https://www.selenium.dev/downloads/

Airtest

AirtestProject是由网易游戏推出的一款自动化测试框架,功能如下:

  • Airtest:是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。

  • Poco:是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用。

  • AirtestIDE:跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写Airtest和Poco代码。

功能

  1. 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程

  2. 支持图像识别,适用于所有Android和Windows游戏

  3. 支持UI控件搜索,适用于Unity3d,Cocos2d与Android App

  4. 跨系统,能够运行在Windows和MacOS上

环境搭建

  • Chrome

下载链接:https://www.google.com/chrome/

ChromeDriver 镜像: http://npm.taobao.org/mirrors/chromedriver

官网下载

http://airtest.netease.com/download.html?download

  • Python

如果你想要利用Airtest的API,自己拓展更多的高级功能的话,可以先下载airtest的python第三方依赖库:

brew install python3.6.4
#下载python3
pip3 install Airtest
#下载Airtest python第三方依赖库
pip3 install poco #下载Airtest提供的Android app ui测试库pocoui

后话

首先,要明确一点,做UI自动化并非是完全替代手工测试,所以你要明确做UI自动化的目的,是用于冒烟测试、回归测试、e2e测试等,通常来说一个回归测试更适合自动化实现。

其次,要评估好做UI自动化的投资产出比ROI(Return On Investment)。

自动化测试ROI公式:

ROI =(手动测试成本–自动测试成本)/自动测试成本*100%

手工测试成本=手工用例设计成本+手工测试总执行成本=手工用例设计成本+(手工用例单次执行成本+手工用例单次维护成本+手工用例单次发现问题排查成本)*执行次数 

自动化测试成本=自动化测试框架、测试代码首次开发成本+自动化用例数*自动化用例平均设计成本+自动化用例单次平均维护成本*运行次数+自动化用例单次执行成本*执行次数

最后,所有的自动化都是有学习成本的,也必须掌握一门编程语言,对于本文介绍的UI自动化来说,前端HTML、CSS、JavaScript等基础必须是掌握的,更进一步能掌握市面上主流的前端开发框架。编程语言也是必须的,测试同学学习较多的编程语言如Java、Python,可以选择其一。

附录

阿里镜像库:https://developer.aliyun.com/mirror/NPM?from=tnpm

往期推荐

接口间参数传递的一种解决方案

经验分享|测试工程师转型测试开发历程

浅谈Mock平台的设计思路

接口自动化测试框架设计思路

接口自动化测试框架实践1:接口测试概述

我在阿里做测开

Web UI自动化框架大比拼相关推荐

  1. Web UI自动化框架搭建

    本篇博文只从项目架构角度,提供一些建议供参考.不涉及具体代码编写.目前市场上主流的免费开源工具就是Selenium.大家可以根据自己项目技术栈,选择合适的语言+外加Unit Test框架,来构建自己的 ...

  2. 手把手教你从0到1搭建web ui自动化框架(python3+selenium3+pytest)

    -前期准备 -环境 -实战: 从0开始 前期准备 为更好的学习自动化框架搭建,你需要提前了解以下知识: python基础知识 pytest单元测试框架 PO模式 selenium使用 环境 本次我们自 ...

  3. WEB UI自动化框架设计

    1.框架简介 1.1 框架设计思想 本框架是由selenium+testng+java+maven编写的数据驱动框架,对于用例的开放设计性比较强,分离了页面元素.页面元素操作.用例和检查点,也就是说, ...

  4. WEB UI自动化测试框架搭建(一)_公用方法Utils

    本栏目内的所有项目使用的都是PyCharm 2020.1专业版,可以下载后自行在网上找教程破解. WEB UI自动化测试框架搭建(一)~(七)源代码:https://download.csdn.net ...

  5. UI自动化框架如何设计及搭建?

    目录 UI自动化框架 自动化原则: 如何减少自动化维护成本? UI自动化框架优化方案:(在不增加维护成本前提下) UI自动化脚本可分为3种: 已经实现自动化的模块可以不做手工测试了吗? UI自动化公式 ...

  6. Web UI自动化录制工具-Selenium IDE

    Web UI自动化录制工具-Selenium IDE 简介 安装 使用 实例 关于Run for pytest... 简介 Selenium IDE可以对网页行为进行录制.回放自动执行测试步骤,最新版 ...

  7. Web UI自动化(selenium+java)

    [郑大钱呀][公][众][号],我们一起交流,一起学习. 文章目录 声明 自动化开发环境搭建 环境准备 浏览器驱动下载 IDEA 创建Maven项目 selenium初探 Selenium元素定位 B ...

  8. 10个优秀的 Web UI库/框架 详细出处参考:http://www.jb51.net/web/22251.html

    点评:UI(User Interface)即用户界面,也称人机界面.是指用户和某些系统进行交互方法的集合,实现信息的内部形式与人类可以接受形式之间的转换.本文为WUI用户整理了10个优秀的 Web U ...

  9. 10个优秀的 Web UI 库/框架

    来源:http://www.webjx.com/web/xindejiqiao-10467.html UI(User Interface)即用户界面,也称人机界面.是指用户和某些系统进行交互方法的集合 ...

最新文章

  1. Sidebar 左右菜单的使用
  2. CListCtrl列表控件---总结
  3. vnc改ip_如何使用VNC进行远程桌面控制
  4. 利用java格里高利公式求圆周率_用格里高利公式求π的近似值
  5. iaas层次化结构--从业务需求到设计需求
  6. word如何设置长宽高_word怎么设计表格高和宽
  7. Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)...
  8. 1005. 继续(3n+1)猜想 (25) PAT乙级真题
  9. java基础50道编程题
  10. Git基础学习(黑马程序员笔记)
  11. 计算机术语hpp,HPP(计算机术语)_百度百科
  12. spring boot + nacos多环境部署
  13. PMP第六版5大过程组49个过程
  14. 任正非讲话稿400篇_伟大背后是苦难!任正非“思想之路”:400+讲话稿合集
  15. 百度正式开放大数据引擎
  16. FFmpeg+OpenCV 读取摄像头
  17. 如何删除计算机guest用户,win7如何删掉Guest账户?win7删除Guest账户方法
  18. linux设置屏蔽海外ip,linux屏蔽海外流量的两种方法
  19. PHPstorm 函数或者方法的注释的时间和用户名,PHPstorm里函数方法的注释是没有动态时间设置的,但是看了PHP file里面有时间日期的注释,而PHP Function Doc Commen
  20. Transformer Tracking

热门文章

  1. 解决锐捷(武大)校园网 登陆界面乱码 无法登陆
  2. struts2框架之struts框架介绍
  3. InnoDB 存储引擎介绍
  4. android简单备忘录实现,android备忘录实现
  5. C语言----结构体及其应用
  6. 《Deep Learning with Python》(中文版)—读书笔记
  7. HDFS原理 | 一文读懂HDFS架构与设计
  8. 聊聊提问的艺术(日本版)
  9. 7-PHP代码审计——wordpress插件漏洞分析
  10. 阿里云物联网平台的创建与测试