每一个测试人员都应该了解每种框架的优缺点,以帮助你的团队更好地确定最适合的测试的框架,以达到事半功倍。

什么是测试自动化框架?

自动化测试框架就是用于测试自动化的框架。具体来说,它提供了自动化测试用例编写、自动化测试用例执行、自动化测试报告生成等基础功能。我们只需要基于这个框架,完成和业务高度相关的测试用例设计和实现即可。另外,框架会为我们处理好复杂度与扩展性的问题,我们无需为此操心。

测试自动化框架是在创建和设计测试用例时使用的一组最佳实践或准则。

测试准则集可以包括编码标准,对象存储库,测试数据处理方法,有关外部存储访问的信息等。

这些准则并非强制,但是在自动化脚本过程中,它们提高了测试的效率并产生了有益的结果。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

使用测试自动化框架的好处

  • 更全的测试范围

    降低脚本维护成本

    节省人力成本

    提高测试速度和效率

    可重用的测试代码

    易于报告

根据需求使用适配的自动化测试框架有助于加快测试过程,并消除人为错误。它还使测试维护更加容易,加快测试进度,节省成本、时间和精力。此外,框架QA团队能够充分开发、执行和报告测试过程,同时还使代码可在多种情况下重用。

5种最流行的自动化测试框架类型

团队根据团队规模、经验水平、用户需求等因素来选择测试框架。以下是五种最流行的框架及其优缺点:

1、线性框架
这是最基本的框架类型。它通常被称为“记录和回放(record and playback)”框架。

在这个过程中,测试代码的创建和执行是按线性或顺序编写的——测试人员手动记录每一个步骤,并自动回放记录的脚本。这些步骤包括导航、用户输入和检查点。它最适合小型应用程序或团队。

在此过程中,测试代码的创建和执行以线性或顺序方式编写-测试人员手动记录每个步骤并自动播放记录的脚本。这些步骤包括导航,用户输入和检查点。最适合小型应用程序或小团队。

优点:

线性框架最大的好处是生成测试用例的速度快,直接录制;无须代码基础,无须手动编写测试代码,因此门槛较低、易于上手。

缺点:

然而线性框架的不足之处也很明显:录制的脚本是固定的(hardcode),不可重用。这意味着,当应用发生微小变化时,上一次录制的脚本可能就无法使用了,需要重新录制(rework),从而产生大量的后期维护成本。

2、基于模块化的框架
顾名思义,此框架允许将被测应用程序划分为单独的模块,单元或部分。每个模块都会为它们创建独立的测试脚本。因此,每个模块及其测试脚本的组合可以构建代表各种测试案例的更大的测试。

优点:

该框架在创建模块时使用抽象。因此,应用程序更改将只影响与它们相关联的测试脚本所涉及的模块,而不影响其他部分。

高度的模块化,这使得维护更加容易且具有成本效益

创建测试用例所需的精力最少,因为可以重复使用不同模块的测试脚本。

缺点:

如果没有语言开发基础,则建立框架可能会很困难。

由于将数据硬编码到测试脚本中,因此无法重复使用数据集——因为测试是单独执行的。

3、库结构框架
该库体系结构框架建立在模块化框架的基础上,但具有其他好处。这样做的好处是,它不仅可以将被测应用程序划分为测试脚本,还可以将测试脚本中的相似任务划分为通用功能。

然后创建一个库,该库构成了AUT的常用功能,可以在需要时由测试脚本调用。

优点:

高度的模块化,这使得测试维护简单且预算友好。

它具有高度的可重用性,因为它的公共函数库可以被几个测试脚本使用。

缺点:

框架中引入的库使其更加复杂。

测试数据也被硬编码到测试脚本中。因此,数据中的更改必须适用于测试脚本。

测试脚本的开发需要更多的时间和技术。

4、数据驱动框架
在数据驱动框架中,测试数据和测试脚本是分离的。在许多测试场景中,需要使用不同的测试数据多次测试同一功能或特性。如果测试数据是hardcode进测试脚本的,那么每更换一次测试数据都需要修改测试脚本。这是很大的工作量。此时,可以使用数据驱动框架。具体来说,测试脚本是固定的,而测试数据可以从外部的数据文件,以Excel、CSV、SQL等形式作为参数传入测试脚本。这样,我们只需要维护一份脚本和一份数据文件即可。

优点:

总体来说,这种框架最大的好处就是易于维护。

测试脚本中的任何更改都不会影响测试数据。因此,可以避免对数据进行硬编码。

可以使用多组数据进行测试。

可以通过更改外部数据库中的测试数据来测试各种测试方案,从而减少所需的测试脚本数量。

缺点:

