8年测试整理,自动化测试框架从0到1实施,一篇打通自动化...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

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

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

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

为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。

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

自动化测试

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

2、自动化测试能解决什么问题?
①提高出现问题后的响应速率
②降低回归成本
③提高回归覆盖率
④提高回归效率
⑤提高回归的稳定性

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

自动化测试框架

应具备以下的功能:

21

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,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在奋斗的舞台上,决心打破枷锁;在困境中,信念点亮前路。奋斗不是一时的热情,而是坚持不懈的努力。每一次拼搏都是收获的种子,只要心怀勇气,追求卓越,成功与成就将伴随你铸就辉煌人生。

逆境是人生的试金石,奋斗是磨砺成长的舞台。不管前路多崎岖,也不论困难多险阻,勇往直前,坚持不懈,只有拼尽全力,才能迎接属于自己的辉煌与成功。

在脚下是艰难的征途,但心中是无尽的勇气。奋斗不止,追求卓越,只有拼尽全力,才能书写属于自己的传奇。相信自己的力量,坚持梦想,无论何时何地,都能创造出辉煌的人生!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9506.shtml

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

相关文章

Rust vs Go:常用语法对比(十二)

题图来自 Rust vs Go in 2023[1] 221. Remove all non-digits characters Create string t from string s, keeping only digit characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 删除所有非数字字符 package mainimport ( "fmt" "regexp")func main() { s : hei…

STM32读写内部Flash

内存映射 stm32的flash起始地址为0x0800 0000,结束地址为0x0800 0000加上芯片实际的Flash大小,不同芯片Flash大小不同,RAM同理。 对于STM32F103RCT6,Flash256KB,所以结束地址为0x0803 ffff。 Flash中的内容一般用来存…

Macbook M1编译安装Java OpenCV

OpenCV-4.8.0编辑安装 查询编译依赖 brew info opencv确保所有需要模块都打上了✔,未打✔的需要使用brew进行安装 下载OpenCV源码 在此处下载OpenCV源代码,选择Source,点击此处下载opencv_contrib-4.8.0 或者使用如下命令,通…

集装箱装卸作业相关的知识-Part1

1.角件 Corner Fitting of Container or called Corner Casting. there are eigth of it of one container. 国家标准|GB/T 1835-2006https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcnoD35857F2200FA115CAA217A114F5EF12 中国的国标:GB/T 1835-2006《系列1集…

2023最新ChatGPT商业运营版网站源码+支持ChatGPT4.0+GPT联网+支持ai绘画(Midjourney)+支持Mind思维导图生成

本系统使用Nestjs和Vue3框架技术,持续集成AI能力到本系统! 支持GPT3模型、GPT4模型Midjourney专业绘画(全自定义调参)、Midjourney以图生图、Dall-E2绘画Mind思维导图生成应用工作台(Prompt)AI绘画广场自定…

微服务的各种边界在架构演进中的作用

演进式架构 在微服务设计和实施的过程中,很多人认为:“将单体拆分成多少个微服务,是微服务的设计重点。”可事实真的是这样吗?其实并非如此! Martin Fowler 在提出微服务时,他提到了微服务的一个重要特征—…

HCIA练习2

目录 第一步 启动eNSP,搭建如图所示的拓扑结构 第二步 进行子网的划分 ​第三步 从第二步划分的16个网段中,选择14个网段进行使用 第四步 对路由器各个端口进行IP配置 第五步 对每个路由器的环回接口进行配置 第六步 对路由器进行静态路由配…

视觉套件专项活动!与飞桨技术专家一起提升技术实力,更多荣誉奖励等你领取

作为中国最早开源的深度学习框架,飞桨深度践行开源理念,开放拥抱社区,重视生态构建,与开发者和生态伙伴共成长,已成为国内综合竞争力第一的产业级深度学习平台。截至目前,飞桨已凝聚750万名开发者。 在飞桨…

如何在工作中利用Prompt高效使用ChatGPT

导读 AI 不是来替代你的,是来帮助你更好工作。用better prompt使用chatgpt,替换搜索引擎,让你了解如何在工作中利用Prompt高效使用ChatGPT。 01背景 现在 GPT 已经开启了人工智能狂潮,不过是IT圈,还是金融圈。 一开…

CNNdebug尝试

这算是啥问题?? 接着根据群里大佬提供的指示,将train和validate中的nums_work改成0即可 此处因为数据已经打乱了,所以在这里就不用打乱数据,把shuffle True修改成为False 后面查看指定目录下,竟然没有这个…

python怎么实现tcp和udp连接

目录 什么是tcp连接 什么是udp连接 python怎么实现tcp和udp连接 什么是tcp连接 TCP(Transmission Control Protocol)连接是一种网络连接,它提供了可靠的、面向连接的数据传输服务。 在TCP连接中,通信的两端(客户端和…

信息与通信工程面试准备——专业知识提问

1.无线通信:依靠电磁波在空间传播以传输信息。 2.通信的目的:传输信息。 3.通信系统:将信息从信源发送到一个或多个目的地。 4.本书中通信一般指电信:利用电信号传输信息(光通信属于电信,因为光也是一种…

华为数通HCIP-OSPF路由计算

路由协议 作用:用于路由设备学习非直连路由; 动态路由协议:使路由设备自动学习到非直连路由; 分类: 按照算法分类: 1、距离矢量路由协议;(RIP、BGP) 只交互路由信息…

CTFSHOW web 信息收集

web入门的刷题 web1 教我们多看看源代码 web2 抓包 web3 抓包 web4 robots.txt robots.txt web5 phps源代码泄露 phps 就是php的源代码 用户无法访问 php 只可以通过phps来访问 web6 源代码备份 web7 git web8 svn web9 swp /index.php.swp web10 cookie web11 查域名…

电商-订单模块

电商-订单模块 流程思维图表结构支付中心流程 流程思维图 表结构 支付中心 流程

Java-逻辑控制

目录 一、顺序结构 二、分支结构 1.if语句 2.swich语句 三、循环结构 1.while循环 2.break 3.continue 4.for循环 5.do while循环 四、输入输出 1.输出到控制台 2.从键盘输入 一、顺序结构 按照代码的书写结构一行一行执行。 System.out.println("aaa"); …

(学习日记)2023.04.30

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

蓝桥杯专题-真题版含答案-【加法变乘法】【三羊献瑞】【交换瓶子】【卡片换位】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

Sharding-JDBC强制路由案例实战

🚀 ShardingSphere 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜&…

【NLP】图解变压器(transformer)

一、说明 在这篇文章中,我们将看看 The Transformer——一个利用注意力来提高这些模型训练速度的模型。转换器在特定任务中优于谷歌神经机器翻译模型。然而,最大的好处来自变压器如何适应并行化。事实上,谷歌云建议使用The Transformer作为参…