一看就会!我把自动化测试框架总结成这样,人人都能学好!

news2024/11/24 10:42:58

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

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

01什么是框架

框架(framework)是一个框子—指其约束性,也是一个架子—指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;

另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。

—— 百度百科

上面的概念比较抽象,换另一个角度解释:

  • 框架本身一般不完整到可以解决特定问题;
  • 框架天生就是为扩展而设计的;
  • 框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的工具,也就是说框架是配套了一些帮助解决某类问题的库(libraries)或工具(tools)。

约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。

支撑性:框架本身不解决什么问题,但给了解决问题的相关组件一个组合底子,这个底子的科学性和易用性直接影响在此之上进一步开发的科学性和方便性。 

—— 知乎

定义:
为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。
特定问题:什么问题?——自动化测试
约束边界:为什么约束?——明确测试范围和目的
解决方案:用什么方案解决问题?——编程语言+工具+其他
构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知
工具:特点是什么?—— 灵活性、可扩展性、高内聚低耦合

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

02自动化测试

1、为什么要进行自动化测试?

  • 黑盒测试回归效率低
  • 手动测试的偶然性和不确定性
  • 回归的覆盖率不足
  • 交付的产品质量无法保证,全靠评估
  • 系统越复杂,问题越多
  • 上线时间长、构件失败率高导致的蝴蝶效应(迭代快,加班多)

2、自动化测试能解决什么问题?

  • 提高出现问题后的响应速率
  • 降低回归成本
  • 提高回归覆盖率
  • 提高回归效率
  • 提高回归的稳定性

3、自动化测试的不足有哪些?

  • 无法减少成本投入,而是为了加快测试结果反馈,提升测试质量
  • 自动化适用于回归和冒烟,而不是发现BUG
  • 录制回放功能是鸡肋,可视化并不是一个很好的做法
  • 不是所有所有系统所有功能都适合做自动化测试

03自动化测试框架

构成框架的组件,最起码应该具备以下的功能:

  • Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
  • Report:测试报告生成和管理以及即时通知,测试结果快速响应;
  • Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
  • Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
  • TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
  • TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
  • TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
  • Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
  • Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!

04常见的自动化测试框架

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.coloradmin.cn/o/1043376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出Java的多线程编程——第二篇

目录 前情回顾 1. 中断一个线程 1.1 中断的API 1.2 小结 2. 等待一个线程 2.1 等待的API 3. 线程的状态 3.1 贯彻线程的所有状态 3.2 线程状态和状态转移的意义 4. 多线程带来的的风险-线程安全 (重点) 4.1 观察线程不安全 4.2 线程安全的概念 4.3 线程不安全的原因…

信息安全:网络安全漏洞防护技术原理与应用.

信息安全:网络安全漏洞防护技术原理与应用. 网络安全漏洞又称为脆弱性,简称漏洞。漏洞一般是致使网络信息系统安全策略相冲突的缺陷,这种缺陷通常称为安全隐患。 安全漏洞的影响主要有机密性受损、完整性破坏、可用性降低、抗抵赖性缺失、可…

中睿天下精彩亮相2023国家网络安全宣传周河南省活动

9月11日,2023年国家网络安全宣传周河南省活动正式拉开帷幕,开幕式在八朝古都开封举行。中睿天下受邀参与本次盛会并亮相网络安全产品展,重点展示在网络安全攻击溯源领域的前沿技术、创新方案及实践应用,为与会嘉宾带来了一场独具优…

STL算术生成和集合算法

目录 算术生成算法accumulate 算术生成算法file 常用集合算法 常用集合算法 常用集合算法set_difference 算术生成算法accumulate 算术生成算法属于小型算法&#xff0c;使用时包含的头文件为 include <numeric> accumulate(iterator beg, iterator end, value); …

13:STM32----PWR

目录 一:PWR 1:简历 2:电源框图 3:低功耗模式 4:模式选择 5:低功耗模式注意事项 A:睡眠模式 B:停止模式 C:待机模式 二 : 案例 A:修改主频 1:连接图 2:代码 B:睡眠模式串口发送接收 1:连接图 2:代码 C:停止模式对射式红外传感器计次 1:连接图 2:函数介绍​…

C++入门(前言、命名空间、缺省参数、重载)

该篇博客主要讲述关于C发展前言&#xff0c;以及C祖师爷对C进行改造提升后的新语法进行解释说明&#xff0c;具体内容为&#xff1a;发展历程、命名空间、输入\输出、缺省参数、函数的重载 目录 文章目录 前言 1.什么是C 2.C的发展史 3.关于C的学习 一、关于命名空间 1.含义 2.…

JMeter测试Web服务

Web服务简介 什么是Web服务 【Web服务】即Web Service。Web服务是一种服务导向架构的技术&#xff0c;通过标准的Web协议提供服务&#xff0c;目的是保证不同平台的应用服务可以互操作。根据W3C的定义&#xff0c;Web服务&#xff08;Web service&#xff09;应当是一个软件系统…

