这些自动化测试框架知识你还不知道?
这些自动化测试框架知识你还不知道?!
无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。
最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”有了一些理解,这篇博客,就聊聊自动化框架的一些事吧。
一、什么是框架
框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。
在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;
另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。
—— 百度百科
上面的概念比较抽象,换另一个角度解释:
1、框架本身一般不完整到可以解决特定问题;
2、框架天生就是为扩展而设计的;
3、框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的工具,也就是说框架是配套了一些帮助解决某类问题的库(libraries)或工具(tools)。
约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。
支撑性:框架本身不解决什么问题,但给了解决问题的相关组件一个组合底子,这个底子的科学性和易用性直接影响在此之上进一步开发的科学性和方便性。
—— 知乎
上面的2个对框架的解释和定义,看起来也并没有很简单直白的说清楚什么是框架,下面是我的一些理解:
定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。
特定问题:什么问题?——自动化测试
约束边界:为什么约束?——明确测试范围和目的
解决方案:用什么方案解决问题?——编程语言+工具+其他
构成工具的组件:哪些组件?——用例、脚本、数据、日志、报告、通知
工具:特点是什么?——灵活性、可扩展性、高内聚低耦合
二、自动化测试
1、为什么要进行自动化测试?
①、黑盒测试回归效率低
②、手动测试的偶然性和不确定性
③、回归的覆盖率不足
④、交付的产品质量无法保证,全靠评估
⑤、系统越复杂,问题越多
⑥、上线时间长、构件失败率高导致的蝴蝶效应(迭代快,加班多)
2、自动化测试能解决什么问题?
①、提高出现问题后的响应速率
②、降低回归成本
③、提高回归覆盖率
④、提高回归效率
⑤、提高回归的稳定性
3、自动化测试的不足有哪些?
①、无法减少成本投入,而是为了加快测试结果反馈,提升测试质量
②、自动化适用于回归和冒烟,而不是发现BUG
③、录制回放功能是鸡肋,可视化并不是一个很好的做法
④、不是所有所有系统所有功能都适合做自动化测试
三、自动化测试框架
构成框架的组件,最起码应该具备以下的功能:
Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
Report:测试报告生成和管理以及即时通知,测试结果快速响应;
Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!
四、常见的自动化测试框架
1、接口自动化框架:
①java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
②python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
③python+rebotframework+unittest/pytest+Git+Jenkins+MySQL
+testlink/redmine
④jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine
2、UI自动化测试框架
①java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
②python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
③python+rebotframework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
通过上面的一些常见框架,你发现了什么?
它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
编程语言:编写测试脚本、日志记录和输出;
单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
持续集成工具:Jenkins,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;
PS:自动化测试工具太多,上面只是列举了使用率较高以及我个人还算了解的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!
关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激。
转载于:https://www.cnblogs.com/xqh1215/p/10005938.html
这些自动化测试框架知识你还不知道?相关推荐
- uft自动化测试工具安装步骤_你需要了解的自动化测试框架知识
01 自动化测试与测试自动化 很多人会以为自动化测试和测试自动化这两个概念没有什么不同.但是从我个人看来,这两个概念有本质上的区别. 自动化测试是指使用自动化测试工具代替人工的方式来执行测试用例.使用 ...
- 这8款开源自动化测试框架,你还没用上?
在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试.Web UI 测试.API 测试.数据库测试.接口测试.单元测试等方面,为大家整理了github或码云上优秀的自动化测试开 ...
- 如何从零搭建自动化测试框架
搭建的自动化测试框架要包括API测试,UI测试,APP测试三类.以上三类其实可以简化为两类,那就是: 1)接口自动化测试框架搭建 2)UI自动化测试框架搭建. 没问题,安排,且是手把手教你如何搭建以上 ...
- QTP自动化测试框架的基础知识
1. 什么是自动化测试框架? 假定你有一个活,需要构建许多自动化测试用例来测试这个应用程序.当你对这个应用程序完成自动化测试后,你对自己创建脚本应该有什么期望吗?你难道不想要- 脚本应该按照预期的来执 ...
- 《精通自动化测试框架设计》—第1章 1.3节五天太久,还能压缩吗
本节书摘来自异步社区<精通自动化测试框架设计>一书中的第1章,第1.3节五天太久,还能压缩吗,作者陈冬严 , 邵杰明 , 王东刚 , 蒋涛,更多章节内容可以访问云栖社区"异步社区 ...
- 大招来袭 | 还在为不会搭建自动化测试框架而发愁吗?万字长文,大佬有妙招!!
开始前我想吟诗一首 <无 题> 曾经有个难题摆在我的面前,自动化测试框架到底如何搭建? 曾经觉得它神秘而又那么难以企及: 曾经觉得它高端.大气.上档次. 而如今: 大佬想说: 其实他就是个 ...
- 自动化测试QTP知识框架
基于QTP的自动化测试开发- QTP初级 基本信息 一.软件自动化测试 1. 自动化测试 1.1. 软件自动化测试的故事 1.2. 自动化测试的应用案例 1.3. 自动 ...
- Android 自动化测试框架简介
Android常用的自动化测试工具框架: Monkey,MonkeyRunner,UIAutomator,Robotium,Appium,Monkey Talk...... 但这些工具框架都是什么呢有 ...
- 复盘|接口自动化测试框架建设的经验与教训
软件质量保障 专注测试圈,自动化测试.测试平台开发.测试新技术.大厂测试岗面经分享! 为什么选择这个话题? 一是发现很多"点工"在转型迷茫期都会问一些自动化测试相关的问题,可以说自 ...
最新文章
- java 正则 反向引用_正则之反向引用
- 数据结构与算法笔记(十一)—— 归并排序
- 判断随机抽取代码_高中数学中离散型随机变量的分布列知道吗?均值与方差能干什么?...
- 利用Snapshot快速跨Region迁移服务器
- 硬盘格式化了的数据找到办法
- VMWare Workstation虚拟机 安装Centos7 图文指南
- 网络爬虫之正则表达式
- 安装eNSP和VirtualBox中遇到的问题
- 对接微信公众(开放)平台,获取微信用户信息,实现第三方登录
- 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
- 如何搭建Hyperledger fabric网络
- App瘦身最佳实践(分析了微信、淘宝、微博图片文件的放法)
- 每天5分钟,定投聊通透-学习笔记01
- 使用第三方GitLab进行登录认证
- 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,如此反复到所有人出列。
- JsUnit测试JS
- 【北航软院】系统编程学习笔记
- Susy 2 教程 — 实战篇
- 面试题--小白鼠实验
- 小灯泡自媒体博客Spimes4.6收费typecho主题模板无加密无授权源码