一、UI自动化测试框架

Selenium是自动化工具,工具,工具!面试的时候不想再听到谁说用的测试框架是Selenium。

构成框架的组件,最起码应该具备以下的功能,才能够称为一个完整的自动化测试框架:

1. 日志

Java常用的日志工具有Log4j 、Slf4j 、Logback。

2. Report

博主用过ReportNG,或者将数据Statistics的数据写入excel文件、生成图表,需自主实现。

3. Source、Common

自主实现。

4. TestCase、TestData、TestSuite

多用TestNG管理Case和Suite。TestNG提供了@DataProvider注解,它可以管理一定量的数据代入测试用例依次执行,是数据驱动的雏形。@DataProvider注解的数据需要代码实现,如要读取csv、excel、txt等文件,则需要自主实现,有很多文章写这个,自行搜索查看便是。

5. Statistics

大部分测试框架不包含此部分,需要测试人员手动统计分析,可记录自动化测试用例执行结果数据,分析,自主实现。

6. Continuous

一般是借助其他工具如Jenkins自主实现。

二、UI自动化测试框架的分层结构

测试框架的实现,各有各的特色,适合产品或者公司的自动化测试框架,就是好的测试框架。这里只说一下常见的UI自动化测试框架的分层结构:基础层,对象层,操作层,用例层。

1. 基础层

这一层封装Selenium或其它工具的相关操作和一些工具类。

2. 对象层

先说一个概念,PO:PO模式,全称Page Object模式,是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在写测试脚本时,可以通过调用页面类来获取页面元素。当页面某个元素id或者位置变化时,这时不用更改测试脚本,只用改下对应的页面类就行了。
这一层用来保存页面对象,这一层大大提高了测试框架的复用性和可维护性,在测试框架中起到核心作用,实现方法各不相同。

3. 操作层

这一层基于对象层的页面对象,实现页面上的相关操作,大部分都是基础操作,供用例层反复使用,降低维护成本。特殊操作多数只是用一次或者少次,在个别用例中单独实现即可。

4. 用例层

这一层是实际的测试脚本,为保持代码美观、可读性高,尽量多备注,并且不出现基础层代码如定位元素等等。

测试开发 - 十年磨一剑(五)UI自动化测试框架与分层结构相关推荐

  1. 测试开发 - 十年磨一剑(三)UI自动化与Selenium

    大学培养方向是开发,所以在入行测试半年的时候,开始接触自动化测试,当时在给微软Windows Azure做外包,所以自动化环境是C#和Selenium. Selenium作为UI自动化的传奇工具,十几 ...

  2. 安全专家十年磨一剑的独门秘笈,威力堪比《九阴真经》

    "天之道,损有余而力不足,是故虚胜实,不足胜有余......" 公元 1206 年,武林中的几位侠客聚集华山,为一统武林展开了一场七天七夜的切磋,史称华山论剑.参赛选手阵势庞大,东 ...

  3. SpaceX十年磨一剑

    文章目录 剑客马斯克 低潮2018 高光2020 第一代龙飞船 第二代龙飞船 目标:星辰大海 复用/敏捷:用写代码的方式造火箭与飞船 代码级的复用 模块级的复用 项目级的复用 可重复使用的火箭/飞船 ...

  4. 深入解析C#(世界级顶尖技术专家“十年磨一剑”的经典之作)

    深入解析C#(世界级顶尖技术专家"十年磨一剑"的经典之作) 基本信息 作者: (美)Jon Skeet    [作译者介绍] 译者: 周靖;朱永光[同译者作品] 丛书名: 图灵程序 ...

  5. 华宇物流 十年磨一剑

    在中国,提起最大的零担货物运输,不得不提起华宇物流:提起华宇物流,不得不提起华宇的十年创业史.十年的时间,湮没了无数原本成功的企业,也成就了许多像华宇物流这样白手起家的企业.    被称为中国最大 零 ...

  6. 十年磨一剑!阿里OceanBase创纪录卫冕,中国数据库从此告别卡脖子

    晶少 雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI OceanBase,十年前有"海洋"一样的寄托,十年后梦想实现. 作为中国自研的数据库,它在短短7个月内再次.且 ...

  7. 爱回收:十年磨一剑,出鞘亮锋芒

    近日,有多家媒体报道,二手电商平台爱回收计划于今年6月初在美国IPO,融资金额在5亿到10亿美元之间. 据知情人士称,爱回收寻求在IPO时获得了40亿-50亿美元的估值,并已经聘请美国银行和高盛集团来 ...

  8. 十年磨一剑!SACC带你领略企业大数据平台实践优化!

    [IT168 评论]十余年来,企业架构经过了数次迭代和变迁,ITPUB是这一切的重要见证者,同样陪伴了无数架构师的成长.10月17日,第十届中国系统架构师大会以"十年架构,成长之路" ...

  9. 十年磨一剑,阿里云RDS MySQL和AWS RDS谁的性能更胜一筹?

    MySQL代表了开源数据库的快速发展. 从2004年前后的Wiki.WordPress等轻量级Web 2.0应用起步,到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库,再到2012年开始 ...

最新文章

  1. Python里面数组拼接方法介绍
  2. 参考灵敏度_美信MAXREFDES103评测:集成算法处理的高灵敏度健康传感器腕带参考设计方案...
  3. [CSS] Use CSS Counters to Create Pure CSS Dynamic Lists
  4. 关于 Group 的另一个函数
  5. Android Asynchronous Http Client-Android异步网络请求客户端接口
  6. 教你培养成功的必备因素——强烈的企图心
  7. 在VB应用程序中调用Excel2000
  8. tda7294参数引脚功能_电容在电路中的几种功能
  9. Leetcode-MySQL-180. 连续出现的数字
  10. Protobuf, understand the hood
  11. 用 Python 给微信头像加个圣诞老人(平安果)小图标
  12. Datawhale团队第五期录取名单!
  13. Server 2008 R2 事件查看器实现日志分析
  14. Redis Cluster集群原理+三主三从交叉复制实战+故障切换(十)
  15. PyTorch模型训练实战技巧,突破速度瓶颈
  16. iPhone 自动关机 原因 天气太冷
  17. d2l.train_ch3函数,将输入数据转化为该函数所接受的格式
  18. visual Studio Code(VS code)软件中HTML超级好用的一个插件 liveserver,vs code浏览网页
  19. 14- 决策树算法 (有监督学习) (算法)
  20. 华为鸿蒙系统p50,华为p50自带鸿蒙是什么意思_华为p50是鸿蒙系统吗

热门文章

  1. vantUI日期组件的使用
  2. 被妖魔化的奥数,到底该怎么学?
  3. 初识0day漏洞以及SQL错误盲注
  4. matlab实验——信号和噪声产生及其功率谱分析
  5. python-pygame与pymunk-台球游戏
  6. VS2003 安装错误
  7. Shell脚本中引用另一个脚本文件
  8. (转)MFC是不是过时了!!!
  9. 鸿蒙系统开发实战-开发一个聊天技巧软件堪称聊天神器
  10. php 获取一串随机字符串,php获取随机字符串的几种方法