准备和计划框架的通用测试脚本,识别与格式化测试数据需要花费时间。

框架设计的使用需要经验丰富的测试人员,因为它的复杂性,需要具备多种编程语言知识。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

5、关键字驱动框架

该框架是数据驱动框架的扩展。测试数据和测试脚本也被分离,不同的是,该框架要更进一步地将测试脚本中的通用功能剥离出来,形成关键词(keyword)。测试脚本本质上就是对一系列通用的或者自定义的关键词的调用。这样做的好处是关键词可以在多个测试中复用,并且测试脚本更加易于维护。不过,实现这样一个框架并非易事。

优点:

与数据驱动不同,运行此框架不需要脚本知识。

可以独立于被测应用程序构建测试脚本。

一个关键字可以在多个测试脚本中使用。因此该代码是可重用的。

缺点:

设计框架和维护关键字对自动化的专业知识要求比较高。

实现该框架的成本相对较高,而且设置起来也比较耗时和复杂。

综上所述,实现用于自动化测试的框架需要选择一种灵活的工具。该工具应支持广泛的应用程序,并满足测试要求。另外,应该有正确的策略来定义应该自动化哪些部分。

需要指出的是,业界已经有了实现上述各种测试自动化框架的工具。通常来说,我们并不需要重新发明一个新的框架,而是基于已有的框架去进行优化升级,使之适合自己的项目需求,来完成自动化测试工作。

那么,面对一个新的自动化测试框架,如何着手工作呢?

我们应该聚焦在以下四个问题上。

1、如何生成测试用例?
不同的框架,生成测试用例的方法不一样。

对于线性框架来说,无须编写脚本,只需要点击预设的按钮就能够生成测试用例;比如Katalon,直接录制生成测试用例。

对于多数框架来说,生成测试用例需要编程。当然,不同框架使用的编程语言、编程风格有差异。

对于Selenium框架来说,使用的是通用编程语言Java和Python,可能更多的是对Selenium进行二次封装,以便更好更快的生成用例;

对于Robot Framework来说,使用的是其专用的Robot Framework编程语言。

一般来说,使用框架编程的过程很多时候就是调用库接口的过程。因此作为前提,在编写用例之前,我们需要熟悉框架提供的库的种类和功能,以及这些库所提供的API的使用方法。

2、如何执行测试用例?
当测试用例完成之后,我们需要运行测试用例。

自动化测试是通过GUI图形界面来触发,还是通过CLI命令触发,这因框架而异。

当然,仅仅知道如何触发测试是不够的。我们通常有更多的需求。

例如,如何选择性地执行满足特定条件的测试用例子集?

如何设置全局的执行参数(超时时间、日志路径、报告形式等)?

如何动态地给测试用例集传入参数?

一般来说,一个完整的框架需要提供足够多的控制选项,从而让我们根据需求定制执行测试的方式。

以Robot Framework为例,其执行用例的命令具有30多个不同的选项。

这提供了足够的自由度和一些非常棒的功能。例如其dryrun选项,可以让我们在不实际执行用例的情况下,快速检查出测试用例中参数不匹配、语法不正确、关键词找不到、库导入失败等错误,非常实用。

3、如何检查测试结果?
测试执行结束之后,我们需要关注测试结果。不同的框架会以不同形式提供测试结果。例如,测试结果既能以控制台日志的形式体现、也能够以图表和报告的形式体现,并以邮件发送或者展示在网站上。

根据测试结果,我们可以很容易地了解测试的执行情况,包括测试的成功/失败情况、测试的整体/局部用时等。

当测试失败时,我们尤其需要关注测试失败的具体情况。

通常,我们关心失败是由于我们使用框架的方法不当造成的,还是由于被测软件的质量问题。这一点,只能通过检查和分析测试结果得到。

4、如何扩展测试框架?
一般来说,框架只是提供了最基本的功能。很多时候,框架并不能直接满足自动化测试的需求。这时我们可以寻求第三方的、与框架本身兼容的库或者插件。如果第三方工具不能满足我们的需求,我们就需要开发自己的库和工具。

例如,对于HTTP、SSH等公有协议,我们很容易在网络上找到某个框架的第三方库;

而对于只用于公司产品的私有协议,我们通常无法找到第三方库,只能自己开发。

自己开发时,需要注意的是要遵从框架的规范,使得开发出的库能够与框架无缝兼容。

说在最后,选择了一个框架,在享受其好处时,也不得不承受其不足。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

如果我们的关键需求受制于框架,并且框架也不容易扩展,那么我们就可能需要开发自己的框架。这是一件投入较大的事情。在大多数情况下,还是建议重用和有限扩展已有的框架。毕竟,不要重新发明轮子——Don’t reinvent the wheel!

