无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。

最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”有了一些理解,这篇文就聊聊自动化框架的一些事吧。

什么是框架
框架(framework)是一个框子—指其约束性,也是一个架子—指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;

另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。

上面的概念比较抽象,换另一个角度解释:

框架本身一般不完整到可以解决特定问题;
框架天生就是为扩展而设计的;
框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的工具,也就是说框架是配套了一些帮助解决某类问题的库(libraries)或工具(tools)。
约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。

支撑性:框架本身不解决什么问题,但给了解决问题的相关组件一个组合底子,这个底子的科学性和易用性直接影响在此之上进一步开发的科学性和方便性。 

上面的2个对框架的解释和定义,看起来也并没有很简单直白的说清楚什么是框架,下面是我的一些理解:

特定问题:什么问题?——自动化测试
约束边界:为什么约束?——明确测试范围和目的
解决方案:用什么方案解决问题?——编程语言+工具+其他
构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知
工具:特点是什么?—— 灵活性、可扩展性、高内聚低耦合
自动化测试
1、为什么要进行自动化测试?

黑盒测试回归效率低
手动测试的偶然性和不确定性
回归的覆盖率不足
交付的产品质量无法保证,全靠评估
系统越复杂,问题越多
上线时间长、构件失败率高导致的蝴蝶效应(迭代快,加班多)
2、自动化测试能解决什么问题?

提高出现问题后的响应速率
降低回归成本
提高回归覆盖率
提高回归效率
提高回归的稳定性
3、自动化测试的不足有哪些?

无法减少成本投入,而是为了加快测试结果反馈,提升测试质量
自动化适用于回归和冒烟,而不是发现BUG
录制回放功能是鸡肋,可视化并不是一个很好的做法
不是所有所有系统所有功能都适合做自动化测试
自动化测试框架
构成框架的组件,最起码应该具备以下的功能:

Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
Report:测试报告生成和管理以及即时通知,测试结果快速响应;
Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!
常见的自动化测试框架
1、接口自动化框架:

2、UI自动化测试框架

通过上面的一些常见框架,你发现了什么?

它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。

编程语言:编写测试脚本、日志记录和输出;
单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
持续集成工具:Jenkins,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;
PS:自动化测试工具太多,上面只是列举了使用率较高以及我个人还算了解的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友特意花了一段时间整理编写了下面的《测试开发工程师学习路线》,也整理了不少【网盘资源】,需要的朋友可以点击下方箭头所指获取领取地址。希望会给你带来帮助和方向。

测试开发视频教程、学习笔记领取传送门!!!

什么是自动化测试框架?这就是自动化测试框架。相关推荐

  1. 自动化测试基础篇--Selenium框架设计(POM)

    一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...

  2. selenium自动化测试框架_自动化测试框架

    为了适应快速发展的行业生态系统的步伐,必须加快应用程序交付时间,而且必须不能以质量为代价.在更短的时间内达到质量的目的至关重要,因此质量保障倍受关注.为了满足对卓越质量和更快迭代的要求,越来越多的企业 ...

  3. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

  4. python测试框架untest_python自动化测试框架unittest

    对于刚学习python自动化测试的小伙伴来说,unittest是一个非常适合的框架: 通过unittest,可以管理测试用例的执行,自动生成简单的自动化测试报告: 首先我们尝试编写编写一个最简单的un ...

  5. web前端自动化测试(基于QT4W框架)

    目录 web前端自动化测试(基于QT4W框架) 一.背景 1.1前端测试种类 二.技术方案 三.核心代码 3.1控件封装 3.2操作控件方法实现 3.3测试用例case 3.4断言方法 web前端自动 ...

  6. 【Python自动化测试26】接口自动化测试实战六_pytest框架+allure讲解

    文章目录 一.前言 二.pytest讲解 2.1 什么是pytest? 2.2 为什么使用pytest? 2.3 使用pytest 2.4 pytest的运行方式 2.5 pytest高级特性 2.5 ...

  7. 不会做UI自动化测试?一起设计框架再实践吧

    目的 相信做过测试的同学都听说过自动化测试,而UI自动化无论何时对测试来说都是比较吸引人的存在. 相较于接口自动化来说它可以最大程度的模拟真实用户的日常操作与特定业务场景的模拟,那么存在即合理,自动化 ...

  8. 史上最全 Appium 自动化测试从入门到框架实战精华学习笔记(二)

    本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助. Appium 自动化测试从基础到框架实战 App ...

  9. 接口自动化测试实战之pytest框架+allure讲解

    一.前言 本文章主要会讲解Python中pytest框架的讲解,介绍什么是pytest.为何要测试.为何使用以及参考和扩展等等,话不多说,咱们直接进入主题哟. 二.pytest讲解 2.1 什么是py ...

最新文章

  1. android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码
  2. 逼格高又实用的 Linux 命令,运维同仁一定要懂
  3. angularJs基础学习
  4. Spring cloud gateway的自定义异常响应
  5. IDEA修改module的名字
  6. 熵值法确定权重(matlab附代码)
  7. [转载] 中华典故故事(孙刚)——31 千里送鹅毛_礼轻情义重
  8. resultset 的指针报错原因
  9. 深度学习最基础理论知识总结 (CS231课程总结,持续更新)
  10. 台达伺服B2 调机杂说
  11. java如何将mp4写入光盘_MP4文件刻录成DVD
  12. Linux sed命令详解
  13. 用Origin将Fluent中的数据导出并绘制云图
  14. 【canvas画图】画一个彩虹
  15. dns远程服务器未响应,dns服务器未响应的解决方法
  16. python 字体颜色改变
  17. 图的存储 —— 邻接矩阵
  18. Aspose.Pdf使用教程分享
  19. jQuery写简单模态框
  20. 跨平台大行其道 CocoaChina 2012年9月开发者大会落幕

热门文章

  1. 《JAVA程序性能优化》总结
  2. 流形学习 manifold learning--自学小结(2)之 Isomap
  3. es的基本操作(创建索引,添加数据,删除数据,判断索引是否存在)
  4. 双重差分法之安慰剂检验
  5. python.exe: No module named pip以及pycharm下载插件失败等问题
  6. Java中文生僻字排序
  7. 求n的阶乘的算法框图_当代程序员必备技能(算法)之:递归详解 - Java斗帝之路...
  8. oracle 10g与oracle 11g的不同
  9. 解决腾讯地图标记多个点,只渲染最后一个点问题
  10. 虚拟磁盘格式转换:vdi - raw - qcow2