8年测试总结,自动化测试必要注意点+自动化测试框架(汇总)

news2024/11/16 11:57:50

目录:导读

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


前言

1、开始自动化测试,必须知道的点

1)为什么自动化测试?

在测试时,你进行了新的部署、bug修复,这是你如何保证新bug没有被引入老功能?你需要测试之前的功能。

因而,每当有bug修复,或新功能添加时,你都要手工测试所有功能?考虑到花费、资源、时间等等因素,你这么测试不是高效的。

因而自动化有了需求:
当你有太多回归测试工作要做时,请自动化你的测试工作

当你正在测试一款web应用时,与此同时,这个应用可能有数千用户正在使用。

你将如何测试这样的web应用?你将如何使用手工方式,同时模拟这些多的用户呢?这是一件十分困难的手工操作。

模拟众多虚拟用户,来测试应用的负载容量时,请将你的负载测试自动化

你正在测试一款代码被频繁修改的应用,虽然GUI几乎一样,但功能变动越多,需要的测试“维修”就越多。

当你的GUI几乎不变,功能频繁发生变化时,请将你的测试工作自动化。

2)关于自动化测试,有哪些风险?

在一些不同的情况下,你可以考虑自动化测试工作。这里我介绍自动化测试的一些风险。如果你已经下定决心要做自动化或者想要更早地采取措施,那么请先考虑以下问题。

1.你能找到有经验的人力吗?
想要自动化,你需要有一些编程经验的人员。

考虑一下你的人力资源。他们有足够的自动化测试经验吗?如果没有,他们有 技术

能力或编程背景来轻松应对新技术吗?你打算投资建立一个好的自动化团队吗?如果你的答案是肯定的,那么考虑自动化你的工作吧。

2.自动化的初始成本非常高
我赞同这个观点:由于要雇用熟练的手动测试人员,因而手动测试的相关成本很高。但如果你正在考虑将自动化作为方案,请三思而后行。

自动化的初始新建成本太高,例如:自动化工具的购买,测试脚本的培训和维护。

很多自动化工具用户都会后悔做自动化。如果你花费了很高的成本,却只得到了一些好看的测试工具和一些基本的自动化脚本,那么自动化的用途是什么?

3.如果UI不是一成不变的,不要试图自动化
自动化测试用户界面前务,请必要小心。如果用户界面正在大范围发送变化,那么自动化脚本的维护成本将会非常高。在这种情况下,基本的UI自动化就足够了。

4.你的应用是否足够稳定,可以支持你的自动化测试工作?
在早期的开发周期中自动化测试工作将是一个坏主意(除非它处在一个敏捷的环境)。 在这种情况下,脚本的维护成本将非常高。

5.你正在考虑100%自动化?
别异想天开了,你不可能100%将测试工作自动化。当然,有一些领域,如性能测试,回归测试,负载/压力测试,你可以有机会达到接近100%的自动化。但用户界面,文档,安装,兼容性和恢复等领域,必须手动完成测试。

6.不要自动化只执行一次的测试任务
某些识别应用领域和测试用例,可能只需要运行一次,并且不需要包含在回归测试中。避免自动化此类模块或测试用例。

7.你的自动化套件会长期使用吗?
每个自动化脚本套件都应该有足够长的使用寿命,其新建成本应该绝对低于手动执行成本。然而分析每个自动化脚本套件的有效成本有点困难。

对于单独的构建(一般假设,取决于具体的应用程序的复杂性),大约应该使用或运行至少15到20次自动化套件,才能获得良好的ROI。

自动化测试是实现大多数测试目标和有效利用资源和时间的最佳方式。但在选择自动化工具之前,你应该谨慎。在决定自动化测试工作之前,请确保有熟练的人力。否则,您的工具只是一个空架子,无法获得ROI。

将昂贵的自动化工具交给非技术人员会带来失望。在购买自动化工具之前,请确保该工具最适合你的要求。你不太可能拥有与你的要求100%匹配的工具。

你需要找出最符合你要求的工具的局限性,然后使用手动测试来克服这些测试工具的限制性。开源工具也是开始自动化的好选择。

不是100%依赖于手动或自动化,而是要使用手动测试和自动化测试的最佳组合。这是每个项目的最佳解决方案(我认为)。自动化套件不会找到所有的错误,也不能替代真正的测试人员。在许多情况下,随机测试也是必要的。

2、自动化测试框架

1)什么是自动化测试框架?

什么是框架?

特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。

框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。也就是说框架本身不解决特定的问题,它是通过扩展的各种组件或者工具来解决问题,并且它可以方便的添加或者修改部分组件的功能。

什么是自动化测试框架?

什么是自动化测试框架,我们拆分来看的话,其实就是三个方面,自动化、测试、框架,什么是框架上面说了,还有就是他能执行测试,而且还是自动化的,所以框架的各个组件的主要功能就是围绕着如何自动化如何执行测试展开的。

这里可以把框架的各个功能称作模块,那我们来看看都需要那些模块,需要一个基础模块,主要是怎么实现脚本编写,管理模块,主要的行为是持续集成,定时执行、case管理,统计模块,主要是发送测试报告,统计分析。

