自动化框架到底是什么?
如今,随着敏捷和 DevOps 软件方法论的发展,以及企业寻求更快发布和高质量产品的需求,它需要比手动测试方法更快,更高效的软件测试方法。微型,小型和中型企业(SME)使其测试过程自动化变得越来越必要,但是最关键的方面是选择正确的测试自动化框架。网上各式各样的介绍是否让你眼花缭乱?接下来,让我从实践出发,介绍一下什么是自动化测试框架。
什么是框架?
让我们从一个例子出发,而不是直接提供一个框架的粗俗定义。你应该参加过研讨会/讲座/会议,参与者会被要求遵守一些指导原则:
- 参加者应在讲座开始前 5 分钟就座
- 提前阅读摘要,以便您对演示文稿有一个大概的了解
- 手机应设为静音
- 如果您需要在讲座进行中离开,请使用扬声器对面的出口
- 会议结束时可以提出问题
你认为可以在不遵守这些准则的情况下参加 研讨会吗?
答案是肯定的!当然,你可以在没有上述指导的情况下进行研讨会/讲座/会议/演示,我们中的某些人也不会遵循。但是,如果遵循这些指导方针,将会产生有益的结果,例如减少演讲过程中的听众分心,增加参与者对主题的保留和理解。
基于上述内容,可以将框架定义为一组准则,遵循这些准则可以产生有益的结果。
什么是测试自动化框架?
我们知道,软件测试分为手工测试和自动化测试,一般只有自动化测试才有框架的概念。我们要进行自动化测试,就会用到很多工具,怎么去管理好这些代码,工具和数据呢?用框架把它们放在一起就是一种很好的方式。
测试自动化框架是为自动化测试脚本提供执行环境而搭建的支架,它是一套准则,例如编码标准,测试数据处理,对象库处理等,在自动化脚本编写过程中遵循这些准则可产生有益的结果,例如增加代码重用,更高的可移植性,降低的脚本维护成本等。准则而非规则;它们不是强制性的,你仍然可以在不遵循准则的情况下编写脚本。但是你会错过拥有框架的优势。
使用测试框架的好处主要有:
- 提高测试效率
- 降低维护成本
- 最少的人工干预
- 最大测试范围
- 代码的可重用性
公司的需求是什么?
我们学习自动化测试的最终目标都是为了提升公司产品的价值。那么,让我们再深入一些,从公司的角度思考为什么需要自动化测试框架。
企业通常面临着平衡成本和管理资源的难题,选择能够覆盖其所有业务场景以交付高质量应用程序的自动化框架。显然,通过选择和实施最佳的测试自动化框架,企业可以显着提高测试执行速度和测试过程的准确性,以提供更高的投资回报率(ROI)和高质量的产品。因此,我们应该选择有效的自动化框架类型,以确保对其应用程序进行有效的测试。
常见的自动化测试框架
我接下来会站在实践角度,来说说常见的自动化测试框架。现在用的最多的就是,Web UI 自动化和接口自动化两块,下面是我整理的内容:
1、接口自动化框架:
① java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL
② python+unittest/pytest+Git+Jenkins+MySQL
③ python+rebot framework+unittest/pytest+Git+Jenkins+MySQL
④ jmeter+Maven/Ant+Jenkins+MySQL
2、UI自动化测试框架
① java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL
② python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL
③ python+robot framework+unittest/pytest+Git+Jenkins+MySQL
需要大家注意的是,常见的 Robot Framework,Selenium 也可以单独称为框架,也可以称为工具。这些都是概念和术语,大家不必特别纠结。
通过上面的一些常见框架,你发现了什么?
它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具,可以根据需求进行相应调整。之后我也会展开介绍,比如常见框架的实践、单元测试框架是什么、测试工具有哪些等等,现在简单了解一下就好。
驱动模式
最常见的是按照驱动模式给框架进行分类,主要有以下几点
1.数据驱动
在自动化或测试任何应用程序时,有时您可能会使用不同的输入数据集多次测试相同的功能。在这种情况下,我们无法在测试脚本本身中嵌入测试数据。数据驱动测试框架可帮助用户将测试脚本逻辑和测试数据彼此隔离。测试数据保存在外部存储资源中,例如xml文件,excel文件,文本文件,CSV文件等。
我也专门写了一篇文章介绍数据驱动测试,感兴趣的朋友可以去看看。
好处
- 测试用例可以用多组数据执行
- 更改脚本不会影响测试数据
- 通过更快地执行测试,您将节省大量时间
缺点
- 建立数据驱动的框架需要花费大量时间
- 您将需要高超的技术专长,精通各种编程语言来编写这些脚本
2.关键字驱动
在某些方面,此框架是数据驱动测试框架的扩展。它不仅将测试数据与脚本分离,而且还将属于测试脚本的特定代码集保存到外部数据文件中。在这里,我们使用表格格式为要执行的每种方法定义关键字或操作词。设置完表格后,您要做的就是根据关键字编写将触发必要动作的代码。
好处
- 需要最少的脚本知识
- 提供高度的代码可重用性
- 可以独立于被测软件编写测试脚本
缺点
- 建立框架的初期投资很高
- 需要高级技术专家
3.混合型驱动框架
顾名思义,混合测试框架是上述多个框架的组合。这种设置的最好之处在于,它利用了各种关联框架的优势。关于此框架的最好的事情是可以根据您的特定需求和要求对其进行自定义。您可以选择适合每个需求的每个框架的功能。
4.行为驱动(lettuce)测试框架
TDD中的BDD内容即测试驱动开发,它允许用户以最少的软件代码干预就可以处理多个测试数据,从而有助于提高代码的可重用性,这是软件开发/测试自动化中的一种省时机制。
如何选择测试自动化框架
由于不同的企业有不同的需求,因此很难在测试自动化框架中确定您想要的所有内容。但是,大多数组织会在测试自动化框架中寻找一些关键标准:
1.易于脚本开发:测试框架必须支持敏捷过程和快速迭代。
2.跨团队兼容性:由于软件测试不限于单个部门,因此测试框架必须在各个角色之间兼容,并要求开发人员和质量检查人员提供输入。
3.支持多种语言:框架应包括对不同应用程序平台的语言支持。
4.对最新平台功能的支持:开源测试框架应定期更新,并应与最新的操作系统功能兼容,以避免围绕测试的框架空白。
最后
回顾一下,今天整体介绍了什么是测试框架,有哪些常见的测试框架,之后我会单独就最实用,最热门的接口自动化和 Web UI 自动化进行进一步的介绍。
不过,我们要知道,自动化测试框架只是辅助工具,自动化测试的核心在自动化测试用例,如何设计和实现高效和有效的自动用例才是自动化成功的关键,当然,这需要你对业务和需求有非常好的理解。我们下次见!
自动化框架到底是什么?相关推荐
- 接口自动化 ------ 快速搭建接口自动化框架
接口自动化框架要搭成什么,里面的内容究竟应该有多少? 这个问题没有标准答案,因为这要取决于你的项目,以及你想要用框架来解决什么问题等多种因素. 当然了,这里也就不展开讨论了,还是回到接口自动化这个点, ...
- UI自动化与接口自动化框架思维
aototest(V1.0 以线上运行) maven+TestNG+selenium+Excel的UI自动化框架升级版本解剖图 项目简介 maven:是一个项目管理工具,主要用于项目构建,依赖管理,项 ...
- 浅谈python+requests接口自动化框架
为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...
- 4行代码,让app自动化框架支持 webview 混合应用操作
移动端 app 自动化框架很多,但是有一些框架因为不支持混合应用测试,一直没有完全流行.比较典型的是经典的 Python 框架 uiautomator2, 这个框架简单好用,没有 appium 那样复 ...
- android主流开源自动化框架(monkeyrunner,robotium,uiautomator
2019独角兽企业重金招聘Python工程师标准>>> android自动化框架: Uiautomator: 优点:可以对所有操作进行自动化,操作简单:缺点:Android版本需要高 ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- 框架有几层_如何设计一个自动化框架
对于如何设计一个自动化框架之前,首先得清楚什么是自动框架,设计时有哪些是需要注意的,然后该怎么去做? 什么是自动化测试框架? 1.什么是框架? 特指为解决一个开放性问题而设计的具有一定约束性的支撑结构 ...
- Appium移动自动化框架
引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...
- 关于Jmeter+Ant+Jenkins作为接口、性能自动化框架的误区
说明:Apach-Jmeter有完善的桌面客户端,关联数据的处方方式,各种参数化的方式,各种Jar包的扩展,也可以用作抓包工具使用,当然最重要的是它是[开源!开源!开源!],重要的事说三遍,目前也有基 ...
- python api开发用什么框架_python+requests接口自动化框架
为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...
最新文章
- 08-spring整合 junit
- 主从故障处理--session 级别参数复制错误
- android配置文件说明
- java 重构 if else_java中繁杂的if/else怎么重构
- COCO 数据集的使用
- liblbfgs简介
- 九九乘法表c语言编程伪代码,py_11分支和循环
- Spring Web Service 学习之Hello World篇
- 带Lambda表达式的Apache Wicket
- R语言第十一讲 决策树与随机森林
- 迎春舞会之数字舞蹈(洛谷-P1538)
- python决策树画图_利用python用iris做一个决策树的可视化更好的理解机器学习!...
- cmos和ttl_TTL和CMOS的比较
- 隐藏播放器html代码大全,播放器代码大全
- 浪漫的表白(C语言)
- boren - 飞机大战9之战机爆炸
- JavaScript基础知识与脚本语言总结
- python mac地址转int,Python MAC地址 获取,过滤,转
- 洛谷 P2517 [HAOI2010]订货
- 【学习笔记】常见测试类型测试方法
热门文章
- php十六进制转二进制,php 十六进制转化为二进制的代码
- 各个版本的精易模块分享下载
- Bettertouchtool Mac破解版(触摸板增强神器)
- 小程序后台PHP版本部署运行 LNMP+WNMP
- java.net.UnknownServiceException: CLEARTEXT communication to xxxxx not permitted by network secur...
- 初级商业数字营销师直通车题库
- 怎样控制小程序tabbar图标大小_微信小程序tabBar的基本设置-微信小程序tabbar字体大小-微信小程序tabbar高度...
- 计算机软件安装流程,计算机软件系统快速安装流程简介
- 北风网-Spark视频从入门到精通(高级特性、案例实战、内核源码、性能调优)-中华石杉老师
- 导线电感、走线电感、过孔电感计算公式