接口测试到底怎么做,5分钟时间看完这篇文章彻底搞清楚!

news2024/9/22 7:20:11

01、通用的项目架构

02、什么是接口

接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。

客户端大多数的业务操作,都是需要调用服务端接口来获取一些数据,或者触发某些业务,然后客户端拿到接口返回的数据后,会根据数据内容做不同的处理和展示。

03、为什么要做接口测试

A、在公司里,客户端和服务端通常是由不同的团队开发的,在项目开发过程中,客户端和服务端开发的进度不一致,比如服务端先开发完了,这个时候可以先对服务端进行接口测试,确保服务端逻辑和返 回数据是正确的,然后再测试客户端。或者是某些测试部门,专门测试服务端开发团队,因此,他们的测试对象就是接口。

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

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

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

04、接口测试工具和流程

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

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

Jmeter具体使用,请参考《Jmeter接口工具实战》文档

接口测试流程:

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

05、接口测试的关注点

1、输入

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

  • 正常的入参

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

  • 参数异常

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

  • 数据异常

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

2、业务逻辑

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

  • 限制条件分析

    ① 数值的限制:字典,等级,行业相关限制,金额限制,分数限制等

    ② 状态的限制:有效|无效,在线|离线,拉黑|洗白等

    ③ 关系的限制:存在或不存在,绑定或解绑等

    ④ 权限的限制:管理员,普通用户等

  • 对象分析

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

  • 状态转换的分析

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

  • 时序分析

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

3、输出

在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例,比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例

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

4、数据库操作

  • 业务数据入库是否正常,是否有重复数据入库,是否出现乱码

  • 数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式

  • 表中各个字段是否符合预期

5、安全性

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

6、性能

  • 接口最大支持多少并发数

  • 接口每秒能处理多少次业务(TPS)

  • 接口的平均响应时间(RT)

  • 接口对服务器资源的消耗(CPU、内存、网络、磁盘)

7、兼容性

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

8、其他

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

举个最简单的例子:

那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异 常,此时钱已经扣了,用户再次点击按钮,此时系统应该拒绝支付,并且提示“不能重复支付”。相当于 第二次支付不会产生任何作用。在做接口测试时,对于某些有幂等性要求的接口,需要针对幂等进行测 试。

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

今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦....

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

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

相关文章

SpringBoot中对Spring AOP的实现

文章目录 SpringBoot中对Spring AOP的实现AOP简介引入依赖AOP体系与概念编写AOP切面类启动SpringBoot项目然后访问controller控制器对环绕通知放行execution表达式的含义通过注解方式定义切点 SpringBoot中对Spring AOP的实现 AOP简介 AOP (Aspect Oriented Programming), 面…

模拟线程死锁现象:两个线程同时抢两个互斥锁

下面业务逻辑的分析 1.如果 flag 为 T,线程 A 就会先得到 / 持有 o1 对象锁,然后尝试去获取 o2 对象锁 2.如果线程 A 得不到 o2 对象锁,就会 Blocked 3.如果 flag 为 F ,线程 B 就会先得到 / 持有 o2 对象锁,然后尝试去…

【python】numpy常用属性

文章目录 np.rangenp.quantilenp.digitizenp.randomrandseedpermutation np.uniquenp.zerosnp.sumnp.logtransposebool判断 首先导入numpy import numpy as npnp.range np.range(start, end, step): 获取指定区间和步长的列表。 np.arange(0, 1, 0.1) # 区间: [0, 1), 步长…

大疆 dji mini4pro 不同充电器头 充电速度

协议 dp100w 头线 充电功率33.2w 指示灯快闪 一加手机官方充电头线(协议:wrap65w闪充) 12.1w 指示灯慢闪 官方 DJI Mini 4 Pro - 技术参数 - DJI 大疆创新 总结 买pd快充协议的头线即可。

(三)库存超卖案例实战——使用redis分布式锁解决“超卖”问题

前言 在上一节内容中我们介绍了如何使用mysql数据库的传统锁(行锁、乐观锁、悲观锁)来解决并发访问导致的“超卖问题”。虽然mysql的传统锁能够很好的解决并发访问的问题,但是从性能上来讲,mysql的表现似乎并不那么优秀&#xff…

ATA-8061射频功率放大器在心室导管式扩压电式测力传感器中的应用

心室导管式扩压电式测力传感器是一种广泛应用于心血管领域的关键设备,用于测量心脏内部的压力变化。本文将主要介绍关于压电式测力传感器的相关知识概念,以及功率放大器在心室导管式扩压电式测力传感器研究中的重要应用。我们通过对传感器原理和功率放大…

使用 JDAudioCrawler 将下载的音频存储到本地存储