ElasticSearch - 基于 “黑马旅游” 案例,实现搜索框、分页、条件过滤、附近酒店、广告置顶功能

目录 一、黑马旅游案例 1.1、实现 搜索框 和 分页 功能 1.1.1、需求分析 a&#xff09;首先搜索框需求 b&#xff09;分页需求 1.1.2、定义实体类 1.1.2、定义 controller 1.1.3、注入 RestHighLevelClient 1.1.4、实现 IHotelService 接口的 search 方法 1.1.5、功能…

【OLSR路由协议】链路状态路由(OLSR)协议中选择多点中继节点算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

AIGC 绘画Stable Diffusion工具的安装与使用

我们先让ChatGPT来帮我们回答一下,什么是Stable Diffusion Stable Diffusion 是一种基于概率模型的图像生成技术。它通过对图像空间中每个像素的颜色值进行推断,从而生成具有高度真实感和细节的图像。 Stable Diffusion 使用一种称为扩散过程的方法来生成图像。在生成过程中…

Gd-DOTA,CAS:72573-82-1,钆特酸

产品简介&#xff1a;螯合剂是金属原子或离头子与樤含有两个或连两个以上配位原子的配位体作用&#xff0c;生成具有环状结构的络合物&#xff0c;该络合物叫做螯合物。能生成螯合物的这种配体物质叫螯合剂&#xff0c;也成为络合剂。 CAS号&#xff1a;72573-82-1 中文名&am…

基于VR元宇宙技术搭建林业生态模拟仿真教学系统

随着科技的飞速发展&#xff0c;教学方式也正在经历着巨大的变革。林业经济学元宇宙虚拟教学系统作为一种新兴的教学方式&#xff0c;为学生和教师提供了一个全新的、沉浸式的学习和教学环境。 森林管理和监测 元宇宙技术可以用于森林管理和监测。通过无人机、传感器和虚拟现实…

缓冲区溢出漏洞分析

一、实验目的 熟悉软件安全需求分析方法&#xff0c;掌握软件安全分析技术。 二、实验软硬件要求 1、操作系统&#xff1a;windows 7/8/10等 2、开发环境&#xff1a;VS 6.0&#xff08;C&#xff09;、OllyDbg 三、实验预习 《软件安全技术》教材第3章 四、实验内容&#…

中间相遇法(分治类问题非等大分治的平衡做法)

分治&#xff0c;如果分成两半大小不一样&#xff0c;很容易被卡到 O ( n 2 ) O(n^2) O(n2) 在某些题目中&#xff0c;利用中间相遇法&#xff0c;我们可以优化这个过程 其优化的前提是分治的大头在找分界点 复杂度不用证&#xff0c;很好理解吧 这层找地越久&#xff0c;下…

常识判断 --- 科技常识

目录 力与热 光和声 航空成就 垃圾分类 百科知识 血型 二十四节气歌 春雨惊春清谷天 夏满忙夏暑相连 秋处露秋寒霜降 冬雪雪冬小大寒 力与热 光和声 航空成就 垃圾分类 百科知识 血型

机器人中的数值优化|【四】L-BFGS理论推导与延伸

机器人中的数值优化|【四】L-BFGS理论推导与延伸 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化&#xff0c;拟牛…

丰田的国际化与转型困境:对中国车企的欧洲策略启示

摘要&#xff1a;欧洲市场的消费者汽车偏好多样,中国车企进军欧洲时,需考虑产品设计和当地法规。回顾历史,丰田汽车通过其独特管理理念,在美国从廉价品牌形象成功转型为高质量、受信赖的全球品牌。但进入电动汽车时代&#xff0c;日本车企因深度共生的传统供应链而转型坎坷。中…

如何使用ES6+特性进行现代前端开发?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用ES6 特性进行现代前端开发1. 使用 let 和 const2. 使用箭头函数3. 使用模板字符串4. 使用解构赋值5. 使用类和模块6. 使用扩展运算符和剩余参数7. 异步编程8. 使用模块打包工具9. 使用现代浏览器 ⭐ 写在最后 ⭐ 专栏简介 前端入门之…

ChatGPT推出全新功能,引发人工智能合成声音担忧|百能云芯

人工智能AI科技企业OpenAI公司25日宣布&#xff0c;其聊天应用程序ChatGPT如今具备「看、听、说」能力&#xff0c;至少能够理解口语、用合成语音回应并且处理图像&#xff1b;但专家忧心&#xff0c;以假乱真与深度伪造的乱象可能变本加厉。 国家广播公司新闻网(NBC News)报导…

1.算法——数据结构学习

算法是解决特定问题求解步骤的描述。 从1加到100的结果 # include <stdio.h> int main(){ int i, sum 0, n 100; // 执行1次for(i 1; i < n; i){ // 执行n 1次sum sum i; // 执行n次} printf("%d", sum); // 执行1次return 0; }高斯求和…