了解接口测试只需3分钟

news2024/11/18 19:53:12

为什么要做接口测试?

在公司里,客户端和服务端通常是由不同的团队开发的,在项目开发过程中,客户端和服务端开发的进度不一致,比如服务端先开发完了,这个时候可以先对服务端进行接口测试,确保服务端逻辑和返回数据是正确的。

然后再测试客户端,或者是某些测试部门,专门测试服务端开发团队,因此,他们的测试对象就是接口。

在测试某些业务时,不能仅仅通过前端来测试,比如用户注册,前端限制了用户名不能为空,但是有些人可能通过工具绕过前端直接调用服务端接口,如果服务端没有做相关的逻辑判断,就会造成数据错误。包括接口数据传输过程中是否对关键信息加密等。所以必须针对服务端接口单独做测试。

在开发提测后,可以先通过工具把服务端的接口测试跑一遍,确保接口测试用例都是通过的,快速判断服务端接口是否符合预期。然后再通过UI界面进行测试。否则接口有bug,前端页面必定有bug。

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

软件测试视频教程观看处:

华测教育软件测试进阶全套视频教程(2023全网最新版,软件测试进阶自学必备)

接口测试工具和流程?

常见的HTTP接口测试工具有Jmeter、Postman、SoupUI等。企业里用的比较多的是Jmeter。

Jmeter是一款开源、免费的接口测试工具,它可以对接口的功能、性能进行测试。还可以实现接口自动化。

Jmeter具体使用,之前写过,这里就不再过多叙述。

接口测试流程:

和普通的web测试一样,也是先进行需求分析、测试用例编写、执行测试、提交bug、回归测试、提交 测试报告等。

接口测试的关注点

1、输入

输入主要是指接口的入参,我们平常的测试中,会先考虑正常的入参,以及异常的入参。
异常情况包括:参数异常和数据异常,用例设计这块使用较多的是等价类划分和边界值分析

正常的入参:

正常的入参很好理解,就是根据接口设计文档的入参标准,输入正常的参数,响应按接口设计文档的约 定条件正常返回

参数异常:

参数异常包括:参数为空,多参或少参,错误的参数

数据异常:

数据异常:数据类型错误、非空参数为空,长度不符合设计,不在范围内的数据,不合法的成员,特殊 字符或敏感字符,存在关联关系的参数数据异常等

2、业务逻辑

和基于UI的功能测试一样,接口测试也需要了解接口背后的业务逻辑,针对业务流程的处理逻辑,我们 可以从入参的限制条件、事件的操作对象、业务的状态转换等不同维度来考虑

限制条件分析:

① 数值的限制:字典,等级,行业相关限制,金额限制,分数限制等
② 状态的限制:有效|无效,在线|离线,拉黑|洗白等
③ 关系的限制:存在或不存在,绑定或解绑等
④ 权限的限制:管理员,普通用户等

对象分析:

对象分析主要是对合法和不合法的对象进行操作,比如银行卡用户对卡进行充值,则可能存在:用户A使用非用户A的卡充值;用户A使用自己的卡进行充值,卡已过有效期;用户A使用自己的卡进行充值, 卡为黑名单或挂失等。

状态转换的分析:

比如支付类业务,先支付成功,撤单后会退款,再次支付如果支付未成功,则是支付失败,状态之间的 切换是否正常,未按正常业务顺利进行操作时,状态怎么显示,是否可控,是否出现异常状态,空状态 业务怎么处理等

时序分析:

一些复杂的活动中,一个活动是由一系列的动作按照指定顺序进行,这些动作形成一个动作流,是有按照这个顺序依次执行,才能等到预期的结果,那么在执行过程中发生的其他分支动作程序会作何处理?

3、输出

在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例。

比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例

这种根据输出进行设计用例,可以发现前后端是否正常输出结果,提示是否友好,提示是否出现敏感信息等

4、数据库操作

业务数据入库是否正常,是否有重复数据入库,是否出现乱码;
数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式;
表中各个字段是否符合预期;

5、安全性

