接口测试要怎么测?接口测试的流程和步骤详解

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快

一、什么是接口测试

我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 !

那么接口测试是怎么来测试接口的呢?

接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性安全性以及性能方面的要求.

简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”

二、接口测试的好处

  • 通过接口测试,我们可以测试出接口的稳定和正确性, 可以抛开前端的影响,迅速定位到后端的缺陷,提升测试的效率.
  • 通过接口测试, 可以为项目带来高效的缺陷监测和管理能力,可以提到软件的整体质量;

项目越复杂,系统越庞大,接口测试使用的越频繁的效果越明显

三、接口测试的原理

通过模拟客户端 or Web浏览器向服务器发送请求,服务器接收请求后对接收到的数据做处理,同时向客户端返回应答,我们模拟的客户端,接收到返回的数据后再对数据进行判断 ,如何判断呢?

1、判断请求: 是否正确, 系统默认的请求成功,会返回200状态码, 假如请求错误返回400, 404, 500等状态码

2、判断数据: 返回数据的正确性与完整性

3、判断安全性: 接口一般不会随意暴露在网上被其他人任意调用,一般我们会对接口做出一些限制,比如请求次数、请求频率限制等等

简单来说:找个能联网的工具根据接口文档,向接口服务器发送请求,获取响应,检查响应是否符合接口文档的规范

四、接口测试测试工具

接口测试需要模拟客户端发送请求获取响应,所以我们就需要一个能够发送请求获取响应的工具,也就是联网工具:
通过工具来进行接口测试

最知名的就是postman,当然还有restclient之类的 。当然也可以用jmeter,jmeter也可以用来做接口性能测试,当然我们也可以通过编写脚本(代码)进行接口测试。

一般我们使用python语言中最流行的联网库requests !

五、如何做好接口测试

接口测试要遵循一些要点:

  • 测试接口的功能实现,检查不同参数的数据请求时,接口返回的数据与预期结果也就是接口文档的规范的一致性。
  • 测试接口的健壮性(容错性),比如说传递的数据类型是错误或者传递空数据,特殊字符等与接口规范不符的能否正常处理。
  • 测试接口参数的边界值,比如说传递的数据超出了接口规范的规定的范围,或者数据足够大或者为负数时能否正常处理。
  • 测试接口的性能,接口处理和响应数据的时间,并发性等等,当然这牵扯到代码实现的优化,需要与开发人员沟通。
  • 测试接口的安全性,比如登录的用户名密码等敏感数据是否明文显示,需要权限的接口是否暴露在外面。

六、接口测试流程

1、分析接口文档和需求文档

分析接口文档或者需求文档一般会去找测试点,那么接口测试的测试点我们一般从几种方向去找

· 功能性测试点
· 性能测试点
· 安全性测试点

2、编写接口测试计划

测试计划就是功能测试计划基本一样就是知名的5w1h了

1) why——为什么要进行接口测试;
2) what—测试接口包括哪些;
3) when—测试接口不同阶段的起止时间;
4) where—相应接口文档,接口缺陷的存放位置,测试环境等;
5) who—项目有关人员组成,哪些接口分配给哪些人;
6) how—使用哪些测试工具以及测试方法进行测试。

3、编写接口测试用例

测试用例就是根据具体的哪个接口来编写,一般会分为单接口和多接口两种场景来编写测试用例

1) 单接口场景的测试

  • 正向数据:也就是能正常发送请求,正常获取响应的数据,一般我们从三个方面去组织:
    • 所有必填参数
    • 全部参数(必填参数+选填参数)
    • 参数组合(必填参数+某些选填参数)
  • 反向测试:用不属于规定范围的数据区发送请求检查服务器能否正常处理
    • 异常数据:数据为空,长度过多或者过少(边界值外),类型不符(需要数字类型传递str类型),错误的数据
    • 异常的参数:不传参数,少传参数,多传参数,传递错误的参数
    • 异常的业务数据:结合业务功能考虑输出的各种异常返回情况

