【0基础也能看懂】从0到1落地接口自动化测试

news2025/2/25 9:07:18

昨天花了几个小时看完了字节XX大佬的《接口测试入门课》,有一些新的收获,结合我自己实践自动化测试的一些经验以及个人理解,这篇文章来聊聊新手如何从零到一落地实践接口自动化测试。

为什么要做接口测试

测试理念的演变

早些时候,软件研发交付流程大多遵循V型或W型的瀑布模式,这种模式下只有开发编码完成才会提测进入测试验证阶段。这个阶段测试同学做的大多是基于业务流程和页面的功能测试工作,也就是我们自嘲的“点工”。

近几年随着业务迭代速度加快,以及测试行业的不断发展,像测试左移、敏捷测试等理念开始被更多的人认可。从软件工程的角度来说,越早介入发现问题和风险,修复的成本越低,最终交付的质量也越高。

前几年自动化测试最火爆的时候,很多同学应该都知道测试金字塔模型。见下图:

按照某些理论或大厂的最佳实践,UI:API:UNIT层的自动化测试占比应该是1:2:7,原因如下:

  • UI:维护成本高,介入时间较晚,收益最小;

  • API:维护成本适中,可以尽早介入,覆盖的场景也较多;

  • UNIT:维护成本最小,可以更早介入,测试粒度最小,收益最高(至于谁来写单元测试,当然是开发啊);

技术要求的提升

国内大部分测试同学在技术上来说相比于开发,是要弱上不少的。为了不断提升软件系统的交付质量,需要尽可能扩大测试覆盖的场景和测试的深入程度,这对测试同学的技术有了更高的要求。

随着系统复杂度提升,同时像微服务、云原生、server mesh等新技术的应用,为了了解被测对象以便更好的开展工作,测试这个岗位的技术要求也越来越高。从一开始的UI层面的测试,开始不断向下探,API层的测试在日常工作中的占比越来越高也是演进的一个必然趋势。API测试还有2个特性:

  • 相比于UI层测试可以更早介入,向上可以不断加大UI层的覆盖广度;

  • 相比于UNIT层测试难度更低点,向下可以逐渐覆盖一些公共接口的单元测试;

既提升了技术逼格,又能做产出KPI,同时还提升了软件的交付质量,一箭三雕,赢麻了。

理解接口和接口测试

如何理解接口?

简单来说,接口就是一个中介,负责界面层的业务场景和代码层的实现逻辑交互转化。

接口遵循一定规则和约束,输入特定数据会返回特定数据,输入和输出的逻辑需要事先约定。

接口之间互相调用也需要遵循一定的规则,这个规则就是网络协议,如:http协议、tcp协议,rpc协议。

如何理解接口测试?

接口测试就是对约定好的输入输出逻辑进行测试和校验,和功能测试一样也需要设计测试用例。设计测试用例的方法和功能测试没太多区别,同样需要考虑等价类边界值判定表法以及异常场景。当然,接口测试还需要考虑性能、安全等因素,不过这就是其他细分测试领域了,这里暂且不表。

如何学习接口测试?

学习接口测试的大前提是了解不同类型接口的结构,因此网络协议是必学项。相关书籍如下:

  • 入门了解:《图解HTTP》、《图解TCP/IP》

  • 深入学习:《HTTP权威指南》、《TCP/IP权威指南》

了解接口的结构后,还需要学习一些接口测试相关的工具,业内常用的工具如下:

  • 抓包工具:Fiddler、Charles

  • 测试工具:Jmeter、Postman

  • 接口生成管理工具:Yapi、Swagger

UI/API/UNIT测试的区别

UI、API、UNIT测试有各自不同的特点,概括总结的话区别如下:

  • UI测试:业务流程测试;

  • API测试:业务数据流测试;

  • UNIT测试:业务实现逻辑测试;

如何落地接口自动化测试

在讨论新手从零到一落地接口自动化测试之前,我想先抛出我的几点建议:

  • 从零开始,不要直接去学习所谓的自动化框架;

  • 学习框架之前,很有必要学习网络协议和编码知识;

