8年测试总结,正确的自动化测试实施-单元/接口/Web自动化...

news2024/11/18 7:35:41

目录:导读

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


前言

今天给大家分享自动化测试到底该怎么做?

1、软件测试三层金字塔

在讲自动化测试前,大家都知道软件测试的分层模型,“三层金字塔”,分为单元、服务和UI三个层级。

尽管大家对此的具体描述各不相同(有人将三层分别定义为单元、接口、集成测试;也有人将整个金字塔划分为4-5个层级),但金字塔自底向上的结构是大家公认和遵循的。

1)单元测试

单元测试是针对代码单元(通常是类/方法)的测试,单元测试的价值在于能提供最快的反馈,在开发过程中就可以对逻辑单元进行验证。

好的单元测试可以帮助改善既有设计,在团队掌握TDD的前提下,单元测试能辅助重构,帮助提升代码整洁度。

2)接口测试

接口(API)测试是针对业务接口进行的测试,主要测试内部接口功能实现是否完整。比如内部逻辑是否正常、异常处理是否正确。

接口测试关注的重点更多在于数据层面,如数据处理,数据状态,数据传递。

接口测试的主要价值在于接口定义相对稳定,不像界面或底层代码会经常发生变化,所以接口测试比较容易编写,用例的维护成本也相对较低。

在接口层面准备测试的性价比相对较高。手动进行接口测试的常用工具有Postman,浏览器F12调试工具。

3)UI测试

UI测试从用户的角度验证产品功能的正确性,测的是端到端的流程,并且加入用户场景和数据,验证整个过程是否流畅。

有时候在UI测试时,还会进行集成测试,集成测试的业务价值最高,它验证的是一个完整的流程,但因为需要验证完整流程,在环境部署、准备用例及实施等方面成本较高,实施起来并不容易。

2、自动化测试三种类型

前面我们了解到了软件测试的三层模型,所以自动化测试也是基于这三层模型进行展开的,我们可以在单元测试阶段进行单元自动化测试,接口测试阶段进行接口自动化测试,在UI测试阶段进行UI自动化测试。

1)单元自动化测试

因为单元测试关注的重点更多在于代码的实现与内部逻辑,所以要想进行单元自动化测试,对测试开发工程师的代码能力要求比较高。

对于不同的开发编程语言,有对应的单元测试框架,比如Java有Junit、testNG。C#有Nunit。Python有UnitTest、Pytest。Go有testing、GoConvey、GoStub、GoMock、GoMonkey。

运用这些测试框架,再结合一些自动化测试(脚本)平台,CI流水线运行单测插件等我们就可以进行单元自动化测试了。

2)接口自动化测试

接口自动化当中,可以构造三种接口自动化case,分别是单接口、场景、diff自动化case。

单接口自动化case顾名思义就是对单个接口构造自动化case,包含请求方式,接口名和接口路径,传参,预期返回结果。

在校验预期返回结果时通常是会进行断言,常用的断言方式可以选择键值对(键为返回的字段名,值为返回的数据),JSONSchema和Yaml。

场景自动化case则是将多个单接口自动化case根据业务场景集成起来,能够发现业务场景下的接口问题,比如超时,上下游异常等。

diff测试简单来说就是比对相同接口在不同版本/不同环境下面的返回内容是否符合预期,diff测试目前很多互联网大厂已经在采用,我们在写自动化case同样要构造diff自动化case,构造的方法和单接口自动化case相同,只是我们需要不同的环境URL地址进行对比。

如果使用Java语言,可选择TestNG或者RESTAssured作为测试管理框架,搭配Maven+HttpClient+Jenkins+Allure/ReportNG测试报告+MyBatis+mock+springboot可以开发一套基于Java的接口自动化测试平台。

如果使用Python语言,接口自动化测试管理框架可以是Pytest/Unitest/Airtest/RobotFramework四选一。
搭配Requests库+PyMySQL+Allure测试报告+Flask/Django可以开发一套基于Python的接口自动化测试平台。

3)UI自动化测试

无论是Web端还是App端,UI自动化测试都是基于页面元素的识别和定位来模拟用户行为。UI自动化测试工具常见的有Appium,Selenium,搭配Pytest或者Airtest测试管理框架,可以开发出一套UI自动化测试平台。

自动化测试是一种比手工测试更快发现问题的手段,它能够提高测试效率和质量,近几年来互联网大厂针对人工智能领域,利用机器学习和深度学习算法做了许多探索,如用例自动生成,问题自动分析等等,学会自动化测试还是很有必要性。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不论起点如何,只要心怀梦想,坚持努力,就能穿越困难,登上巅峰。勇往直前,超越自我,展现出属于自己的璀璨光芒,创造无限可能!

生命中最重要的,不是你遇到了什么,而是你如何去面对和解决。勇敢前行,坚持不懈,相信自己,你就能够征服全世界!

奋斗的路上,虽有艰辛与挫折,但只要心怀信念,坚持不懈,努力拼搏,就能超越自我,创造出属于自己的辉煌人生!

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

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

相关文章

【STM32】| 02——常用外设 | I2C

系列文章目录 【STM32】| 01——常用外设 | USART 【STM32】| 01——常用外设 | I2C 失败了也挺可爱,成功了就超帅。 文章目录 1. 简介2. I2C协议2.1 I2C物理连接2.2 I2C通信协议2.2.1 起始和停止信号2.2.2 数据有效性 1. 简介 I2C是一种常用的串行通信总线&#…

一分钟带你了解--电商控价