5种比较常见的自动化测试框架相关推荐

  1. 【测试开发】几种常见的自动化测试框架

    几种常见的自动化测试框架 在软件测试领域,自动化测试框架有很多,这里主要介绍几种常用的自动化测试框架. 1.pytest pytest 是 Python 的一种单元测试框架,与 Python 自带的 ...

  2. 五种常见的自动化测试框架

    一.什么是测试自动化框架 自动化测试框架就是用于测试自动化的框架.具体来说,它提供了自动化测试用例编写.自动化测试用例执行.自动化测试报告生成等基础功能.我们只需要基于这个框架,完成和业务高度相关的测 ...

  3. 几种典型的软件自动化测试框架

    在自动化的软件测试系统实现过程中使用框架设计可以使得测试脚本的维护量减至最少.然而,大量的自动化测试工具均采用传统的"录制一回放"模 型,导致了较高的脚本维护量,因为测试数据在测试 ...

  4. 自动化测试框架类型,你知道几种?此处介绍5种比较常见的

    每一个测试人员都应该了解每种框架的优缺点,以帮助你的团队更好地确定最适合的测试的框架,以达到事半功倍. 什么是测试自动化框架? 自动化测试框架就是用于测试自动化的框架.具体来说,它提供了自动化测试用例 ...

  5. 自动化测试系列-自动化测试框架那些事儿

    无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架.很多小伙伴一直对"框架"这个词知其然不知其所以然.今天咱就聊聊自动化框架的那些事儿吧... 一.什么是框架 框架(fr ...

  6. 【转】我眼中的自动化测试框架设计要点

    转自:http://blog.csdn.net/snakeshiy/article/details/8565178 对于自动化测试框架,其实并没有多数人想象中的那么高深玄乎,框架的概念只是一系列的被事 ...

  7. 什么是自动化测试框架?这就是自动化测试框架。

    无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架.之前学习自动化测试的过程中,一直对"框架"这个词知其然不知其所以然. 最近看了很多自动化相关的资料,加上自己的一些实践 ...

  8. 【自动化测试】自动化测试框架那些事儿

    无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架.在教学的过程中,同学们一直对"框架"这个词知其然不知其所以然. 最近看了很多自动化相关的资料,加上一些实践,算是对&q ...

  9. 自动化测试框架,YYDS

    无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架.之前学习自动化测试的过程中,一直对"框架"这个词知其然不知其所以然. 最近看了很多自动化相关的资料,加上自己的一些实践 ...

最新文章

  1. [转]Android JNI使用方法
  2. Java项目:学生信息管理系统(java+SSM+JSP+layui+maven+mysql)
  3. 在mac上安装Go语言初体验
  4. java低延迟_像Java这样的C ++具有低延迟
  5. android 心跳效果动画,Android实现心跳的效果
  6. OPPO 正式发布 ColorOS 7,“轻”装上阵带来多项亮眼新功能……
  7. 微信小程序 - 豆瓣同城
  8. linux中的shell脚本case,Shell编程之case语句与循环语句
  9. 分组数据筛选(group by后取出每组的第n条数据)
  10. 产品必备技能(五):如何使用商业画布分析一款产品?附实操报告
  11. Glide加载长图;WebView加载富文本(图片自适应屏幕大小)
  12. AI大神各显神通!百度深度学习集训营作品大赏
  13. THREE.js开荒小记(二):无效宽度linewidth的Line 和 无效阔threshold的Line2
  14. MTK(Android N)设置SDCard为默认存储
  15. 数字图像处理 图像形态学处理
  16. 特征,特征维度,特征深度
  17. 【Vue】直播流m3u8,rtsp,rtmp,flv,mp4测试地址
  18. 最小二乘,最大似然,最大后验,查准率与查全率
  19. Soapui报错There are currently 1 running SoapUI MockServices解决办法
  20. Linux操作系统第一讲

热门文章

  1. 《炬丰科技-半导体工艺》氮化钛掩膜和刻蚀残留物去除
  2. OSPF中Stub、完全Stub、NSSA、完全NSSA区域
  3. 数论四大定理之——威尔逊定理
  4. 大厂程序员元气满满的一天!
  5. ARMV8体系结构简介:预备知识
  6. FTP工作原理及内网用端口映射方式建FTP的注意事项
  7. 深度学习(DeepLearning)最最基础的科普ppt
  8. 2017谷歌I/O大会时间正式公布;微软发布利用实感技术的无人机模拟器│IoT黑板报...
  9. CorelDRAW如何用新增功能工艺部分
  10. 数字图像处理---几何变换