为什么这么说?新手一般技术基础不太扎实,且没有太多编码实践,直接学习框架特别容易一步一个坑。见过太多新手直接学框架,出现了诸如安装失败,报错看不懂,不会调试等等很多现象。还有部分同学对代码编辑器不会用,看不懂日志,不会封装等问题。

从零开始学习落地接口自动化,或者说其他自动化测试,我更建议从易到难的去落地实践,这样一方面可以在日常工作中优先保证工作的完成,提升工作效率;另一方面就像打怪升级一样,从易到难去学习提升自己,并不断优化自动化测试在工作中的实践。

从一到难落地实践接口自动化测试,大概可以遵循如下几个步骤:

  • 学会用工具进行接口测试(如jmeter/postman);

  • 学会用持续集成工具(如jenkins)将接口测试脚本批量执行;

  • 学会诸如git/gitlab等版本和源代码管理的工具,便于团队多人协作;

  • 学习一门编程语言,利用自动化测试框架将工具脚本转化为代码脚本;

  • 学习将公共部分封装,优化代码结构,提高写代码脚本的效率,降低维护成本;

  • 学习数据参数化管理的方法,可以从Excel——配置文件——数据库——造数工厂这个方向迭代;

  • 尝试按照业务线和测试场景区分脚本集合,然后引入mock,降低服务间的调用依赖,提高执行效率;

  • 开始画大饼,造轮子,搞KPI,开发自动化测试平台;

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

绵薄之力【学习资源分享】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~

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

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

相关文章

【Python入门第十四天】Python 集合

集合(Set) 集合是无序和无索引的集合。在 Python 中,集合用花括号编写。 实例 创建集合: thisset {"apple", "banana", "cherry"} print(thisset)运行实例 注释:集合是无序的&#…

Kubeadm介绍与使用Kubeadm搭建kubernetes集群环境

Kubeadm介绍 1.通俗点讲,kubeadm跟minikube一样,都是一个搭建kubernetes环境一个工具; 区别在于:minikube是搭建单机kubernetes环境的一个工具 kubeadm是搭建集群kubernetes环境的一个工具,这个常用; 2.对…

DocEE:一种用于文档级事件抽取的大规模细粒度基准 论文解读

DocEE: A Large-Scale and Fine-grained Benchmark for Document-level Event Extraction 论文:NAACL2022.pdf (tongmeihan1995.github.io) 代码:tongmeihan1995/DocEE: DocEE: A Large-Scale and Fine-grained Benchmark for Document-level Event Ext…

ABAP 辨析ON INPUT|REQUEST|CHAIN-INPUT|CHAIN-REQUEST

