爆肝整理,接口测试+为什么要做接口测试总结,策底贯通...

目录:导读

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


前言

1、什么是接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

一般来说,测试接口,就是指测试接口的功能,性能和稳定性测试,当然可能还有安全性测试。这个入门系列会让你掌握接口的功能测试。

一般,来说我们听说到的接口基本上都是指HTTP或者HTTPS协议的接口测试,也就是一些web服务请求。

一个软件项目中,有很多接口,少的有几十个,多的有几百上千个接口。这个时候,我们没有软件界面,没有具体的测试场景,只有一个接口描述文档。我们需要把接口这样抽象的东西,通过软件测试的理论和方法去测试接口,找出接口的功能和安全性的缺陷。

接口有内部接口和外部接口。内部接口就是开发人员自己开发的接口。外部接口,好比网站调用微信支付和支付宝支付接口。还有一些模块与模块之间的接口。

2、为什么要做接口测试

1)现在很多系统前后端架构是分离的,因为不同端(前段,后端)的工作进度不一样,所以我们要针对最开始出来的接口,以及需要调用其他公司的(银行,支付宝,微信,qq等)一些接口进行接口测试及验证数据。

从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

2)如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移也叫测试左移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。

例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。

测试左移的原则支持测试团队在软件开发周期早期和所有干系人合作。因此他们能清晰地理解需求以及设计测试用例去帮助软件“快速失败”,促使团队更早的修改所有的bug。

测试左移并没有什么独特的,只是让测试人员在软件开发生命周期内更早的参与进来,同时让他们去理解需求、软件设计、软件架构以及软件功能,也让他们去向客户、商业分析师和开发人员问问题,寻找答案,提供反馈结果已达到支持团队的工作得可能性。

3、金字塔模型

1)越底层,越稳定
金字塔主要观点认为单元测试的稳定性高,需要多投入。

2)越底层,越高效
程序的问题,最终还得落在具体的代码上,所以底层的测试更容易发现问题。

3)越底层,越低成本
越底层测试能越早发现问题,越早发现问题,修复的成本自然越低。

4)越底层,越难实施。
越底层的实现对技术专业性要求越高,这点跟第三点有点矛盾,往往越专业的人才也意味着人力成本越高。

接口将前端和后端进行很好的分离,帮前后端实现数据交互,这样在项目初期就可以和前端工程师讨论需要的后端数据,然后后端根据需求开发后接口,将数据返回给前端,测试人员提前进入测试接口,前后端然后在各自开发自己模块。

项目迁移,以及后期维护,接口带来的便利性,试想一下,如果没有项目交付以后,后端人员将数据库的某个字段的长度、类型修改后发版,而由于某些原因没有及时通知前端工程师,而此时前端的获取的这个字段的类型、长度是以前的,那么就可能引发线上事故。

如果前端技术牛叉,存储获取字段是一个变量,工作量还小点。只需要改变变量类型、长度即可。

如果是一个差一点的没有用变量,而前端又是好几百个页面都用到这个字段,这样就造成后果无法想象的,但是用到接口就有不一样了,如果出现类似的情况,后端人员只需要将这个字段通过接口做处理是返回的字段保持一致即可,也就是分分钟的事,可能用户都没有察觉就修复了。

而且前端、后端、测试也很好排查问题,跑一下接口,查看接口文档返回数据有差异,修给接口就可以,这样处理问题效率也会大大提高。

简单总结:

①越底层发现bug,它的修复成本是越低的。
②前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。

③检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。

④如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

⑤接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

⑥现在很多系统前后端架构是分离的,从安全层面来说:

只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有坚持不懈的努力,才能抵达成功的彼岸;每一天都是你改变命运的机会,勇往直前,无所畏惧。相信自己,追逐梦想,创造出辉煌的未来!

困境是成长的催化剂,挑战是奋斗的动力。无论前路多么坎坷,只要心怀信念和毅力,坚持不懈地追求,成功将会属于你!

每一次尝试,都是收获成长的机会;每一步探索,都是迎来成功的开端。只要不停前行,坚定信念,实现梦想不再遥远!

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

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

相关文章

【Leetcode】707. 设计链表

707. 设计链表 代码 【Leetcode】707. 设计链表 代码 type MyLinkedList struct {Val intNext *MyLinkedList }// 创建链表,需要返回一个链表结构体,因此该链表是一个有头单链表,头结点不为空 func Constructor() MyLinkedList {return MyLi…

dp--198.打家劫舍/medium 理解度B

198.打家劫舍 1、题目2、题目分析3、解题步骤4、复杂度最优解代码示例5、抽象与扩展 1、题目 一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻…

创建Vue3项目

介绍 使用命令创建vue3项目 示例 第一步:执行创建项目命令 npm create vuelatest第二步:填写输入项 第三步:进入study-front-vue3文件夹 cd study-front-vue3第四步:执行npm命令安装依赖 npm install第五步:运行…

YOLO蒸馏原理篇之---MGD、CWD蒸馏

一、MGD蒸馏 论文地址:https://arxiv.org/abs/2205.01529 论文翻译:https://mp.weixin.qq.com/s/FSvo3ns2maTpiTTWsE91kQ 1.1 摘要 知识蒸馏已成功应用于各种任务。当前的蒸馏算法通常通过模仿教师的输出来提高学生的表现。本文表明,教师还可以通过指导学生的特征恢复来提…

