接口自动化测试的概述及流程梳理~

news2025/1/10 11:33:42

接下来开始学习接口自动化测试。

因为之前从来没接触过,所以先了解一些基础知识。

1.接口测试的概述

2.接口自动化测试流程。

接口测试概述

接口,又叫API(Application Programming Interface,应用程序编程接口),用于系统与系统或代码模块与模块之间的交互和数据传输。
代码内部模块与模块之间的接口,叫程序接口。
系统与系统之间,通过网络数据的传递进行交互,叫做协议接口。
接口测试,即对接口之间交互和数据传输的稳定性、正确性等方面进行测试。一般指协议接口。

为什么要做(自动化)接口测试?

1、由于现在各个系统的复杂度不断上升,导致传统的测试方法成本上升且测试效率大幅下降,而接口测试相对于UI测试更加稳定,且相对容易实现自动化持续集成,可以减少人工回归测试的时间成本,缩短测试周期。

2、接口测试可以更早的介入到项目开发中,一般只要接口定义好了,就可以写代码了。而功能测试必须要等系统提供可测的界面后才能进行。

3、相对于UI测试(某些测试环境搞起来贼麻烦)来说,接口测试可以更简单全面地覆盖到底层的代码逻辑,从而发现一些隐藏bug。

4、从安全层面来说,现在大部分系统前后端框架是分离的,只依赖前端进行限制已经不能满足系统的安全要求,需要后端同步进行控制,所以测试也需要从接口层面进行验证。

5.越来越多的团队开始接收DevOps所倡导的高度协同,研发、测试、运维及交付一体化的思维,对测试效能提出了更高的要求。

接口测试原理

模拟客户端向服务器发送请求,服务器接收后进行处理并向客户端返回应答,客户端再接收应答的过程。

测试范围

业务功能(包括正常、异常场景是否实现)
业务规则(覆盖度是否全面)
参数验证(边界、业务规则是否达到要求)
异常场景(重复提交、并发提交、事务中断、多机环境、大数据量测试)
性能测试(响应时间、吞吐量、并发数、资源要求)
安全测试(权限验证、SQL注入等)

接口自动化测试流程

1、熟悉业务和需求,评估可行性和测试范围

并不是所有的业务都适合自动化,需要评估可行性、性价比、可持续性等等。比如一个项目,只做1.0版本,做完就结束了,还做什么自动化?

2、确定方案。

具体业务具体分析,与团队完成最适合的工具选型。

常用的方案有:

①现成的开源工具:postman/jmeter等

②一些第三方平台(收费的)

③自己公司开发自动化测试平台(少,且平台质量很难把控)

④代码编辑自动化框架,pytest等

3、设计自动化测试执行框架搭建。

什么是框架?就是让接口测试脚本运行的一整套环境,包括脚本语言、工具、测试用例、执行策略、测试报告、日志收集、数据分析、报告可视化等。

4、执行测试

通过我们设计的框架执行测试用例,在过程中需要持续关注整个框架可优化的点。主要流程为:发送请求–获取结果–解析结果

5、输出测试报告

同样通过测试框架输出测试报告,报告应该注意要结果明确、结构清晰

6、持续集成

对接口测试而言,持续集成是自动化的关键。在初步实现接口自动化测试之后,还需要持续的加强自动化程度。

①流程方面:在过程中不断加强接口异常场景覆盖度,并逐步向系统测试、冒烟测试方面延伸,最终达到全流程自动化

②结果展示:更加丰富的结果展示、数据统计、质量分析等。

③问题定位:通过报错信息、日志、截图等手段,降低开发定位问题的难度。

④结果校验:不断提高结果的自动化校验能力,如数据库信息校验。

⑤拓展:向性能测试/安全测试等方向拓展,通过自动化手段监控接口性能指标是否正常。

环境准备

开始系统学习前需要准备一些环境。

python环境
安装pytest、requests库
了解一款抓包工具,例如fiddler,charles
postman/jmeter安装

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

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!      

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

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

相关文章

Java“牵手”天猫商品详情数据,天猫商品详情接口,天猫API接口申请指南

天猫平台API是天猫应用程序编程接口的缩写,它是一套允许程序员从他们的应用程序中访问天猫网站上数据的规范。通过API,程序员可以编写能够与天猫网站交互的程序,从而绕过网页浏览器的限制,直接访问和操作数据。 天猫平台API可以提…

模拟考试系统提升备考效果和成功机会

备考是每位参加考试的学生都非常重视的阶段。为了提高备考效果和增加成功机会,模拟考试系统是一种非常有效的工具。 备考对于任何一位参加考试的学生来说都是至关重要的阶段。无论是应对学校期末考试、入学考试还是国家级考试,备考都需要充分的准备和调…

怎样建立一个班级查分系统?

在现代教育中,建立一个高效的班级查分系统对于老师和家长们来说至关重要。物种草作为一款功能强大的在线教育工具,为教师们提供了一个便捷的方式来管理和分享学生成绩。本文将以物种草的口吻,为你介绍如何建立一个高效的班级查分系统&#xf…

javascript二维数组按指定要求进行对象合并遍历的算法开发

javascript二维数组按指定要求进行对象合并遍历的算法开发 项目原数据项目需求数据格式算法开发 项目原数据 从第三方API获取如何格式的数据: “device”: “二(1)班”,不同班级名称,会重复“name”: “二(1)班-电量”,不同班级的数据标准“value”: 1…

如何初始化静态成员在类中

c - How do I initialize a const data member? - Stack Overflow