那总结一下自动化测试框架的定义就是:把在自动化测试过程中用到的一些功能或者工具,分装成各个模块,包括如何进行自动化脚本编写以及分层功能的基础模块,进行持续集成、定时任务的管理模块,发送测试报告、进行测试结果统计分析的统计模块等,将这些模块组成一套可重用的骨架

2)自动化测试框架的设计原则

通用性:能够在各种各样的系统和平台都能够使用
易维护性:能够把我们的数据、用例、框架的实现进行独立的维护,能够在实现完善的过程,快速的定义到维护的点,而不对框架的其他功能造成影响

定时处理:能够在指定的时间执行
持续集成:当被测程序和测试代码有更新能够自动执行
调试:可调试行强
测试结果:测试报告、测试数据的统计分析

3)框架的设计思想

可以把自动化测试框架主体分为两部分,一个是内部框架,一个是外部框架,内部框架就是我们自己实现的测试框架代码,外部框架就是抛开我们实现的核心代码,要达到自动化测试框架设计原的一些内容时用到的一些第三方工具。

外部框架:
主要是指以webdriver为核心,辅以外部第三放框架和工具。用以实现持续集成、自动部署、脚本执行、远程调用、报告优化、邮件发送导等功能性框架,实现自动化框架设计原则的一些外围的组件。

内部框架:
也就是分层框架,目的在于更好的优化和管理测试用例,更便捷的进行数据、元素、脚本的维护和更快速的创建新脚本

自动化测试框架设计思路:

通用的外部框架实现逻辑
maven或者tox-自动编译,执行TestNG或junit,集成邮件发送等
TestNG或Junit、pytest,调用webdriver或者发送请求的方法,执行自动化测试用例,规范自动化测试脚本
selenium脚本或者接口用例脚本
reportNG或者allure报告优化模板
main 自动以html邮件通知或者Jenkins发送邮件

内部框架:
层架框架-也就是代码结构优化,根据具体的业务和需求可以大致分为以下几层,有时并不需要下面所有的层次,选取合适自己业务测试的就行。

TestCase层:执行的用例脚本
Task层:公共业务分装,是其他的项目不需要的,只和当前项目相关,比如公共登陆、搜索等业务
-utils层:与业务无关的方法,比如数据驱动-也就进行数据文件的读写、浏览器操作、元素定位方法等进行封装

page层或po层:页面层,页面层主要维护某一个页面的所有元素,对页面的操作、对元素的操作以及和其他页面的交互,业务其实就是一个元素到另一个元素或者一个页面到另一个页面,这就和task层有点重复一般有一个就可以了。
element层:公共元素或者组件的维护,或者自定义组件封装
data层:数据存储
properties层:配置文件、全局变量

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

披荆斩棘,勇往直前,每一次坚持都是迈向胜利的脚步,不放弃的信念将开启通往梦想的大门,奋斗的力量将点亮未来的星辰,绽放出生命的辉煌。

坚持不懈,勇敢前行,努力奋斗的每一刻都是成长的印记,心中的梦想是前行的动力,不放弃的信念将引领你穿越困难,终将获得辉煌的成就。

只要心怀希望,坚持奋斗,无惧困难,每一次的努力都是向成功迈出的关键一步,让梦想的火焰照亮前行的道路,绽放出生命的绚丽之花。

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

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

相关文章

win修改图标自定义QQ桌面图标

当安装了TIM后,想把图标改成QQ 图标见顶部,或通过网盘下载 提取码:9Ayc 操作步骤: 1.桌面右键图标,点击属性 2.选择快捷方式-更改图标 3.浏览选择下载的ico图标即可

2024最新阿里云幻兽帕鲁搭建服务器_Palworld联机多人游戏

玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

Python装饰器:如何访问和设置私有属性?

大家好,今天我和大家聊一聊如何使用装饰器来访问和设置私有属性。 你有没有遇到过这样的场景:你有一个对象,它的属性是私有的,你想要在不影响原有代码的情况下,对这些私有属性进行操作。这时候,装饰器就派…

【JAVA】Servlet开发

目录 HttpServlet HttpServletRequest HttpServletResponse 错误页面 设置网页自动刷新时间 构造重定向相应 js发起http请求 服务器端对js发起的http请求进行处理 前端获取后端数据,添加到当前页面的末尾,代码示例: 前后端交互&…

微信小程序 nodejs+vue+uninapp学生在线选课作业管理系统

基于微信小程序的班级作业管理助手使用的是MySQL数据库,nodejs语言和IDEA以及微信开发者工具作为开发工具,这些技术和工具我在日常的作业中都经常的使用,并且因为对编程感兴趣,在闲暇时间也进行的进行编程的提高,所以在…

Leet code 1658 将x减到0的最小操作数

解题思路:滑动窗口 主要思想:正难逆简 题目需要左找一个数 右找一个数 我们不如直接找中间最长的一连串子数让这串子树和为 数组子树和减去X 找不到就返回 -1 滑动窗口双指针从左端出发,进行 进窗口 判断 出窗口 更新结果四个步骤 代码…