1、逻辑流 在屏幕开发中,存在如下逻辑流: PBO(Process Before Output):屏幕输出之前触发 PAI(Process After Input):用户在屏幕中执行操作触发 POH(Process On Help-…

5.8 BGP属性-AS-PATH

5.4.2配置BGP AS-PATH属性控制选路 1. 实验目的 熟悉BGP AS-PATH属性控制选路的应用场景掌握BGP AS-PATH属性控制选路的配置方法2. 实验拓扑 实验拓扑如图5-8所示: 图5-8:配置BGP AS-PATH属性控制选路 3. 实验步…

DADPS-Biotin-Alykne|2241685-22-1|DADPS生物素炔烃

DADPS(二烷氧基二苯基硅烷)生物素炔烃探针消除了链霉亲和素-生物素亲和纯化的主要限制。该试剂含有生物素部分和叠氮化物反应部分。DADPS 探针可用于生物分子标记和蛋白质组学研究。 DADPS biotin alkyne probe eliminates the main limitation of affin…

【Linux】软件安装(三)

目录 1. 软件安装 1.1 软件安装方式 1.2 安装JDK 1.3 安装Tomcat 1.4 安装MySQL 1.5 安装lrzsz 1. 软件安装 1.1 软件安装方式 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 安装方式特点二进制发布包安装…

基于springboot校园二手市场平台

一、项目简介 本项目是一套基于springboot校园二手市场平台,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,确保…

YOLOv6-3.0-目标检测论文解读

文章目录摘要算法2.1网络设计2.2Anchor辅助训练2.3自蒸馏实验消融实验结论论文: 《YOLOv6 v3.0: A Full-Scale Reloading 》github: https://github.com/meituan/YOLOv6上版本参考 YOLOv6摘要 YOLOv6 v3.0中YOLOv6-N达到37.5AP,1187FPS&…

安装配置RabbitMQ(Win11)

一、安装依赖Erlang打开RabbitMQ官网:https://www.rabbitmq.com/点击Get Started点击Download Installation点击 Chocolatey or Installer点击? Erlang/OTP Version Tree点击win64下载完成后,右击“以管理员身份”安装配置Erlang环境变量 :…

linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发的?

文章目录65535从哪来的,干啥的?最大并发tcp连接数是多少呢?如何标识一个TCP连接client最大tcp连接数server最大tcp连接数实际的tcp连接数0102TCP怎么建立连接,与端口号是什么关系?(1)Linux服务器…

【分享】订阅万里牛集简云连接器同步企业采购审批至万里牛系统

方案场景 面临着数字化转型的到来,不少公司希望实现业务自动化需求,公司内部将钉钉作为办公系统,万里牛作为ERP系统,两个系统之前的数据都储存在各自的后台,导致数据割裂,数据互不相通,人工手动…

springboot 自动注入源码分析spring.factories

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、铂金手写starter组件,开源starter组件结构 1.项目层级 2. 各个项目引入关系 3.项目侧使用 二、星耀源码跟踪分析 1.SpringApplication.run开…

sHMIctrl智能屏幕使用记录

手上有个案子,“按压机器人”,功能是恒定一个力按下一定时间。 屏幕选型使用“sHMIctrl”,一下记录使用过程中遇到的问题以及解决方法。 目录 问题1:按键控件做定时触发,模拟运行时触发不了。 问题2:厂家…

数字IC设计工程师是做什么的?

随着我国半导体产业的发展,近几年的新入行的从业人员,除了微电子相关专业的,还有就是物理、机械、数学、计算机等专业,很多人对这一高薪行业充满了好奇,那么数字IC设计工程师到底是做什么的? 首先来看看数…

Vue3.x+Element Plus仿制Acro Design简洁模式分页器组件

Vue3.xElement Plus仿制Acro Design简洁模式分页器组件 开发中难免会遇到宽度很窄的列表需要使用分页器的情况,这时若使用Element Plus组件的分页器会导致分页器内容超出展示的区域,而Element Plus组件中目前没有Acro Design那样小巧的分页器&#xff08…

AWS 中文入门开发教学 43- Cloud9 - 云端集成开发环境(IDE)

知识点 Cloud9 - 云的集成开发环境(IDE)的基本介绍 官网 https://aws.amazon.com/cn/cloud9/ 功能 只需一个浏览器即可进行编码,无需配置各种开发环境实时共同编写代码,团队协作直接通过终端访问AWS资源迅速开始新项目无缝集成CodeSeries(Commit,Bu…

vscode报错Vetur can‘t find ‘tsconfig.json‘ or ‘jsconfig.json‘

文章目录问题描述解决办法方案一方案二方案三方案四问题描述 今天启动vscode的时候发现vetur插件需要更新,重新加载以后点击 .vue后缀的文件发现就会弹出如下报错,并且此时写代码没有代码提示!! 用提示快捷键一直显示正在加载… …

日日顺于贞超:供应链数字化要做到有数、有路、有人

在供应链行业里面,关于“数字化”的讨论绝对是一个经久不衰的话题。 但关于这个话题的讨论又时常让人觉得“隔靴搔痒”,因为数字化变革为非一日之功,对于企业来说意味着投入和牺牲。企业既怕不做怕将来被淘汰,又怕投入过高、不达预…

适合运动的无线蓝牙耳机有哪些,运动无线蓝牙耳机推荐

最为适合运动的无线蓝牙耳机还是骨传导耳机最为合适,骨传导耳机在运动当中使用不仅更加安全,在耳机的佩戴方式上也是十分舒适的,开放式的佩戴设计,即使是长时间运动使用也依旧能够保证耳道舒适、佩戴牢固,下面就分享几…