电商行业发展至今带来了许多机遇,但同时也伴随着一些挑战。品牌电商在运营过程中,面临着诸如乱价、低价、窜货和假货等问题,这些问题不仅损害了品牌的形象和价值,也破坏了市场秩序,侵害了消费者的权益。 电商控价是解…

7.3 数据库的基本查询

数据库的基本查询 1. 提要2. 简单查询3. 高级查询3.1 数据分页_limit3.2 排序_order by3.3 查询去重_distinct 4. 条件查询 1. 提要 2. 简单查询 3. 高级查询 3.1 数据分页_limit 3.2 排序_order by 3.3 查询去重_distinct 4. 条件查询

Day30 78子集 90子集II 491非递减子序列

78 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 注意…

Finder扩展Easy New File功能介绍

asy New File是一款适用于Mac的实用软件,用于快速创建新文件和文件夹。以下是它的一些主要功能: 📂 快速创建文件夹:Easy New File允许您通过右键点击桌面或Finder窗口来快速创建新文件夹,省去了手动打开菜单的步骤&a…

如何解决spy++无法捕获窗口消息问题

问题: spy无法捕获窗口消息。 64位软件,windows11系统。 直接使用visual studio 工具->Spy运行。 解决: Spy 调试工具简介 - Visual Studio (Windows) | Microsoft Learn 也就是说32为软件需要使用32为spy,进程名称是spyxx…

Notepad++运行C语言输出乱码

编码-编码字符集-中文-GB2312 这时原程序中文会变成乱码,我是重新输入中文 重新编译执行即可

外汇天眼:模拟大赛报名人数突破一万大关

🔥🔥🔥 第二届模拟交易世界杯模拟交易赛区:截止到2024年1月15日上午9:58:06 报名人数已突破10000大关,累计模拟交易人数突破6800,日均模拟交易人数达1100,累计模拟交易金额超650亿,…

Nodejs基础3之fs模块的文件重命名和移动、文件的删除、文件夹操作、查看资源状态、fs路径

Nodejs基础二 fs模块文件重命名和移动文件的重命名文件的移动同步重命名和移动 文件的删除使用unlink进行删除unlink异步删除unlinkSync同步删除 使用rm进行删除rm异步删除rmSync同步删除 文件夹操作创建文件夹递归创建文件夹 读取文件夹删除文件夹rmdir删除文件夹删除递归文件…

记录centos7.9 离线安装fastllm 编译遇到的问题

centos7.9 安装fastllm 编译步骤 Step1安装cmake: 参考: https://bitsanddragons.wordpress.com/2022/09/19/error-cmake-3-1-or-higher-is-required-you-are-running-version-on-centos-7-x/ ​ 问题1:/lib64/libstdc.so.6: version GLIBCXX_3.4.20‘ not found …

request entity too large

1、分2中情况。 (1)带413 请求文件太大(不包含参数) 413 Request Entity Too Large (2)不带413 请求实体太大(包含参数,文件等) 客户端发送的实体主体部分比服务器能…

GoZero微服务个人探索之路(三)Go-Zero官方rpc demo示例探究

官方网址:https://go-zero.dev/docs/tasks/cli/grpc-demo 项目结构 demo包 两个文件均为protoc-gen-go-grpc自动生成构成一个完整的 gRPC 服务的定义和实现 democlient包 demo.go goctl生成的客户端代码 Request 和 Response 别名: 定义了 Request 和…

springboot+mysql大学生就业推荐系统-计算机毕业设计源码01535

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对学生就业管理等问题,对学生就业…

【CGAL系列】---Mesh修复

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享CGAL中关于Mesh修复问题,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步! 你的点赞就是我的动…

Java中单体应用锁的局限性分布式锁

互联网系统架构的演进 在互联网系统发展之初,系统比较简单,消耗资源小,用户访问量也比较少,我们只部署一个Tomcat应用就可以满足需求。系统架构图如下: 一个Tomcat可以看作是一个JVM进程,当大量的请求并发到达系统时&…

使用php代码调用jar包里面的类方法的实战操作

#php调用jar包# 需求说明 接到一个需求,网站是使用php开发的帝国cms,现接到需求是需要对接一个系统 ,但系统里面有一个数据加密字段,需要使用jar包进行加解密。 技术解决方案,资源包解决一切。下载就行了&#xff0…

Springboot整合Redission分布式锁使用实例

Springboot整合Redission分布式锁 引言:实际项目中,我们经常会遇到一些需要考虑使用分布式锁的场景,以防止页面重复请求或者多系统之间相互重复调用的产生业务偏差的问题; 例如: 1.并发的场景下,生成订单需…

LeetCode刷题---基本计算器

解题思路: 根据题意,字符串中包含的运算符只有和- 使用辅助栈的方法来解决该问题 定义结果集res和符号位sign(用于判断对下一数的加减操作),接着对字符串进行遍历。 如果当前字符为数字字符,判断当前字符的下一个字符是否也是数字字符&#x…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (2) | 图像分类与损失函数

前言 📚 笔记专栏:斯坦福CS231N:面向视觉识别的卷积神经网络(23)🔗 课程链接:https://www.bilibili.com/video/BV1xV411R7i5💻 CS231n: 深度学习计算机视觉(2017&#xf…

深度学习 Day25——J4 ResNet与DenseNet结合探索(DPN)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同学的学习圈子 文章目录 前言1 我的环境2 pytorch实现DPN算法2.1 前期准备2.1.1 引入库2.1.2 设置GP…