框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。规定应用体系结构,说明整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法。
借助于框架的成熟、稳健,它可以处理系统很多细节问题,像是安全性、事务流程等问题。加之框架被很多人使用,所以结构和扩展性也很好。
自动化测试框架定义
自动化测试框架是为自动化测试用例或者脚本提供执行环境而搭建的基础设施。使用自动化测试框架有助于有效地开发、执行和报告自动化测试用例。有利于代码复用、提高测试效率、测试覆盖率、还有利于更早发现和记录bug
框架的基本组件
●需要配置文件管理
配置文件可以是txt/xml/yaml/ini/properties
●业务逻辑代码和测试脚本分离
代码和用例文件分离后,会更加强袭,便于更多人开发脚本、调试。
●报告和日志文件输出
报告一般需要第三方插件来实现这个功能,一般报告是html,日志输出也非常重要,如果发生报错、脚本执行失败,通过日志可以更快定位发生问题的位置。
●自定义的库的封装
对于需要重复调用的功能,可以通过写成公用方法放到工具包下,便于后期调用
●持续集成
git、svn、ant、jenkins、maven,将其整合到jenkins中达到持续集成,以减执行测试脚本
●管理、执行脚本方式
比如python中单元测试框架unittest使用率很高
●第三方插件引入
有一些功能需要借助第三方报告插件生成基于html格式的测试报告
自动化测试框架的必要性
借助自动化测试框架有助于让技术基础稍差的人也可以写自动化测试脚本。同时还具备测试易于维护、可重用性以及测试报告美观易读的优势。
自动化测试框架的分类
基于模块的测试框架
这个框架将“测试中的应用程序部分”分为逻辑和独立的模块。针对每个模块创建一个独立的测试脚本,这些脚本结合在一起时,会构建更大的测试脚本,代表多个模块,这些模块被抽象层隔开,在应用程序的各个部分所做的更改不会对该模块产生影响。
库架构测试框架
库体系结构测试框架是建立在基于模块的测试框架之上,但相对于后者有一些额外的优势。它没有将测试的应用程序划分为测试脚本,而是划分为函数。所以,为测试中的应用程序创建一个由公共函数组成的公共库,当需要时,可以从测试脚本中调用这些库。
数据驱动测试框架
数据驱动测试框架将测试脚本逻辑和测试数据彼此分离。可以把测试的数据单独存储起来,存储数据的可以是xml文件、excel文件、文本文件、csv文件等,一般是以key-value格式存储,便于获取使用。
关键字驱动测试框架
关键字驱动测试框架是对数据驱动猜测是框架的拓展,在某种意义上来说,它不仅是将测试数据从脚本中分析出来,还将数据测试脚本的特定代码集保存到外部数据文件中。这些代码集被称为关键字。关键字和测试数据都是独立于该框架。
混合测试框架
模块化、数据驱动和关键字驱动多种类型框架的组合就是混合测试框架。将各种框架的优点组合起来就是混合型测试框架。每个测试用例都使用一个驱动程序脚本,该脚本使用数据驱动框架中的数据文件和关键字驱动框架中的操作文件。
行为驱动开发框架
行为驱动测试框架可以让开发人员、测试人员等以易于阅读和理解的格式实现功能验证的自动化。可以通过自然语言来描述测试功能、测试场景、测试步骤、测试结果等。
流行的自动化测试框架
一种企业级的用于检验应用程序是否如期运行的功能性测试工具。通过自动捕获、检测和重复用户的操作,可以辨认缺陷并且确保跨越多个应用程序和数据库的业务流程在初次发布就能避免出现故障,并且保持长期可靠运行。UFT可以覆盖大多数的软件开发,简单高效,并具备测试用例可以重复使用的特点。
Citrus
这是一款开源测试框架,测试人员可以使用框架自动化针对任何消息传递协议或数据格式的集成测试。对于诸如REST、HTTP之类的任何消息传递传输,Citrus测试框架适用于测试消息传递集成。
Selenium
这是一款用于Web应用程序测试的工具,是一套完整的Web应用程序测试系统,可以用于任何支持JavaScript的浏览器,可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
以上是关于自动化测试框架的介绍,大家有任何问题都可以拨打电话进行咨询,会有专属老师为大家解答疑问。