UI自动化技术,是我们测试工程师绕不开的一个话题,只要提起它来,基本所有测试工程师都能给你说道说道。

  

  有些人认为它很难,有些人认为它很简单。认为它很难的人会告诉你,UI自动化非常不稳定,太难了,实用性也不大,想真正做好难于登天。

  认为它简单的人会告诉你,UI自动化太简单了,十分钟就能入门,不就是写写脚本么,driver.find_element_by_id()就完事了。

  小编觉得其实这俩种观点都片面了,都是对UI自动化的不了解造成的误会。真正的UI自动化需要细分,因为它有不同的阶段,各个阶段的也都有自己的特点。

  文章开头先给大家明确一个业内普遍认同的观点:目前行业内的UI自动化已经形成了4个阶段。当前国内互联网公司中能用的起来UI自动化的不多,且大部分都集中在1-2阶段。如果你的公司也在第2阶段以下,那可真的要加油了。

  一、录制回放

  可能大家第一次接触自动化的时候,前辈或者老师就告诉了你,UI自动化是可以录制的。比如Web自动化可以用FirFox浏览器的SeleniumIDE来录制成各种语言的Selenium脚本,然后执行这个脚本,浏览器就会执行你刚刚所做的一切操作。

  还有loadrunner/badboy/QaRun/SNMPTester等等一大堆工具,你这时候会想:原来自动化测试,soeasy。

  【优点】:上手难度低,不用懂什么代码,自动生成脚本的非常简单迅速。

  【缺点】:这种脚本对环境的依赖性太强了,UI层稍微变化一点点,整个脚本就失效了。甚至很多Web页面中的元素的id都是动态的(每次打开都不一样),所以导致这种脚本生成后连一次都走不通。而如想改起来的成本甚至高于自己动手重新写一个脚本了。从维护成本来说的话,这种脚本属于一次性的东西,不值得维护。

  【总结】:这种方式从笔者刚接触自动化的时候,就已经淘汰了,无论是老师还是业界大神,都直言做自动化就不要碰录制回放,这完全是在走弯路。所以如果你的公司是这种,那么就到了你大显神威进军下一阶段的时刻了!

  二、手动脚本

  到了这个阶段,公司的测试团队会有一部分专门做自动化的测试人员,他们负责手动去写脚本,相信大家对这个阶段都非常熟悉,因为绝大部分有UI自动化的公司都处于这个阶段。各个端都有自己专门负责自动化的工程师,他们所用的语言,技术可能相同也可能不同,要比喻的话,就是八仙过海各显神通。这时你会想:这就是少林寺的厨房么?太壮观了,简直大神的聚集地!

  【优点】:手动写的脚本质量远超第一阶段的录制脚本,可维护性大大增强,应对UI层的变化也有了一定抵抗力,优秀的会采用非线性脚本,融入数据驱动/关键字驱动/page-object等设计。

  【缺点】:众自动化大佬的力量不能形成一股绳,各种轮子各种造,技术和语言都无法统一,而且人与人之间的水平不同,导致脚本质量也相差很多。最后一旦有人离职,新人大概率只能推倒重来,一切归零。

  【总结】:简单来说就是各玩各的,有人滥竽充数,有人浑水摸鱼,有人独领风骚,有人自娱自乐。领导不可能同时精通多端多种技术栈多语言的自动化来明察秋毫,所以这个阶段的后期大多是放养的状态,最后没有形成可量化的战斗力,惨遭领导嫌弃和淘汰。如果你身处这种阶段,请一定不要被眼前的场景迷惑,要小心并且立即潜心修炼,争取统一UI自动化,把散兵游勇集合起来,好一起迈向下一个阶段。