bugreport中查看开发者选项动画时长缩放日志

首先打开开发者选项,抓取一份bugreport解压后找到bugreport-机型-时间点.zip文件,然后再解压此文件 解压后进入该文件,找到bugreport-机型-时间点.txt文件 打开此文件,搜索“animator_duration_scale”关键字,找到图片…

9成省份“鸿蒙化”,它真起来了?

自去年9月华为宣布鸿蒙原生应用全面启动以来,鸿蒙正以不可阻挡之势,快速在全国千行百业的移动应用领域推进。不仅有支付宝、快手、淘宝、京东等超200家头部互联网企业加入鸿蒙生态;2024年以来,上海、浙江、广西等多省市政务民生、…

1.中医学习-总论

目录 1.为什么要学中医 2.什么是中医 介绍 中医例子1: 中医例子2: 中医最高境界“大道至简” 中医讲究的是本质 中医核心:阴阳、表里、寒热、虚实 ​编辑医不叩门 3.阴阳 1.一天中的阴阳 2.一年中的阴阳 3.阴阳之间的关系 4.阴阳四季的变化 …

【vue elementUI】修改el-dropdown样式

实现效果如下&#xff1a; 代码如下&#xff1a; <el-dropdown trigger"click" command"handleCommand" active-text-color"#606266"><span class"product-card">{{getCategoryName(categoryId)}}</span><el-dro…

基于SpringBoot和Vue的图书个性化推荐系统的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的图书个性化推荐系统。 &#x1f495;&#x1f495;作者&#xff1a;李同学 &#x1f495;&#x1f495;个人简介&#xff1a;混迹在java圈十年有余&#xff0c;擅长Java、微信小程序、Python、Android等&#xff0c;大家有这一块的…

代码随想录算法训练营第day29|491.递增子序列、 46.全排列、 47.全排列 II

目录 491.递增子序列 46.全排列 47.全排列 II 491.递增子序列 力扣题目链接 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7,…

Avalon总线学习

Avalon总线学习 avalon总线可以分为&#xff1a; Avalon clock interface Avalon reset interface Avalon Memory mapped interface Avalon iterrupt interface Avalon streaming interface Avalon tri-state conduit interface Avalon conduit interface 1、Avalon c…

【LeetCode热题100】206. 反转链表(链表)

一.题目要求 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 二.题目难度 简单 三.输入样例 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2…

【系统架构设计师】软件架构设计 02

系统架构设计师 - 系列文章目录 01 系统工程与信息系统基础 02 软件架构设计 文章目录 系统架构设计师 - 系列文章目录 文章目录 前言 一、软件架构的概念 ★★★ 二、基于架构的软件开发 ★★★★ 三、软件架构风格 ★★★★ 1.数据流风格 2.调用/返回风格 3.独立构件风格…

PlantUML Integration 编写短信服务类图

PlantUML Integration 写一个类图&#xff0c;主要功能为 1、编写一个serviceSms短信服务类&#xff1b; 2、需要用到短信的地方统一调用基建层的服务即可&#xff1b; 3、可以随意切换、增加短信厂商&#xff0c;不需要更改场景代码&#xff0c;只需要更改application.yml 里面…

搜索二叉树迭代和递归的两种*简单*实现方式

判断搜索二叉树 概念 一棵树所有结点的左节点小于父节点&#xff0c;右节点大于父节点&#xff0c;则为搜索二叉树。 迭代方法 中序遍历二叉树&#xff0c;如果总是升序则是搜索二叉树。如果存在降序&#xff0c;那肯定不是搜索二叉树。 Coding checkTreeOrder()方法 boo…

【Godot4自学手册】第二十六节用GPUParticles2D节点实现地宫入口的奇异光芒

我们的主人公与NPC对话完成后&#xff0c;夜晚来临&#xff0c;在城北有一处乱石岗&#xff0c;出现了奇异光芒&#xff0c;这是地宫的入口&#xff0c;但是有一妖怪把守&#xff0c;我们必须消灭妖怪后才可发现地宫入口。这一节&#xff0c;主要记录利用粒子系统GPUParticles2…

YOLOv9目标识别——环境配置与训练自己的数据集

前言 YOLOv9引入了一种全新的计算机视觉模型架构&#xff0c;相比目前流行的YOLO模型&#xff08;如YOLOv8、YOLOv7和YOLOv5&#xff09;&#xff0c;在MS COCO数据集上取得了更高的mAP&#xff08;平均精度均值&#xff09;。 YOLOv9是由Chien-Yao Wang、I-Hau Yeh和Hong-Yua…

Elasticsearch:调整近似 kNN 搜索

在我之前的文章 “Elasticsearch&#xff1a;调整搜索速度”&#xff0c;我详细地描述了如何调整正常的 BM25 的搜索速度。在今天的文章里&#xff0c;我们来进一步探讨如何提高近似 kNN 的搜索速度。希望对广大的向量搜索开发者有一些启示。 Elasticsearch 支持近似 k 最近邻…