2) 多接口场景的测试

  • 业务场景功能测试(站在用户角度考虑常用的使用场景)
  • 多业务场景功能测试主要是测试接口之间数据依赖

4、接口测试执行

根据设计的测试用例就可以执行测试用例当然执行的方式有几种

1. 使用postman之类的工具,一个一个进行测试,这种方式我们叫做手工测试

2. 使用jmeter之类的有自动化功能方式进行测试,这种叫做工具自动化测试

3. 我们可以自己编写测试脚本,使用测试脚本自动加载测试,这种就是自动化测试了

5、生成接口测试报告。

  • 测试完成了以后就可以生成测试报告了

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

【2024年最新版】字节大佬一周讲完的自动化测试教程,挑战15天学完就业,从入门到实战,少走99%的弯路!

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

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

相关文章

Python 弱引用全解析:深入探讨对象引用机制!

目录 前言 弱引用的概述 弱引用的原理 使用 WeakRef 类创建弱引用 使用 WeakValueDictionary 类创建弱引用字典 实际应用场景 1. 解决循环引用问题 2. 对象缓存 总结 前言 在Python编程中,弱引用(Weak Reference)是一种特殊的引用方式…

python高级之元类

python高级之元类 一、Type创建类1、传统方式创建类2、非传统方式 二、元类三、总结 一、Type创建类 class A(object):def __init__(self, name):self.name namedef __new__(cls, *args, **kwargs):data object.__new__(cls)return data根据类创建对象 objA(‘kobe’) 1、执…

C++之智能指针