敏感信息是否加密(如用户名、银行账号,密码,转账金额)

6、性能

接口最大支持多少并发数;
接口每秒能处理多少次业务(TPS);
接口的平均响应时间(RT);
接口对服务器资源的消耗(CPU、内存、网络、磁盘);

7、兼容性

接口测试不需要考虑客户端的兼容性,主要是数据的兼容性。比如对于老接口的历史数据是否兼容,用 新接口去处理老的数据,是否能正常处理。

8、其他

幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。

举个最简单的例子:

那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异 常,此时钱已经扣了,用户再次点击按钮,此时系统应该拒绝支付,并且提示“不能重复支付”。

相当于 第二次支付不会产生任何作用。在做接口测试时,对于某些有幂等性要求的接口,需要针对幂等进行测 试。

通常可以采用Jmeter连续调用2次接口进行支付、提交等操作,来测试幂等性。

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

douyin ios 8404六神参数学习记录

玩那么久安卓了,也终于换一换ios终端分析分析,还是熟悉的x-gorgon,x-argus,x-medusa那些参数。 随便抓个抖音 ios版本的接口: 像评论接口: https://api26-normal-hl.amemv.com/aweme/v2/comment/list/?…

OpenCV官方教程中文版 —— 傅里叶变换

OpenCV官方教程中文版 —— 傅里叶变换 前言一、原理二、Numpy 中的傅里叶变换三、OpenCV 中的傅里叶变换四、为什么拉普拉斯算子是高通滤波器? 前言 本小节我们将要学习: • 使用 OpenCV 对图像进行傅里叶变换 • 使用 Numpy 中 FFT(快速…

Linux下进程地址空间初步理解

进程地址空间 进程地址空间是操作系统为每个进程分配的一块内存空间,用于存储进程的代码、数据和堆栈等信息。进程地址空间是逻辑上独立而相互隔离的,每个进程拥有自己独立的地址空间,进程之间不能直接访问彼此的地址空间。 代码段&#xff…

<多线程章节四>如何使用synchronized解决线程不安全问题(原子性、内存可见性…)等等

文章目录 💡专栏导读💡文章导读💐线程不安全示例💐锁的特性💐产生线程不安全的原因:💐加锁的三种方式: 💡专栏导读 本篇文章收录于多线程,也欢迎翻阅博主的其…

mavros黑白名单设置

链接: mavros设置黑白名单 设置mavros黑白名单主要是通过插件的参数进行设置,如下: 这里是在px4_pluginlists.yaml参数文件中设置 plugin_blacklist: # common - safety_area - 3dr_radio - actuator_control - hil_controls - ftp - global_position …

表的约束【MySQL】

文章目录 什么是约束DEFAULT(默认约束)NULL 与 NOT NULL(非空约束)COMMENT(注释约束)ZEROFILL(零填充约束)UNIQUE(唯一键约束)*PRIMARY KEY(主键约…

Windows 10/11如何恢复永久删除的文件?

数据丢失在我们的工作生活中经常发生。当你决定清理硬盘或U盘时,你会删除一些文件夹或文件。如果你通过右键单击删除文件,则可以很容易从回收站恢复已删除的文件。但是,如果你按Shift Delete键、清空回收站或删除大于8998MB的大文件夹&#…

“停车费”用英语怎么说?千万不要说Stop car money!柯桥BEC商务英语学习

“200块的大餐说吃就吃 20块的停车费不是要我命吗” 年轻人主打一个该省省、该花花 说到“停车费”你知道用英语怎么说吗 难道是“stop car money”? 哈哈,这样说老外表示15857575376太中式啦! C姐教你地道的英语表达 01 “停车费”用英语怎么说&a…

Python中如何使用ThreadPoolExecutor一次开启多个线程

目录 一、ThreadPoolExecutor的创建与使用 二、处理并发执行结果 三、异常处理 五、使用多线程注意事项 总结 在Python中,ThreadPoolExecutor是concurrent.futures模块提供的一种线程池类。它能够以线程的形式执行可调用对象,并允许您在执行过程中获…

教你如何帮助孩子做好时间管理,不再需要重复提醒!

给大家推荐一个小工具,不起眼 但是经过几个月的使用 发现相见恨晚 我家熊孩子怎么也改不掉的拖沓毛病 竟然被它治好了 经常会听到姐妹抱怨 自己家娃有“假期拖延症” 明明十几分钟就能写完的作业 一会说肚子疼想上厕所 一会又拿出铅笔刀要削铅笔 非得拖拖拉…

安卓开发实例:首页

导航菜单&#xff0c;点击按钮跳转。 activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools&quo…

c++ 构造函数与析构函数(详解)

目录 目录&#xff1a; 1:构造函数 2:析构函数 前言&#xff1a;我们知道c使用起来是比c语言方便的&#xff0c;那么为啥比他使用起来简单&#xff0c;这里我们就不得不提及我们c中默认成员函数了&#xff0c;是它们默默的承担了所有。 下面让我们先来学习前两个默认成员函数:…

JavaScript基础知识18——逻辑运算符之短路运算

哈喽&#xff0c;大家好&#xff0c;我是雷工。 本节学习JavaScript基础知识——逻辑运算符中的短路运算&#xff0c;以下为学习笔记。 规则&#xff1a; 1、如果是&&运算&#xff0c;只要遇到false&#xff0c;就立即短路&#xff0c;不会再执行了&#xff0c;直接返回…

在声明和定义的一些小坑

1、静态成员变量的初始化 静态成员变量声明在 .h 头文件文件中&#xff0c;初始化应该在 .cpp 源文件中 就会出现"找到一个或多个多重定义的符号",下面的错误 class MyString{public:typedef char* iterator;typedef const char* const_iterator;iterator begin();…

复古风再现:探索70年代风格的室内设计在当今的复兴之路

20 世纪 70 年代的室内设计趋势正在卷土重来。大地色调、有趣的多色概念&#xff0c;以及低矮的软家具&#xff0c;都是当前的流行趋势。今年 2 月&#xff0c;许多室内设计师也表达了类似的观点&#xff0c;他们都在追捧备受诟病的棕色。当时的设计风趣、性感&#xff0c;但又…

YOLO目标检测——红外车辆行人数据集【(含对应voc、coco和yolo三种格式标签+划分脚本+训练教程】

实际项目应用&#xff1a;智能驾驶、智能监控、军事应用监控通过红外传感器采集车辆和行人的红外图像&#xff0c;然后使用目标检测算法对图像进行处理和分析&#xff0c;以识别道路上的车辆和行人。数据集说明&#xff1a;&#xff0c;真实场景的高质量图片数据&#xff0c;数…

Win11安装ise14.7~不需要虚拟机了~

之前一直无法在win11上安装ise14.7&#xff0c;网上搜索也无果&#xff0c;所有一直vmware虚拟机使用。直到最近看了水木上jesce的回复&#xff0c;试了下果然可以直接安装使用的。 步骤如下即可&#xff1a; 1.安装时切勿勾选最后一项&#xff0c;Enable WebTalk to send so…

Stable DiffusionAI绘画作品展示

参考链接&#xff1a; https://chat.xutongbao.top/

C语言实现图形界面创建按钮

文章目录 其他章节创建按钮指定按钮显示的文本 按钮样式 其他章节 开始之前&#xff0c;需要学习以下章节&#xff1a; 创建窗口 窗口过程函数 创建按钮 要在窗口上显示一个按钮&#xff0c;我们可以在窗口过程函数中处理 WM_CREATE 消息&#xff0c;在该消息中创建按钮并设…

我是如何走上测试管理岗的

最近有小伙伴问了一个问题&#xff1a;他所在的测试团队规模比较大&#xff0c;有 50 多个人&#xff0c;分成了 4 ~ 5 个小组。这位同学觉得自己的技术能力在团队里应该属于比较不错的&#xff0c;但疑惑的是在几次组织架构调整中&#xff0c;直属领导一直没有让他来管理一个小…