当前位置: 首页 > news >正文

测试系列之接口测试 (一)概念测试的有关概念

接口的概念

接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口。比如贴吧系统,有登录模块、发帖模块等等,那我们既然要发帖就必须要先登录。所以要发帖就必须要先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
系统对外的接口:比如我们要从别的网站或者服务器上获取资源或信息,别人肯定不会把数据库共享给自己。它会给你提供一个他们写好的方法来获取数据,我们引用对方提供的接口就能使用它写好的方法,从而达到数据共享的目的

比如说我们用到的app、网站这些它们在进行数据处理的时候都是通过接口进行调用的

接口的类型有很多,如HTTP API接口、RPC等等,接下来我们基于HTTP API接口继续来聊一聊

接口测试

概念

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

简而言之,所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。

其实接口测试很简单,比一般的功能测试还简单,因为功能测试是从页面输入值,然后点击按钮或者链接等传值给后端,而且功能测试还要测UI、前端交互等功能,但接口测试没有页面,它是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果,所以它只需要测入参和出参即可。

接口文档应该包含以下内容:
接口说明
调用url
请求方法(get\post)
请求参数、参数类型、请求参数说明
返回参数说明

由接口文档可知,接口至少应有请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header

**标头(header): **是服务器以HTTP协议传HTML资料到浏览器前所发送出的字符串,在标头与HTML文件之间尚需共一行分隔,一般存放cookie、token等信息

header 和 入参有什么关系?它们不都是发送到服务器的参数吗?

它们确实都是发送到服务器中的参数,但它们之间是有区别的,header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接收header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参。

接口测试重要性

接口其实就是前端页面或APP等调用后与后端做交互用的

但大家可能有疑问了,功能测试都测好了,为什么还要测试接口呢?

先举个栗子🌰:
比如测试用户注册功能,规定用户名为6~18个字符,包含字母(区分大小写)、数字、下划线。
首先功能测试时肯定会对用户名规则进行测试,根据常用的等价类,边界值等测试方法,比如输入20个字符、输入特殊字符等,但这些可能只是在前端做了校验,后端可能没做校验,如果有人通过抓包绕过前端校验直接发送到后端怎么办呢?试想一下,如果用户名和密码未在后端做校验,而有人又绕过前端校验的话,那么用户名和密码不就可以随便输了吗?而且登录也可能会通过SQL注入等手段来随意登录,甚至可以获取管理员权限!

所以,接口测试的必要性就体现出来了:

  • 可以发现很多在页面上操作发现不到的bug
  • 检查系统的异常处理能力
  • 检查系统的安全性、稳定性
  • 前端随便变,接口测好了,后端不用变

如何执行接口测试

在进行接口测试前,还需要了解:

  • get 和 pos 请求

get请求:https://gitee.com/xiao-luo-and-aze

get 和 post 是常见的请求方法。如果是get 请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get 请求,如果是post 请求对话,只能借助工具 Postman、Apifox 等来发送。

  • http状态码
    每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
  • 200 2开头都表示这个请求发送成功,最常见的就是200,代表这个请求是ok的,服务器也是返回了。
  • 300 3开头的代表重定向,常见的是302,把这个请求重定向到别的地方了。
  • 400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404表示没有这个页面资源
  • 500 5开头代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果

接口测试分两步走: 通过接口设计用例 + 结合业务逻辑来设计用例

http://www.jsqmd.com/news/493447/

相关文章:

  • OpenMV(三)--DIY固件烧录与STM32H743硬件适配指南
  • 深入解析UnityEvent:Unity中的高效事件监听与广播机制
  • 软测概念
  • 快速体验GLM-4-9B-Chat-1M:vLLM部署+Chainlit前端,无需复杂配置
  • Amazon 商品中的视频下载原理详解:为什么解析工具可以提取 m3u8
  • 零基础小白能玩转 OpenClaw 吗?低成本便捷工具轻松搞定
  • Qwen3-VL-8B AI聊天系统快速上手:3步搭建,无需代码基础
  • SpringBoot封装MusePublic:让艺术创作能力轻松接入业务系统
  • Linux操作系统的安装过程
  • OpenCore Legacy Patcher:让旧Mac焕发新生的技术普惠方案
  • CLIP-GmP-ViT-L-14多场景落地:金融研报图表→关键结论文本提取
  • CTF流量分析神器:NetA让复杂流量解析变得简单高效
  • Axis1.4漏洞实战:如何通过CVE-2019-0227获取服务器权限
  • CNKI-download:知网文献批量下载与信息采集终极指南
  • ESP32+LVGL 天气与时间动态显示开发
  • 避坑指南:Windows下用VS2015封装pdfium动态库的5个关键步骤
  • Broadcom RAID卡开发避坑指南:storelibtest工具编译与使用全解析
  • NoteWidget:OneNote Markdown功能增强解决方案
  • 告别漫长等待!yz-bijini-cosplay实现LoRA秒切,快速尝试不同风格Cosplay创作
  • Flask Session 安全攻防实战:从密钥泄露到防御加固
  • hadoop+spark+hive智慧交通数据分析系统 交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析 出行速度预测 拥堵预测
  • 漫画脸描述生成快速上手:10分钟搭建个人二次元AI助手(Qwen3-32B+Gradio)
  • 高效绘制原油脱盐脱水工艺流程图超省时间
  • React + 高德地图:5分钟实现动态路线飞行动画(附完整代码)
  • ZXPInstaller:跨平台Adobe插件安装利器,让创意工作流无缝衔接
  • 【实战】Godot VSCode联调:从零搭建高效脚本工作流
  • Chatbot Arena 评价标准解析:如何构建高效自动化评估体系
  • Asian Beauty Z-Image Turbo 模型压缩与加速:在边缘设备部署的探索
  • 春联生成模型-中文-base问题解决:部署常见错误与解决方法汇总
  • 从零开始:在Qt项目中优雅地使用系统图标(QIcon::fromTheme详解)