详解接口测试

news2024/11/16 8:21:31

目录

什么是接口?

接口协议的类型

接口测试是什么

HTTP接口的测试用例设计

HTTP接口的测试方法


什么是接口?

在面向对象编程中,接口是一个抽象的概念,用于定义类应该具有的方法和属性。一个类可以实现一个或多个接口,并且必须实现接口中定义的所有方法和属性。通过实现接口,类能够表达自己具有某些功能或能力。比如:当我在手机上打开某个APP应用,点击应用里的某个按钮,一般就会调用某个接口,向服务端发起HTTP请求,接口返回数据后,我们就能在应用里看到相应结果

接口协议的类型

基于 HTTP 协议的接口是我们日常测试工作当中接触最多的接口类型,除此之外,还有其他协议的接口,如常见的WebServiceWebSocketDubbo等最好也有所了解。

接口测试是什么

接口测试是对测试系统组件间接口进行测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换传递控制管理过程,以及系统间的相互逻辑依赖关系

调用一个接口A后,通常会触发下面的业务逻辑,这取决于接口A的具体功能和设计。一般来说,调用接口A可能会执行以下操作:

  1. 验证请求:接口A可能会对请求进行验证,以确保请求的合法性和有效性。这可能包括检查请求的参数、权限、身份验证等信息。
  2. 业务处理:一旦请求通过验证,接口A可能会执行相应的业务逻辑。这可能包括处理数据、调用其他接口、更新数据库等操作。
  3. 返回结果:接口A处理完业务逻辑后,把数据格式化成Json或者HTML等返回给前端。这可能包括返回数据、状态码、错误信息等。

从上面我们可以得知,调用一个接口后,数据的流动情况。以上述业务逻辑为例,有两条最基本的数据流,分别是写入数据流和查询数据流 。

  • 写入数据流:从外部参数传入调用接口后,经过业务处理,数据最终会存储到数据库或者缓存当中
  • 查询数据流:从外部参数传入调用接口后,经过业务处理,查询数据库或者缓存,将查询到的数据从接口返回

所以在接口测试时,涉及数据库相关的逻辑,我们都需要去检查数据库或者缓存里的数据是否符合预期。

HTTP接口的测试用例设计

和功能测试一样,在进行接口测试前,需要进行接口的测试用例设计,用例设计也不是凭空想象,我们需要以相关文档为依据

  • 功能测试用例:一般是根据产品需求文档PRD或者交互设计文档来进行设计
  • 接口测试用例:一般是依据接口文档和技术方案来进行设计

一个接口文档的例子:

请求方式
Get

请求URL
/test/api/getlist

请求参数
 
参数名       | 是否必传 | 数据类型 | 说明
source_type	  Y	          int       来源:百度1;好看2;贴吧3
page	      Y	          int       页码
per_page	  Y	          int       每页数量
word          N           string    关键词

预期返回结果

{
    "errno": 0,
    "status": 0,
    "msg": "success",
    "time": 1637156975,
    "duration": 0.01242208480835,
    "requestid": 29535354
}

有了接口文档以后,我们就可以开始接口测试用例的设计,而接口测试用例设计的重点,在于功能性的业务逻辑检查和参数检查。可以从输入(请求)参数、接口业务逻辑处理、接口输出(返回结果) 三个方面来进行考虑

另外对于客户端功能测试的用例设计方法,如等价类和边界值,在接口测试用例设计对于设计输入参数的部分同样适用,如对于请求参数的有大小限制,运用边界值设计,我们可以分别取空、最小值、最小值-1、最大值、最大值+1来测试

以下是一个接口测试用力的例子:

接口业务逻辑处理的接口用例设计是重中之重,对于这方面的用例设计,除了仔细看接口文档,还需要我们详细阅读开发写的技术方案,在技术方案当中一般有程序流程图,数据流图或者时序图

用例除了正常的接口功能流程,接口业务逻辑异常场景也需要考虑,常见的异常场景是数据库连接超时、没有满足前置条件,如:某个接口需要先登录获取 sesssion,如果直接调用该接口应该给出相应提示

