聊聊自动化测试框架

2023-10-27

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


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

 

一、什么是框架


框架(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+rebot framework+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+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine


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


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


编程语言:编写测试脚本、日志记录和输出;


单元测试框架:提供测试脚本运行、异常校验等一些列的配置;


扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;


持续集成工具:Jenkins,经典的持续集成工具;


数据库:测试数据管理;


项目管理工具:测试结果统计管理;


PS:自动化测试工具太多,上面只是列举了使用率较高以及我个人还算了解的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!


出处:

http://www.cnblogs.com/imyalost/p/9034194.html


版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。



架构文摘

ID:ArchDigest

互联网应用架构丨架构技术丨大型网站丨大数据丨机器学习

更多精彩文章,请点击下方:阅读原文

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

聊聊自动化测试框架 的相关文章

  • JS正则表达式(二)

    取得字符串的字节长度 代码 function strlen str var i var len len 0 for i 0 i
  • 行人重识别(ReID)概述

    什么是Re ID 行人重识别 Person Re identification也称行人再识别 简称为ReID 是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术 广泛被认为是一个图像检索的子问题 给定一个监控行人图像 检索跨设
  • mysql 快照和binlog_利用快照卷和日志文件对mysql数据库备份和恢复

    基于快照卷做备份和日志文件做恢复 1 首先对数据库施加读锁 2 记录二进制日志文件的文件名和事件位置 3 创建快照卷 4 解锁数据库 5 挂载快照卷 复制数据文件 6 删除快照卷 登录mysql服务器 root station58 mysq
  • 使用python中的matplotlib绘画激活函数图像

    使用python中的matplotlib绘画激活函数图像 import matplotlib pyplot as plt import numpy as np plt rcParams font sans serif SimHei 显示汉字
  • 1033 旧键盘打字(20)(20 分)

    旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在2行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大写给出 每段文
  • 使用Python对excel中的数据进行处理

    一 读取excel中的数据 首先引入pandas库 没有的话使用控制台安装 pip install pandas import pandas as pd 引入pandas库 别名为pd read excel用于读取excel中的数据 这里只
  • Filtering arrays in Dart

    Dart Filtering arrays in Dart 初探Dart 初次接触Dart这个语言 感觉语法还是还是很舒服的 定义类 枚举什么的 语言都挺简洁 很友好的构造函数 这种最新的语言能够兼容之前老的语言的很多优点 唯一感觉不能理解
  • 7-1 用格里高利公式求给定精度的PI值 (15分)

    教育超市 浙大版 C语言程序设计 第3版 第4章 循环结构 练习4 1 用格里高利公式求 的近似值 本题要求编写程序 计算序列部分和 4 1 1 3 1 5 1 7 直到最后一项的绝对值小于给定精度eps 输入格式 输入在一行中给出一个正实
  • Android平台功耗优化方案总结之软件层功耗定位?

    功耗和温升通常是Android系统的硬伤 尤其是结构空间有限的Android系统设备 比如用Android系统开发的手表设备 结构有限意味着能放的电池容量不会很大 导致待机时间变得特别短 而且通常这种手表设备的在原始Android系统上 功
  • 在centos上安装splint

    lint lint是最著名的C语言工具之一 是由贝尔实验室SteveJohnson于1979在PCC PortableC Compiler 基础上开发的静态代码分析 一般由UNIX系统提供 工具介绍 与大多数C语言编译器相比 lint可以对
  • leetcode--SQL例题+数据库面经(留个坑再填

    SQL 都忘没了 没了 了 常见操作 增删改查 1 增 insert 2 删 delect 3 改 update 4 查 select 建表约束 主键约束 自增约束 外键约束 唯一约束 非空约束 默认约束 T1 SQL查询 联结 编写一个
  • 「GoCN酷Go推荐」终端进度条-pb

    什么是 pb pb是一个Go语言的终端进度条库 什么时候需要pb 终端显示的工具进行定时等待 IO传输等操作时 都可以用pb来显示当前进度 pb入门 安装pb go get github com cheggaaa pb v3 快速上手 pa
  • ISE14.7 win10安装步骤

    废话不多说 最近导师有项目 需要用到FPGA 我也不知道能不能做 先装来备着 指不定要学 直接上图 在关键的地方加以文字说明 1 打开安装包后 双击xsetup exe即可开始安装 2 中间点两个勾都要打上 3 点接受 下一步 4 5 6
  • Photoshop的时间轴是灰色的,不能使的解决方法

    我操作的是Adobe Photoshop CC版本 20 0 4 2019 想用时间轴作GIF动画效果 但调出时间轴后 时间轴的工作区却是灰色的 点哪里都没有反应 把PS打开又关掉好几次 都不行 研究了半天 终于解决了 方法 要创建视频时间
  • Linux模块文件如何编译到内核和独立编译成模块

    1 编译成独立模块 假定我们有以下驱动程序 要编译成可以加载到开发板的独立ko文件 hello c include
  • 第一章,测试平台开发简介

    1 1 测试平台简介 平台就是一种用来实现某种功能的体系 平台包括各种不同的元素 架构 流程 标准 机制和工具等等 以测试为例 架构 测试体系中有关的各种Roles以及对应的Responsibilities 流程 测试相关的各种流程 比如测
  • 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究全套代码)

    赛道 B 北京移动用户体验影响因素研究 移动通信技术飞速发展 给人们带来了极大便利 人们也越来越离不开移动通信技术带来的各种便捷 随着网络不断的建设 网络覆盖越来越完善 各个移动运营商 越来越重视客户的网络使用体验 从而进一步提升网络服务质
  • HDU1096(最大递增子序列的变形)

    http acm hdu edu cn showproblem php pid 1069 输入几种方块 当方块的长宽小于下面那个时可以放在上面 求最大方块的高度 方块可以无限 每个方块有6种不同的状态 比如 10 20 30 10 30 2
  • PE盘和系统启动盘制作

    摘要 自己多两把刷子还是很重要滴 学会自己做PE盘就可以及时抢救数据啦 学会自己装系统就不用求别人帮忙啦 进度条掌握在自己手中 开篇前先简单介绍下PE盘和系统启动盘的作用 PE盘呢其实是用来做一个很小的微PE系统 可以类比成Windows系
  • 学习率Learn_rate是什么(深度学习)

    学习率是指在训练神经网络时用于调整参数的步进大小 它决定了每次梯度更新时参数的调整程度 学习率的选择直接关系到模型的性能和训练过程的效果 学习率变化可能带来的影响 收敛速度 较高的学习率可以加快模型的收敛速度 因为参数更新更大 模型能够更快

随机推荐

  • sublime text3设置快捷键在浏览器中打开

    Sublime Text3自带在浏览器中打开的功能 不需要另外安装插件 右键就可以选择open in browser 为了方便 设置快捷键来使用这个功能 Preferences Key Bindings User 将以下代码粘贴进去 我没有
  • 可编程led灯带原理_88张图搞定层板灯带的设计、安装、收口及检修!

    dop设计 ID dopdesign 原创 作者丨泽顺 编辑丨那兰 光之于空间 犹如空气之于生命 光的存在赋予了空间生命和灵魂 无论是建筑空间还是室内装饰设计 光都是设计当中必不可少的元素 越来越多的设计师更加重视和倾向于利用灯光来点缀空间
  • maven的环境配置问题:出现无法解析插件

    在配置maven环境的过程中 我首先出现了通过maven archetype webapp创建web项目时始终没有src包 然后开始了反复安装maven的过程 结果反正环境很乱 问题也没有解决 最后通过重新配置环境变量的方式 src包就莫名
  • Windows下JetBrains GoLand环境配置记录

    闲来无事 go go go 这篇文章不是最简单的配置方法 相对简单的配置方法见文末引用 本文记录了我遇见的一些问题以及解决方案与解释 Go编译环境配置 首先得前往谷歌的网站下载go语言的镜像文件 Downloads The Go Progr
  • 05-07章

    第5章 if 语句 1 True False 2 gt gt lt lt 3 and or not 4 判断某个值是否已包含在列表中 可用关键字in 判断某个值是否未包含在列表中 可用关键字not in 5 if else if elif
  • 用SVR模型完成对Boston房价的回归预测

    用SVR模型完成对Boston房价的回归预测 文章目录 用SVR模型完成对Boston房价的回归预测 实验说明 实验代码 参数优化 实验说明 实验要求 使用SVR模型实现对波士顿房价的预测 load boston 并使用r2 score 对
  • 山海经2服务器维护时间,山海经异兽录多久出一次新服

    发布时间 2016 07 14 梦幻西游手游魔王寨多久出 梦幻西游手游魔王寨怎么样 在梦幻西游手游嘉年华公布了官方消息 魔王寨将成为梦幻西游手游的第七个门派 相信大家已经迫不及待的想要尝试新门派了 那么魔王寨门派怎么样 今天蚕豆网小编就为大
  • bandgap电路设计与仿真

    1 电路图 带隙基准电路主要由具有负温度特性的三极管 以电流镜做负载的5管OTA和启动电路构成 工艺采用的是0 18um工艺 具体电路也可参考拉扎维模拟coms集成电路第十一章带隙基准 2 直流仿真 扫描温度 40 105 进行直流DC仿真
  • python 使用bottle搭建网页,如何在后台获取数据

    想利用python的bottle设计一个调查问卷 第一次接触网页 想了好久才想明白应该如何进行数据的交互操作 我们可以设置参数method GET POST 实际上我们也可以将这两部分分开 一个method GET 另一个method PO
  • 如何学习Redis

    掌握数据结构和缓存的基本使用方法 要想会用一种系统 我们首先要会一些基本操作 我们平时在开发业务系统时 或多或少地会把 Redis 当作数据库或缓存使用 Redis 也提供了非常丰富的数据结构 这也给我们的开发提供了极大的便利 所以 要想快
  • HTML表单标签及其具体使用

    HTML表单标签 文章目录 HTML表单标签 一 form标签 解析 具体使用 二 input标签 解析 具体使用 运行结果 三 textarea标签 解析 包含属性 具体使用 运行结果 四 select标签 解析 包含属性 五 optio
  • 基于JSP的毕业设计选题系统的设计与实现(源代码+论文)

    随着全球信息化技术的兴起 特别是Internet的日益普及 我国各大中专院校都建立了自己的校园网 毕业生以班级为单位的原始手工报送的选题方式已经不能适应时代发展的需求 所以基与互联网的毕业设计选题系统也就孕育而生了 毕业设计选题系统就是能够
  • 安全防御——IDS(入侵检测系统)

    安全防御 IDS 入侵检测系统 IDS介绍 为什么需要IDS IDS的工作原理 IDS的工作过程 第一步 信息收集 第二步 数据分析 IDS的主要检测方法 1 模式匹配 误用检测 2 统计分析 异常检测 3 完整性分析 异常检测 4 融合使
  • Docker镜像保存为文件及从本地文件导入镜像的方法

    1 概述 我们制作好镜像后 有时需要将镜像复制到另一台服务器使用 能达到以上目的有两种方式 一种是上传镜像到仓库中 本地或公共仓库 但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的 所以如果使用仓库的方式 只能自己搭建私有仓库
  • Linux:监控GPU状态【nvidia-smi】【watch -n 1 nvidia-smi】【pip install gpustat;gpustat -i】

    一台服务器毕竟很多人都在用 这个时候查看GPU状态显得尤为重要 查看剩余显存大小 以便自己能否使用这块卡 后来查找发现有2种方式 最开始我用的就是第一种 但是显然不是很好用 最后发现gpustat超级好用 下面分别介绍两种用法 一 nvid
  • HAL-STM32-USB内部Flash虚拟U盘更新程序

    1 IAP部分 添加fat32文件 修改Flash擦除代码 F401ccu6按扇区删除 F103按页删除 static bool fat32 write firmware const uint8 t b uint32 t addr bool
  • 如何练成大力金刚指:IKBC - C104 白色黑轴机械键盘 体验测评

    0 写在前面的话 首先 感谢张大妈对我的信任 让我参与这次IKBC C104键盘的众测 作为一个码农 每天至少一半以上的时间在使用键盘 一把趁手的键盘 就像一个武林高手手中的绝世神兵 摧枯拉朽 无往而不利 所以 我有很多把绝世神兵 然并卵
  • python运算符——比较运算符

    在编程的世界里 是一个特殊的运算符 是为赋值运算符 是为比较运算符 a b 10 20 print a gt b吗 a gt b False print a
  • 4大主流小程序平台介绍及其优缺点对比

    文章目录 人工智能福利文章 微信小程序 优点 缺点 支付宝小程序 优点 缺点 百度小程序 优点 缺点 字节小程序 优点 缺点 总结 脑筋急转弯小程序抢先体验 程序员专属工具箱 请添加图片描述 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主
  • 聊聊自动化测试框架

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