详解接口测试

目录

什么是接口?

接口协议的类型

接口测试是什么

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编写代码进行自动化测试,自动化测试的代码可以逐步完善形成我们的测试框架,在回归测试时解放双手,提高测试效率

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang导入导出Excel表格

最近项目开发中有涉及到Excel的导入与导出功能,特别是导出表格时需要特定的格式(单元格合并等),废话不多说,直接上代码了。 首先用到一个第三方库,实测还是很强大很好用的,就是这个https://git…

官宣 | HelpLook已入驻企业微信应用市场

HelpLook正式入驻企业微信第三方应用市场。 HelpLook支持自定义域名与AI站内搜索,能够帮助企业微信用户搭建所见即所得的企业知识库、产品帮助中心、用户手册、企业博客。 | 怎么找到HelpLook并开始使用 在企业微信的第三方应用就可直接搜索HelpLook,添…

innovus:generateRCFactor对比第三方spef方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 preroute/postroute以及signoff工具之间rc factor直接影响,各阶段时序与最终signoff工具之间的差别。 以starrcPT为signoff工具,innovus需要用generate…

迎接更高效的数据安全合规与风险评估,美创科技DCAS正式商用发布!

数据安全合规与风险评估,是清晰数据安全合规与风险差距,实现可落地数据安全建设和持续改进的关键一环。然而实施起来,你的团队是否面临着这些烦恼: 数据安全合规要求繁多,难以全面掌握? 复杂评估流程带来效…

计算两股不同流量的气体,通过换热器换热后,高温气体的出口温度

# -*- coding: utf-8 -*- """ Created on Thu Nov 30 11:23:12 2023 计算两股不同流量的气体,通过换热器换热后,高温气体的出口温度 (煤烟二级,计算煤烟二级热侧出口温度) ------------------------------------------------ …

初识大数据应用,一文掌握大数据知识文集(1)

文章目录 🏆初识大数据应用知识🔎一、初识大数据应用知识(1)🍁 01、请用Java实现非递归二分查询?🍁 02、是客户端还是Namenode决定输入的分片?🍁 03、mapred.job.tracker命令的作用?…

Python 接口测试response返回数据对比的方法

背景:之前写的接口测试一直没有支持无限嵌套对比key,上次testerhome逛论坛,有人分享了他的框架,看了一下,有些地方不合适我这边自己修改了一下,部署在jenkins上跑完效果还不错,拿出来分享一下。…

记录 | mac安装node

第一种方法(下载官网对应 node 版本的 .pkg文件) 访问nodejs官网(Node.js 中文网)选择合适的版本 双击刚下载的 .pkg 文件,进行安装 安装完成后检查 node 和 npm 的版本 node -v npm -v第二种方法,是使用 Homebrew 使用命令安装 //默认安…

Outlook邮箱设置邮件签名的步骤指南

outlook邮箱如何设置邮件签名? 要为Outlook邮箱设置电子邮件签名,请按照以下步骤操作:   1、打开Outlook,从左侧边栏选择“邮件”选项卡。   2、在文件菜单中,从右上角单击“设置”选项。   3、找到“撰写和答复”部分&…

第四十一篇:移动端调试工具

1.下载工具 npm install vconsole 2.在main.js里全局引用 > import Vconsole from vconsole > new Vconsole()

【Linux进程控制】进程终止和等待(waitpid回收僵尸进程)

前言 什么是写时拷贝 创建子进程,没必要将不会被访问 或只读的数据重新拷贝一份 只有将来会被父或子进程写入的数据才 值得拷贝,提前拷贝也并不会立马使用 一般而言即使是os,也无法提前知道 哪些空间可能被写入 所以os选择写时拷贝技术对父子…

程序员必读:Python 中如何完美处理日志记录?

日志记录在软件开发中扮演着至关重要的角色。它不仅可以帮助开发人员跟踪应用程序的状态和行为,还能提供有价值的诊断信息。Python 提供了内置的 logging 模块,为开发者提供了一个强大且灵活的日志记录工具。 日志的重要性 在软件开发中,对…

uni-app开发者必看:如何轻松适配微信小程序?

一、v-if避坑 看uniapp官方文档上,v-if是支持多端支持的。小程序上仅支持微信小程序,用hbuilderx运行到小程序后就会变成微信的指令语法wx:if。这里有个坑,要特别注意! v-if指令表达式 如果指令表达式为json对象,而…

数据可视化免费化的双面影响探析

近年来数据可视化的免费化也越来越明显,今天就以我作为可视化设计师的经验来和大家分析一下,数据可视化工具免费化所带来的利与弊。 先从好处入手,最明显的就是免费化可以让数据可视化工具得到更广泛的使用。 免费数据可视化工具使得更多人可…

基于 Webpack5 Module Federation 的业务解耦实践

前言 本文中会提到很多目前数栈中使用的特定名词,统一做下解释描述 dt-common:每个子产品都会引入的公共包(类似 NPM 包) AppMenus:在子产品中快速进入到其他子产品的导航栏,统一维护在 dt-common 中,子产品从 dt-com…

06.CSS选择器

CSS选择器 1.选择器的优先级 介绍 通过不同的选择器,选中相同的元素 ,并且为相同的样式名设置不同的值时,就发生了样式的冲突 到底应用哪个样式,此时就需要看优先级了 简单描述 行内样式 > ID选择器 > 类选择器 > …

用 SpringBoot+Redis 解决海量重复提交问题

1 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:**任意多次执行所产生的影响均与一次执行的影响相同 。**按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理…

一站式API解决方案:工程通API连接营销系统、CRM与用户运营,推动无代码集成

无代码开发的革命:简化电商与CRM系统集成 在信息技术迅猛发展的今天,电商企业迫切需要一个高效、便捷的系统来管理客户关系和销售流程。然而,传统的系统集成方式往往因复杂的API开发而令人望而却步。工程通API应运而生,它的无代码…

Halcon 模板匹配基于相关性

文章目录 基于相关性使用匹配助手 基于相关性 适用场景 模板匹配:当你需要在图像中找到一个已知的模板时,例如在工业生产线上检测产品的特定标识或零件的特征时,相关性匹配是一种简单而有效的方法。实时应用:相关性匹配通常具有较…

<软考高项备考>《论文专题 - 8 论文的项目背景之背景段的写法》

1 背景特征 比较好的背景特征: 语句通顺,简洁明了逻辑清晰、层次分明(建议分1段-2段描写)项目内容描写清楚,和规模相符合(从你写的项目内容和业务描述上,能够勾勒出项目的原型图)技术新颖、路线清晰、描写…