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

目录:导读

    • 前言
    • 一、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.mzph.cn/news/608014.shtml

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

相关文章

作业--day42

界面设计 MyProWin::MyProWin(QWidget *parent): QMainWindow(parent) {/**********窗口主体**********///窗口大小this->setFixedSize(644, 493);this->setWindowTitle("QQ");this->setWindowIcon(QIcon("C:/Users/10988/Downloads/pictrue/pictrue/…

java中实现对文件高效的复制

不多说我们直接上代码: 这个是使用NIO包下的FileChannel和ByteBuffer进行文件的操作的,会比较高效。

JavaScript(WebAPI)

文章目录 1. 什么是 WebAPI2. DOM 基本概念2.1 DOM 树 3. 获取元素3.1 querySelector3.2 querySelectorAll 4. 事件初识4.1 键盘事件 5. 操作元素5.1 获取/修改元素属性5.2 获取/修改表单元素属性5.3 获取/修改样式属性 6. 操作节点6.1 新增节点6.2 删除节点 1. 什么是 WebAPI …

浅谈智慧路灯安全智能供电方案设计——安科瑞赵嘉敏

摘要: 智慧路灯,作为智慧城市、新基建、城市更新的主要组成部分,近些年在各大城市已得到很好的落地和 应用,但其与传统路灯相比集成大量异元异构电子设备,这些设备的供电电压、接口形式、权属单位各不相同, 如何设计一…

Z-library居然来中国了!

提起「Z-Library」的大名,想必有不少朋友是知道的,早在2021年11月该网站遭遇了封站,好在目前已经有了比较稳定的国内直达网址,实测过了几个月还是能够稳定访问。 Z-Library是一个电子图书馆项目,提供世界上最大的免费…

java编程中,保证接口幂等性的实现方案讨论

一、什么是幂等性 数学中的幂等是指f(x) f(f(x)),编程领域的术语是指同一个操作,在重复提交的情况下,最终产生的影响是不变的。举例说: 提交订单时,用户在购物车界面,重复点击“下单”,服务端…

【CUDA】windows下的CUDA安装

一、前言 windows10 下安装 CUDA ,首先需要下载安装包: CUDA toolkit(工具包) 二、安装前的准备 电脑环境检查 通过cmd,输入nvidia-smi 查看自己的驱动版本和支持的CUDA版本,如下图红圈标记位置 下载 …

尤雨溪:框架挖坑靠文档来补,这算 PUA 用户吗?丨 RTE 开发者日报 Vol.122

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务; 2、调优自己的大模型; 选型 采用通义千问模型,https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库:https://www.modelscope.cn/models mkdir -p /data/…

Jmeter 性能 —— 吞吐量与并发用户数关系!

1、吞吐量和并发用户数的关系 2、已知在线用户数为3000,算出对应的并发用户数 ①我们常用的确定并发用户数的公式是: C活动用户数操作时间/系统运行时间 如每天最大在线用户数为3000人,每个用户平均操作时间为1小时,系统运行时…

【后退N帧协议】- 协议应用与局限分析

后退N帧协议是计算机网络通信中常用的一种流量控制协议,用于确保数据的可靠传输。本文将深入探讨后退N帧协议的原理、应用场景及局限性。 后退N帧协议的核心思想是在发送端发送数据时,等待接收端返回的确认信号。发送端每次发送N帧数据,并等…

基于SSM+Vue的学校社团管理系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

C# OpenCvSharp DNN FreeYOLO 人脸检测人脸图像质量评估

目录 效果 模型信息 yolo_free_huge_widerface_192x320.onnx face-quality-assessment.onnx 项目 代码 frmMain.cs FreeYoloFace FaceQualityAssessment.cs 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测&人脸图像质量评估 效果 模型信息 yolo_free_huge_widerfa…

色标在matplotlib和plottable中

是这样的,我有一个数组[-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, 6.4, 12.3],它需要绘制散点图,点的颜色来代表数值大小;同时,也需要在plottable上作为一列显示,同样用颜色来代表数值的大小…

HarmonyOS应用开发学习笔记 ArkTS 布局概述

一、布局概述 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中,需要遵守以下流程保证整体的布局效果 确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大小约束。 二…

【JUC】进程和线程

目录 📢什么是进程?🎡什么是线程?🚀进程和线程的区别?🎢Java 线程和操作系统的线程有啥区别?🎖️JDK21的虚拟线程🎯虚拟线程和平台线程的对比 📢什么是进程? 进程是程序的一次执…

Zabbix“专家坐诊”第223期问答汇总

来源:乐维社区 问题一 Q:Zabbix 5.0安装完mysql之后怎么备份?忘记mysql当时创建的密码了,怎么样能查看设置的密码? A:mysql初始化密码在 /var/log/mysqld.log中可以看到,搜关键字temporary pas…

【算法分析与设计】移动零

题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0…

电能计量芯片RN8209

电能计量芯片RN8209 简介2、操作2.1、复位2.2 模数转换2.3 有功功率2.4 无功功率2.5 有效值2.4 能量计算 RN8209中文手册 点击下载 简介 2、操作 2.1、复位 2.2 模数转换 2.3 有功功率 RN8209 提供两路有功功率的计算和校正,分别为电流 A 和电压有功功率计算和校正…

【笔记------freemodbus】一、stm32的裸机modbus-RTU从机移植(HAL库)

freemodbus的官方介绍和下载入口,官方仓库链接:https://github.com/cwalter-at/freemodbus modbus自己实现的话往往是有选择的支持几条指令,像断帧和异常处理可能是完全不处理的,用freemodbus实现的话要简单很多,可移植…