60.网游逆向分析与插件开发-游戏增加自动化助手接口-游戏公告功能的逆向分析与测试

内容来源于:易道云信息技术研究院VIP课 上一个内容:文字资源读取类的C还原-CSDN博客 码云地址(master分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:878db7708de09b448010ef54526fe…

爬虫-3-模拟登录,代理ip,json模块

#本文仅供学习使用(O`) 如果服务器响应的数据为json数据: 那么我们可以用 res.json() 或 json模块(将json字符串转换为Python里面的字典类型) 接收数据。

安全防御之安全审计技术

安全防御中的安全审计技术是保障信息系统安全的重要手段之一。其主要目标是对信息系统及其活动进行记录、审查和评估,以确保系统符合安全策略、法规要求,并能够及时发现潜在的安全风险和异常行为。通过安全审计,可以对系统中的各种活动进行记…

高德地图Web服务使用方法——电子围栏

1 高德地图Web服务 1.1 添加Key 注册高德地图,进入控制台,创建新应用,添加Key,选择Web服务,不添加域名白名单,勾选同意政策。 刷新界面,记住获取到的Key。 1.2 下载安装Postman https://www…

Linux who命令教程:如何查看当前登录的用户信息(附实例详解和注意事项)

Linux who命令介绍 who命令用于显示系统中当前登录的用户信息。它可以提供用户ID、使用的终端机、从哪里登录的、登录时间等信息。 Linux who命令适用的Linux版本 who命令在大多数Linux发行版中都可以使用,包括但不限于Ubuntu、Debian、Fedora、CentOS等。如果在…

线性代数 --- 矩阵行列式的性质

Determinant det A|A| 矩阵的行列式是一个数,这个数能够反应一些关于矩阵的信息。行列式只对方阵有效。 若矩阵A为: 则A的行列式为: 性质1: 单位矩阵的行列式等于1 性质2:行与行之间的交换会改变det的正负号 以2x2单位…

01flex布局

flex 布局 使用方式 容器 也称弹性盒子,可以根据屏幕大小自动适应,只有一个; 子项目 容器内的直接子元素,可以有多个 主轴 Flex容器的主要方向,由 flex-direction 属性定义。可以是水平方向(row 或 row-reverse&#…

Qt OpenGL中渲染和画图的相互理解

在Qt编程(或者别的图形编程中),我们很容易理解画图,一般用draw之类的函数,画圆,画线,画点,画复杂图形,画图片等2D图形。 在某种程度上,渲染和画图可以理解为相似的概念,都是将图形或图像呈现在屏幕上的过程。所以我们也可以说3D渲染其实就是3D画图。但是呢,这样表…

【SQL】加快SQL查询的九种优秀实践

1.只检索需要的列 对于那些所谓的数据库开发老司机而言,他们会有一个常见的SQL习惯:在编写查询代码时,频繁地使用SELECT *,一次性列出所有可能需要的数据列。显然,如果查询一个存储了一百多列的数据表的所有列,您可以想象会发生什么?毕竟在真实的系统应用环境中,这样的…

Vue知识总结-中

VUE-生命周期 生命周期概述 生命周期也常常被称为生命周期回调函数/生命周期函数/生命周期钩子生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数生命周期函数的名字不能更改,但函数的具体内容是由我们程序员自己编写的生命周期函数中的this指向是vm或组件实例对象 生命周…

【软件测试】学习笔记-如何做好测试计划

本篇文章将为你介绍一份成功的测试计划应该包含哪些内容,以及如何才能做好测试计划。 软件项目,通常都会有详细的项目计划。软件测试作为整个项目中的重要一环,也要执行详细的测试计划。正所谓运筹帷幄之中,决胜千里之外&#xf…

【开题报告】基于微信小程序的母婴商品仓库管理系统的设计与实现

1.选题背景 随着社会经济的发展和家庭生活水平的提高,母婴商品市场逐渐兴起。然而,传统的母婴商品仓库管理方式存在着许多问题,如信息不透明、操作繁琐等。为了提高仓库管理的效率和准确性,基于微信小程序的母婴商品仓库管理系统…

Pointnet++损失函数改进:Focalloss | 助力解决正负样本比例不均衡问题

简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入Focalloss损失函数,解决正负样本比例不均衡问题。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一…

解决在test以外的目录下导入junit无效

以上引用来自src目录下的文件,可以看到,和junit有关的导入都飘红,但明明junit已经被正确导入进了项目中。 再看右侧的Maven的依赖下方,junit的右边有一个很不起眼的(test) 这是因为junit作为测试框架,可能包含仅适用于…

杰发科技AC7840——CAN通信简介(2)

1.时钟频率 2.位时间 3.采样点 4.消息缓冲区 和ST、NXP的邮箱类似,AutoChips用了缓冲区的概念。 5.接收缓冲区 屏蔽掉demo程序的发送,只看接收情况 在回调中接收数据 先判断是不是进了接收中断 接收数据的处理函数 所有buff数据放到Info buff的内容 BUF…

NumPy 高级教程——性能优化

Python NumPy 高级教程:性能优化 在处理大规模数据集或进行复杂计算时,性能是关键的考虑因素。NumPy 提供了一些工具和技巧,帮助用户优化代码以提高执行效率。在本篇博客中,我们将深入介绍 NumPy 中的性能优化技术,并…