为什么会有智能指针 前面我们知道使用异常可能会导致部分资源没有被正常释放, 因为异常抛出之后会直接跳转到捕获异常的地方从而跳过了一些很重要的的代码, 比如说下面的情况: int div() {int a, b;cin >> a >> b;if (b 0)throw invalid_argument(&q…

《程序员的职业迷宫:选择你的职业赛道》

程序员如何选择职业赛道? 大家好,我是小明,一名在编程迷宫中探索的程序员。作为这个庞大迷宫的探险者,我深知选择适合自己的职业赛道有多么重要。今天,我将分享一些关于如何选择职业赛道的心得,希望能够帮…

爬虫案例二

想拿到电影天堂 其中一个下载地址如何实现呢 第一步电影天堂_免费在线观看_迅雷电影下载_电影天堂网 (dytt28.com)电影天堂_电影下载_高清首发 (dytt89.com)电影天堂_免费在线观看_迅雷电影下载_电影天堂网 (dytt28.com) 第一步 我直接打开 requests.exceptions.SSLError: H…

C语言——结构体(位段)、联合体、枚举

hello,大家好!我是柚子,今天给大家分享的内容是C语言中的自定义类型结构体、联合体以及枚举,有什么疑问或建议可以在评论区留言,会顺评论区回访哦~ 一、结构体 struct a.结构体声明 不同于数组的是,结构…

分布式ID生成算法|雪花算法 Snowflake | Go实现

写在前面 在分布式领域中,不可避免的需要生成一个全局唯一ID。而在近几年的发展中有许多分布式ID生成算法,比较经典的就是 Twitter 的雪花算法(Snowflake Algorithm)。当然国内也有美团的基于snowflake改进的Leaf算法。那么今天我们就来介绍一下雪花算法…

sylar高性能服务器-日志(P57-P60)内容记录

文章目录 P57-P60:序列化模块Varint(编码)Zigzag(压缩)class ByteArrayNode(链表结构)成员变量构造函数写入读取setPositionaddCapacity 测试 P57-P60:序列化模块 ​ 序列化模块通常…

单调栈的理解

单调栈的理解 核心代码场景思考 完整代码环形数组循环数组 单调栈&#xff1a; 单调递增或 单调递减的栈 核心代码 while (!s.empty()&&s.peek()<nums[i]){s.pop(); } s.push(nums[i]);将要放入的元素&#xff0c;与栈内元素依个比较&#xff0c;小于的都出栈&am…

设计模式——2_3 迭代器(Iterator)

生活就像一颗巧克力&#xff0c;你永远不知道下一颗是什么味道 ——《阿甘正传》 文章目录 定义图纸一个例子&#xff1a;假如你的供应商提供了不同类型的返回值单独的遍历流程实现 碎碎念如果读写同时进行会发生啥&#xff1f;外部迭代和内部迭代迭代器和其他模式迭代器和组合…

彻底解析:企业为何必须采用CRM系统以及其五大作用

相关数据显示&#xff0c;CRM系统在欧美发达国家的普及程度高&#xff0c;超出80%的企业部署了CRM管理系统。然而在国内这个比例依然很小只有10几%&#xff0c;为什么企业需要CRM系统&#xff1f;因为CRM可以为公司实现线索管理、绩效管理、销售流程管理、市场营销管理以及数据…

Python爬虫:设置随机 User-Agent

Python爬虫&#xff1a;设置随机 User-Agent 在Python中编写爬虫时&#xff0c;为了模拟真实用户的行为并防止被服务器识别为爬虫&#xff0c;通常需要设置随机的User-Agent。你可以使用fake-useragent库来实现这一功能。首先&#xff0c;你需要安装fake-useragent库&#xff…

C++进阶之路---继承(一)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、继承的概念及定义 1.继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0…

【爬虫】单首音乐的爬取(附源码)

以某狗音乐为例 import requests import re import time import hashlibdef GetResponse(url):# 模拟浏览器headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0}# 发送请求…

第五十回 插翅虎枷打白秀英 美髯公误失小衙内-mayfly-go:web 版 linux、数据库等管理平台

晁盖宋江和吴用到山下迎接雷横上山&#xff0c;宋江邀请雷横入伙&#xff0c;雷横以母亲年事已高为由拒绝了。 雷横回到郓城&#xff0c;听李小二说从东京新来了个表演的叫白秀英&#xff0c;吹拉弹唱跳&#xff0c;样样精通&#xff0c;于是雷横和李小二一起到戏院去看演出。…

Spring Webflux 详解

目录 0、组件对比 1、WebFlux 1、引入 2、Reactor Core 1、HttpHandler、HttpServer 3、DispatcherHandler 1、请求处理流程 4、注解开发 1、目标方法传参 2.返回值写法 5、文件上传 6、错误处理 7、RequestContext 8、自定义Flux配置 9、Filter WebFlux&am…

Java消息服务(JMS):在异步通信世界的引领者

文章目录 前言需求演进异步通信的需求增长面向消息的中间件兴起标准化的迫切需求 与相似框架的对比JMS vs AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;JMS vs MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;JMS vs Apache Kafka 完整的…

nginx,php-fpm

一&#xff0c;Nginx是异步非阻塞多进程&#xff0c;io多路复用 1、master进程&#xff1a;管理进程 master进程主要用来管理worker进程&#xff0c;具体包括如下4个主要功能&#xff1a; &#xff08;1&#xff09;接收来自外界的信号。 &#xff08;2&#xff09;向各worker进…

腾讯云服务器99元一年购买入口链接

腾讯云服务器99元一年购买入口链接如下&#xff0c;现在已经降价到61元一年&#xff0c;官方活动链接如下&#xff1a; 腾讯云99元服务器一年购买页面腾讯云活动汇聚了腾讯云最新的促销打折、优惠折扣等信息&#xff0c;你在这里可以找到云服务器、域名、数据库、小程序等等多种…

OSPF NSSA实验简述

OSPF NSSA实验简述 1、OSPF NSSA区域配置 为解决末端区域维护过大LSDB带来的问题&#xff0c;通过配置stub 区域或totally stub区域可以解决&#xff0c;但是他们都不能引入外部路由场景。 No so stuby area &#xff08;区域&#xff09;NSSA 可以引入外部路由&#xff0c;支持…