软件测试技术篇:UI自动化到底是难是易?相关推荐

  1. 百度feeds联盟软件测试开发,UI 自动化测试用例整理举例-百度首页

    前言 现在分享下如何进行用例整理和组合管理. 例子: 以喜闻乐见的 百度 首页为例吧. 场景分析: 1. 测试点: 百度首页,我们可以设定红色部分为测试点: 共用 7 个测试点: 测试搜索功能是否正常 ...

  2. 深圳软件测试培训:Pytest+Appium+Allure 做 UI 自动化的那些事

    深圳软件测试培训:Pytest+Appium+Allure 做 UI 自动化的那些事 文本主要介绍下 Pytest+Allure+Appium 记录一些过程和经历. 法主要用了啥: Python3 A ...

  3. 软件测试|测试开发之路--UI 自动化常用设计模式

    接上一次的帖子,今天讲一下我再 UI 自动化中常用的设计模式. 由于网上已经有非常多的文章详细讲解了设计模式的编码实现,所以我今天也就不讲实现细节了. 就是讲我也讲不出什么花来,只是网上的文章基本都是 ...

  4. 自动化测试难?WPS的UI自动化落地方案甩给你

    项目背景分析 UI自动化测试,即通过模拟手动操作用户UI界面的方式,以代码方式实现自动操作和验证的一种自动化测试手段.如今互联网的主战场已经从web端逐渐过渡到了app端.现在,app在UI自动化方面 ...

  5. 软件测试知识点和面试题--UI自动化篇

    主流自动化测试框架介绍 软件测试的自动化一般可以分为3层 * 代码层的单元测试 * 接口层的集成测试 * UI 层的测试 1)代码层自动化 代码层的自动化一般指针对代码进行的单元测试,比较常用的单元测 ...

  6. Ui自动化概念+Web自动化测试框架介绍

    目录 UI 1.UI自动化测试概念:我们先明确什么是UI 2.为什么对UI采用自动化测试? 3.什么项目适合做UI自动化测试? 4.UI自动化测试介入时机 5.UI自动化测试所属分类 Web自动化测试 ...

  7. Web UI自动化测试之元素定位

    目前,在自动化测试的实际应用中,接口自动化测试被广泛使用,但UI自动化测试也并不会被替代.让我们看看二者的对比: 接口自动化测试是跳过前端界面直接对服务端的测试,执行效率和覆盖率更高,维护成本更低,整 ...

  8. 从事软件测试需要学自动化么

    相信许多对软件测试有过一点了解的人,对自动化都不会感到陌生.我们常常会听到一定软件测试人员一定要学自动化的说法,那么很多人都会有这样的疑问,从事软件测试为什么要学自动化?事实上,如今只会功能测试的从业 ...

  9. Web UI自动化测试之Selenium工具篇

    本文大纲截图: 一.自动化测试介绍 1.基本介绍 1.1 自动化 概念: 由机器设备代替人工自动完成指定目标的过程 优点: 1)减少人工劳动力 2)提高工作效率 3)产品规格统一标准 4)规模化(批量 ...

最新文章

  1. 复旦肖仰华:领域知识图谱落地实践中的问题与对策
  2. python里的tplt什么意思 Python的format格式化输出
  3. 如何扩展Dojo tree成chekbox tree
  4. 一个将字符串转换为整数的函数--atoi()
  5. VC++调用UpdateLayeredWindow实现半透明窗体【转】
  6. Maven 搭建spring boot多模块项目(附源码)
  7. JAVA线程池的分析和使用--笔记
  8. 结构型模式--装饰模式
  9. 天然气井(洛谷P1708题题解,C++语言描述)
  10. 纸板怎么切割光滑_现有的切割机如何选择呢?进来看看就清楚了
  11. python 的 virtualenv 环境搭建及 sublime 手动创建运行环境
  12. python运算优先级
  13. java成绩管理系统代码_[转载]我写的Java学生成绩管理系统源代码
  14. Kinect 姿势检测
  15. 浅谈车载控制器产线EOL实现方式
  16. genymotion 安装
  17. What is the Softmax Function?详解机器学习中的Softmax函数【小白菜可懂】
  18. 搭建DEM企业管理器
  19. java runnable main_【BUG】”main” prio=5 tid=1 RUNNABLE
  20. vue用路由守卫进行登录后的路由跳转

热门文章

  1. json的简单的数据格式
  2. bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理*
  3. iOS 秒数转换成时间,时,分,秒
  4. 【重建】从FJOI2016一试谈起
  5. Java中ArrayList源码分析
  6. 百度WordPress结构化数据插件上线
  7. Android ViewPager使用具体解释
  8. vb inet 一些方法
  9. Asp.net MVC2.0系列文章-运行Web MVC2.0 Demo
  10. swift 中showAlertTitle的使用