前言 在当今数字化时代,音频数据的获取和处理变得越来越重要。本文将访问网易云音乐为案例,介绍如何使用JDAudioCrawler这个强大的工具,将音频数据存储下载到本地存储中。将详细介绍实现的流程和代码细节。 什么是 JDAudioCrawler DAudioC…

2023运营级别网赚网盘平台搭建(源码+教程)

023运营级别网赚网盘平台搭建(源码教程) 为什么要自己搭建网盘,现在许多大厂的网盘,文件都添加了许多限制,有好多文件会遭到和谐,而且大部分网盘也都会限速,不开通VIP是很难用的!这…

【Docker】Docker Compose服务依赖与健康检查

docker compose环境变量 为增加安全性,在前面的python例子中增加redis的密码校验,密码从环境变量中获取: from flask import Flask from redis import StrictRedis import os import socketapp Flask(__name__) redis StrictRedis(hostos…

企业在数字化转型时如何通过SD-WAN保证业务连续性

企业数字化建设离不开高品质的网络,随着信息化系统和应用的部署,传统网络线路逐渐暴露出不同的问题,包括: 线路资源利用率低易造成浪费 关键业务流量被抢占,缺乏保障 网络不可视,无法实时查看线路情况 故…

利用已存在的conda环境

一、已存在的环境 二、在Pycharm中使用这些环境

Linux 基于sysfs的GPIO读写操作

https://bbs.huaweicloud.com/blogs/297252 前言 最近接触到Linux系统中的GPIO开发,这里做个小总结,也分享一下;本文会介绍GPIO的读写,介绍基本原理,以及不同读写方式的性能。 一、GPIO sysfs interface 基本原理 …

Android 备案公钥、签名 MD5获取方法

公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。 1 windows 下载 jadx-gui 工具 下载 jadx-gui 工具 在这里选择一个下载 下载后 解压文件 双击运行程序,然后选择 release apk安装包 2 Mac 打开终端&a…

基于springboot实现企业客户信息反馈平台管理系统项目【项目源码+论文说明】

基于springboot实现企业客户信息反馈平台管理系统演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把企业客户信息反馈管理与现在网络相结合,利用java技术建设企业客户信息反馈平台,实现企业客户信息反馈的信息化。则对于进一步提高企业客户信息反…

1024程序员节优惠来啦 | 芒果YOLO专栏《全年首次优惠全场8.8折活动来啦》,一年一次,优惠券数量有限,先到先得!

芒果YOLO改进专栏 订阅即可享受 优惠券直接减免,芒果专栏全场优惠!! 1024程序员 全年优惠活动 来啦!!!! 芒果专栏全场优惠8.8折!! 文章目录 活动时间🔥&…

全面解析优化企业Microsoft 365网络的加速方案

您的员工是否有因为Microsoft 365频繁掉线、卡顿、无法登录而向IT部门抱怨过? 很多时候企业会以为是自身网络带宽不足才导致访问失败,但是在采取增加带宽的方案后,办公文档协同打开仍旧很慢,文件分享依旧需要等待较长的时间&…

【漏洞复现】蓝凌EIS智慧协同平台任意文件上传

目录 蓝凌智慧协同平台介绍 漏洞搜索 漏洞点 漏洞复现 nuclei poc 验证 漏洞修复 蓝凌智慧协同平台介绍 蓝凌智慧协同平台是个自动化办公OA,具有多端同步、无缝协作,提供移动端(蓝凌KK、阿里钉钉、微信企业号)、桌面端、网页端多端应…

『第四章』一见倾心:初识小雨燕(上)

在本篇博文中,您将学到如下内容: 1. 基本数据类型2. 基本操作符3. 枚举和结构4. 类和 Actor5. 属性、方法与访问控制6. 聚集总结夜月一帘幽梦,春风十里柔情。 无声交谈情意深,一见心曲绕梁成。 1. 基本数据类型 无论是 macOS 还是 iOS 上的开发,Swift 基础类型和功能都内置于…

淘宝API接口(商品信息获取,订单管理,库存管理,数据分析和优化)

淘宝API接口可以用于许多业务场景,以下是一些常见的应用场景: 商品信息获取:通过淘宝API接口可以获取商品的详细信息,包括商品标题、价格、库存、销量、评价等数据。这些信息可以用于在自己的网站或应用程序中展示商品&#xff0…

17 结构型模式-享元模式

1 享元模式介绍 2 享元模式原理 3 享元模式实现 抽象享元类可以是一个接口也可以是一个抽象类,作为所有享元类的公共父类, 主要作用是提高系统的可扩展性. //* 抽象享元类 public abstract class Flyweight {public abstract void operation(String extrinsicState); }具体享…