安卓逆向 - 某东sign(基于unidbg主动调用)

本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,拒绝转载,若有侵权请联系我删除! 目标app:5Lqs5LicYXBwMTEuMy4y 目标接口:aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGl…

9月1日作业

思维导图 服务器代码 #include<myhead.h>#define PORT 4567 #define IP "192.168.6.225"struct msg //接收到的客户端信息结构体 {char type;char name[20];char txt[128]; };//定义节点类型 typedef struct Node {union{struct sockaddr_in cin; //数据…

springboot+springSecurity+jwt实现登录认证后令牌授权

springbootspringSecurityjwt实现登录认证后令牌授权&#xff08;已绑定整个项目的源码&#xff09; 目录 springbootspringSecurityjwt实现登录认证后令牌授权&#xff08;已绑定整个项目的源码&#xff09;一、自定义数据源登录认证1、实现spring security中UserDetails类2、…

22.1 JavaScript 基础

1. JavaScript 1.1 简介 JavaScript(简称js): 是一种广泛应用于网页开发的脚本语言. 它被用于增强网页的交互性和动态性, 可以让开发者对网页进行操作和控制. JavaScript可用于处理用户输入, 改变网页的内容, 动态加载数据, 创建动画效果等. 它在现代的Web开发中扮演着至关重…

【GIS】栅格转面报错:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型

问题: 栅格转面(矢量)时,ArcGIS窗口显示:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型. 原因: 栅格转面时输入的栅格数据集的字段必须是整型. 解决办法: 使用Spatial Analyst中的转为整型工具,将栅格数据转为整型后再进行栅格转面的操作…

pycharm增加新的编译器

安装了python2和3的电脑上&#xff0c;使用pycharm时候&#xff0c;最好将2和3都加入其编译器。 方法&#xff1a; 1、File-settings... 2、如图选择&#xff0c;然后点击加号&#xff0c;添加python2或者3的exe

通常用哪些软件做数据可视化大屏?

一般就两种&#xff0c;一种是可视化大屏编辑软件&#xff0c;另一种则是BI系统&#xff08;BI数据可视化工具&#xff09;。考虑到数据来源多、数据量大以及数据分析效率、直观易懂性等实实在在的客观问题&#xff0c;建议采用BI系统来制作数据可视化大屏。 BI系统做可视化大…

首个国家级元宇宙计划发布,和数集团迎来赛道发展新机遇

近日&#xff0c;工业和信息化部、教育部、文化和旅游部、国务院国资委、国家广播电视总局办公厅五部门联合印发《元宇宙产业创新发展三年行动计划&#xff08;2023-2025年&#xff09;》&#xff08;以下简称《计划》&#xff09;&#xff0c;其中在发展目标中提到要培育3-5家…

手把手教你搭建WordPress博客网站并发布至公网

文章目录 概述前置准备1 安装数据库管理工具1.1 安装图形图数据库管理工具&#xff0c;SQL_Front 2 创建一个新数据库2.1 创建数据库2.2 为数据库创建一个用户 3 安装PHP7.44. 创建一个新站点4.1 创建站点根目录4.2 访问WordPress官网&#xff0c;下载最新版本的压缩包4.3 创建…

Linux之yum/git的使用

目录 一、yum 1、关于yum 2、yum的操作 ①、yum list ②、yum install ③、yum remove 二、git 1、Linux中连接gitee 2、git的操作 ①git add [文件] ②git commit -m "提交日志" ③git push 3、可能出现的问题 ①配置用户名、邮箱 ②出现提交冲突 ③…

2023在家做什么副业兼职能赚钱?分享几种线上兼职副业!

现代社会&#xff0c;很多人都渴望能够在家中轻松自由地赚取一份收入。无论是为了照顾孩子、追求个人兴趣还是摆脱繁忙的通勤&#xff0c;都有越来越多的人开始探索如何在家赚钱。幸运的是&#xff0c;随着技术的进步和互联网的普及&#xff0c;我们现在有更多的机会去实现这个…

halcon对图片进行处理基础

实例图片 C:\Users\Public\Documents\MVTec\HALCON-19.11-Progress\examples\images*读取图片 read_image (Image1, D:/c/image/1.png) *读取大小 get_image_size(Image1,Width, Height) *创建窗口 dev_close_window() dev_open_window(0, 0, Width, Height, black, WindowHan…

D. Cyclic Operations Codeforces Round 897 (Div. 2)

Problem - D - Codeforces 题目大意&#xff1a;有一个长度为n的数组a&#xff0c;每次操作可以选取一个长度为k的所有数互不相同的数组b&#xff0c;令a[bi]b[i%k1]&#xff0c;问能否将一个全为零的数组通过任意次操作得到a 1<k<n<1e5 思路&#xff1a;通过上述操…

如何用Jmeter编写脚本压测

随着商业业务不断扩张&#xff0c;调用adsearch服务频率越来越高&#xff0c;所以这次想做个压测&#xff0c;了解目前多少并发量可以到达adsearch服务的界值。 这次选用的jmeter压测工具&#xff0c;压测思路如图&#xff1a; 同时&#xff0c;我也准备了一份软件测试面试视频…

Windows C++ VS2022 OpenVINO 物体检测 Demo

准备工作&#xff1a; 1、下载opencv 地址&#xff1a;Releases - OpenCV 我下载的是opencv-4.5.5&#xff0c;存放的路径为&#xff1a; 2、下载OpenVino 地址&#xff1a;https://storage.openvinotoolkit.org/repositories/openvino/packages/2023.0.1/ 我存放的路径为…