关于Web端-UI自动化测试

在手工测试阶段,针对项目输出了测试用例,若是这些测试用例须要在版本迭代的过程当中,须要进行回归测试,经过手工重复地执行测试用例,将会耗费大量的人力。面试

为此应运而生就有了自动化测试,经过使用自动化工具,将按照测试用例进行点点操做,校验的工做,交给代码程序来执行,测试工做,就变得省心省力了。并发

  • 重点:测试用例是自动化测试脚本的依据,一切不基于测试用例而写的自动化脚本都是耍流氓。

关于UI自动化测试

UI 自动化的本质

  • 定位元素
  • 操做元素
  • 模拟页面动做
  • 断言结果
  • 生成报告

基于以上5个本质,自动化测试的总体流程是这样的,这里百度登录功能的测试用例为例:框架


  1. 对于这条测试用例,须要找到它的定位元素:用户名输入框,密码输入框,登录按钮
  2. 操做元素:对于这3个定位元素的操做有2种,分别是“输入”与“点击”
  3. 模拟页面动做,也就是测试用例的步骤:工具

    1. 输入用户名
    2. 输入密码
    3. 点击登录按钮
  4. 判断结果:将用例中的预期结果与实际结果进行比对,若是一致,表明成功,不然表明失败。对于这条测试用例,登录成功的标志是,页面右上角出现了用户的头像与用户名,那么,能够经过获取网页中用户名的文本信息,与登陆帐户的用户名对比,一致的话,表明这条用例经过。
  5. 根据执行结果,自动生成报告,经常使用的第三方模块:HtmlTestRunnerAllure2

适合UI自动化测试的场景

固然,不是全部的测试场景都适合用自动化测试来实现。测试

对此,能够参考如下的标准辅助判断:spa

  1. 项目的需求不会频繁变更
  2. 页面的 UI 已经进入稳定阶段
  3. 项目周期足够长
  4. 大量回归的测试任务

其中,有一些项目是明显不适合使用 UI 自动化测试的,例如视频播放器(暴风影音,腾讯视频,爱奇艺等),音乐播放器(例如网易云音乐,QQ 音乐等)等交动性强,并发依赖强的软件。设计

缘由是,这一类软件,判断视频内容对不对,判断音乐声音与歌词对不对,难度极大。3d

另外,延伸一个话题:关于自动化测试的覆盖率,面试会问到的一个点。code

国内大多数互联网公司的项目迭代周期比较短,所以自动化覆盖率通常都不高。视频

具体仍是要根据项目迭代周期进行描述,参考标准是:

  • 迭代周期是半年或者一年以上的项目,每次需求变更不多,自动化测试的覆盖率通常是60%-70%,主要是覆盖以前的旧功能以及核心场景
  • 迭代周期为一个月的项目, 覆盖率大概是25-30%,主要是覆盖 P0(极重要)级别的绝大多数用例,与 P1(重要)级别中的部分用例
  • 1~2周一个迭代的项目,覆盖率大概是10%,主要是覆盖 P0(极重要)级别,可能会对用户形成严重影响的核心场景

其次,UI 自动化测试的时间切入点主要有2个:

  1. 冒烟测试阶段
  2. 回归测试阶段

UI 自动化测试设计原则

  1. 一个测试用例完成一个功能点测试(经常使用):一个手工用例对应一个自动化测试用例
  2. 一个脚本是一个完整的场景
  3. 脚本之间独立,不能有依赖(脚本间相互隔离):例如与登录状态相关的用例:我的中心、订单详情、下单购物等,若是脚本之间不独立,相互依赖,在登录的测试脚本失败的状况下,会致使我的中心、订单详情、下单购物的测试脚本全军覆灭,后续修复与维护成本高
  4. 设置合适的检查点:经过断言判断用例的成功与否
  5. 设计良好的框架:Python 经常使用的测试框架有 unittestpytest,利用框架,及对共用的测试模块进行封装,减小自动化测试脚本维护的工做量

总结

相关文章
相关标签/搜索