HTTP接口的测试方法

接口测试用例设计完毕后,我们就可以开始正式进行接口测试了,一般接口测试都是对单个接口按照接口用例逐一进行测试

而接口测试方法,最开始可以使用Postman等工具进行手工测试,然后我们可以用Python或者JAVA编写代码进行自动化测试,自动化测试的代码可以逐步完善形成我们的测试框架,在回归测试时解放双手,提高测试效率

后面会给大家带来自动化的教程,希望大家的多多关注我噢💕🤷‍♀️

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

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

相关文章

如何解决掉你的u盘装不进去文件大小过大的文件

目录 前言1.解决方案2.原因2.1查看自己u盘格式2.2不同格式2.3分配单元大小作用 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的财富! 前言…

Ubuntu环境下使用GDB调试C语言项目

1. 安装gdb //终端输入 sudo apt-get install gdb 2. 启动gdb gdb GDB常用命令大全,参考此篇博客 使用GDB调试C项目中的makefile 1.在内核配置中启用调试信息: 在内核配置中,确保启用了调试信息。可以通过以下步骤来配置内核&#xff1…

uniapp 蓝牙小程序-兼容安卓和iOS

withTimeout方法可以在搜寻设备时等待指定的秒数,如果30秒内未搜索到则取消搜索 /*** 超时控制函数* param {Promise} promise 回调函数* param {number} timeout 超时时间, 默认10s*/ export function withTimeout(promise, timeout 10000) {let timeoutEvent …

FFmpeg的AVFilter框架总成AVFilter-AVFilterContext

毫无疑问,还是和前面的一样一个context和一个包含有回调函数指针的插件结构体,想要实现自己的插件,主要实现里面的回调函数就可以了,当然,AVFilter比其它模块稍微复杂一点还要牵扯到其它一些辅助模块,在其它…

华为OD试题六(数据最节约的备份方法、TLV解码)

1. 数据最节约的备份方法 题目描述: 有若干个文件,使用刻录光盘的方式进行备份,假设每张光盘的容量是500MB,求 使用光盘最少的文件分布方式 所有文件的大小都是整数的MB,且不超过500MB;文件不能分割、分卷…

elementui select中添加新增标签

<el-select v-model"ruleForm.eventType" :placeholder"请选择事件类型&#xff0c;可手动添加" ref"template" clearable visible-change"(v) > visibleChange(v, template)"><el-option v-for"item in eventTypeOp…

复制粘贴——QT实现原理

复制粘贴——QT实现原理 QT 剪贴板相关类 QClipboard 对外通用的剪贴板类&#xff0c;一般通过QGuiApplication::clipboard() 来获取对应的剪贴板实例。 // qtbase/src/gui/kernel/qclipboard.h class Q_GUI_EXPORT QClipboard : public QObject {Q_OBJECT private:explici…

华为OD试题五(数列描述、矩阵最大值、数据分类)

1. 数列描述 示例代码&#xff1a; # 核心 从第一项 推 第N项目 # 第一项 a0 1 # 推到 第N项 N 4 def fun(a0):# 计算每一项的具体值result left 0cursor 0while cursor < len(a0):if a0[cursor] ! a0[left]:count cursor -leftresult "{}{}".format(str(…

2.2 模型基础

建模流程 作业 这次搞了10天左右终于把作业做完了。 先是去学习了下如何建模->然后将模型导入Substance Painter里绘制贴图->最后导入到unity中&#xff08;虽然最后效果很差&#xff09;&#xff0c;但是回过头来看整个过程学习到了次时代美术的工作流&#xff0c;思考…

智慧公交:提高城市出行效率的数字化之路

随着城市化进程的不断加速&#xff0c;公共交通成为人们日常出行的主要方式之一。为了提高公共交通的效率和服务质量&#xff0c;智慧公交应运而生。智慧公交是一种基于物联网、大数据、人工智能等技术&#xff0c;对公共交通进行数字化、智能化改造的新型公共交通系统。 以此为…

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

一. Kubernetes(K8S)简介 Kubernetes (K8S) 是一个为 容器化应用 提供 集群部署 和 管理 的开源工具,和docker swarm类似,由 Google 开发. Kubernetes 这个名字源于希腊语,意为 “ 舵手 ” 或 “ 飞行员 ” , k8s 这个缩写是因为 k 和 s 之间有八个字符的关系, Google…

【Jmeter】Jmeter基础8-Jmeter元件介绍之断言

断言主要用于对服务器响应的数据做验证。Jmeter提供了多个断言元件&#xff0c;其中最常用的是响应断言。 2.8.1、响应断言 作用&#xff1a;对Jmeter取样器返回值进行断言。参数说明&#xff1a; 测试字段 响应文本&#xff1a;从服务器返回的响应文本&#xff0c;Response B…

Nacos-NacosRule 负载均衡—设置集群使本地服务优先访问

userservice: ribbon: NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则 NacosRule 权重计算方法 目录 一、介绍 二、示例&#xff08;案例截图&#xff09; 三、总结 一、介绍 NacosRule是AlibabaNacos自己实现的一个负载均衡策略&…

白日门引擎传奇手游架设教程-GM的成长之路

准备工具 服务器一台&#xff08;Windows系统&#xff09;白日门引擎服务端版本一个 前言&#xff1a; 此次教程使用的是版本是一个决战斗罗的一个版本、服务器使用的是驰网科技的游戏高频系列服务器。 教程开始 在我们拿到版本之后、我们需要先把版本解压到服务器D盘的根目录…

关于impdp导入时候索引是否使用了并行了?

关于impdp导入时候索引是否使用了并行的问题&#xff0c;不是看sqlfile&#xff0c;而是看实际worker 参看&#xff1a;Impdp Parallel Index Creation Always Creates Indexes with Degree 1 (Doc ID 1289032.1&#xff09; Oracle Database - Enterprise Edition - Version …

雅典娜Athena-signa音频算法源码与麦克风阵列角度定义互换问题

雅典娜Athena-signa音频算法源码与麦克风阵列角度定义互换问题 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 1 dios_ssp_doa_api.c 2 公…

【python VS vba】(8) 在python使用matplotlib库来画图

目录 1 matplotlib的基本用法 1.1 需要用到的模块&#xff0c;需要实现安装&#xff0c;且导入 1.2 画布 figure 1.2.1 figure的官方解释 1.2.2 画布语法 1.2.3 必须先获取至少1个figure: 1.2.4 figure的生效范围与多个figure 1.2.5 可以设置多个画布 1.3 设置函数…

创业就做轻资产 低门槛高收益的创业项目

1.在创业之前&#xff0c;首先要找对方向 所谓方向就是根据经济环境和市场分析&#xff0c;哪个行业最赚钱&#xff0c;哪个产品市场需求量大&#xff0c;竞争力下&#xff0c;发展前景好&#xff0c;可以实现长期收益。 2.清晰地思考商业摸式&#xff0c;建立盈利循环 例如&…

排序算法(详解)

排序在日常生活中十分重要&#xff0c;购物平台上商品的排序&#xff0c;各国高校等级的排序......可以说&#xff0c;现代生活中已经离不开排序了&#xff1b;因此学好排序算法至关重要&#xff0c;本篇文章就来讲讲常见的排序算法 排序的种类非常多&#xff0c;按照种类划分&…

AI数字人克隆采集规范分享!

数字人直播的时代已经来临&#xff0c;使用青否数字人SaaS系统数字人源码&#xff1a;zhibo175&#xff09;去生成数字人&#xff0c;那如何能得到自己想要的效果呢&#xff1f;需要注意一下几点&#xff1a; 一.摄影棚灯光方案 中型(15m左右)摄影棚​ 适用于美妆/珠宝等直播&a…