一篇文章,教你彻底掌握接口测试!

news2024/9/23 17:16:45

Part 01、什么是接口测试

所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据库的对接。而接口测试,则是通过接口的不同情况下的输入,去对比输出,看看是否满足接口规范所规定的功能、安全以及性能方面的要求。

Part 02、为什么要做接口测试

1.相比系统测试,更早介入测试,提高效率;

2.可以发现前端测试不了的问题,提高版本质量;

3.接口标准化了,更容易实现自动化和持续集成,降低测试成本。

因此在软件测试招聘岗位的要求中,无论是功能测试、自动化测试、性能测试亦或测试开发岗位,接口测试都是必须掌握的!

Part 03、如何开展接口测试

接口测试的开展一般包含5个部分:接口文档分析、接口用例设计、执行接口用例、定位bug提交并跟踪、输出接口测试报告。

01、接口文档分析

接口文档一般是由后端开发提供,可以是在线的swagger也可以是word。

若开发未提供接口文档,则可通过抓包工具fiddler或charles去抓取接口信息进行分析,进行接口测试。

获取到接口文档后,我们需要理清楚每个接口包含的请求、响应信息,概括为接口信息五要素

1)接口地址url:

例注册接口地址:http://api.lemonban.com:8765/futureloan/member/register

http-请求协议,api.lemonban.com-域名或ip,8765-端口号,/futureloan/member/register-资源路径

2)请求方法:

看开发定义的请求方法是什么,测试就对应用什么方法。restful风格中常见的请求方法为post、get、put、patch、delete等。

3)请求头:

发送请求到服务器,包含的头部信息。常见的content-type。

4)请求体:

发送请求到服务器,具体传递的数据。例如要完成注册接口的调用,请求体包含手机号mobile_phone、密码pwd、用户名reg_name、验证码verification_code。

5)响应内容:

接口文档中描述的响应内容,与接口测试的实际结果做比较,可以判断当前接口是否通过。响应内容包含:响应码-http状态码、响应头、响应体。

02、接口用例设计

接口用例设计跟功能测试思维相通,需要:

1)清楚项目业务;

2)运用用例设计8大方法:等价类、边界值、场景法、因果图、判定表、正交试验法、状态迁移法、错误推测法。

以下是接口用例模板参考:

03、执行接口用例,进行接口测试

接口测试原理: 模拟客户端发送请求到服务器,服务器接收请求并处理,返回响应到客户端, 客户端接收响应这样的一个过程。

通过接口测试原理可知,进行接口测试需要借助工具或代码。主流的接口测试工具Jmeter、Postman。使用工具编写脚本,需要结合接口项目具体应用场景来设计,运用关联、参数化、断言等技术。

04、发现bug、定位、提交并跟踪

怎么判断是否是bug呢?

1)接口测试中响应结果错误,返回了错误的code码、msg信息:

  • 判断请求:请求地址、方式、请求头、请求正文是否正确,如果不正确则修改对应请求信息再做发送;如果正确,则说明是服务器端问题

  • 进一步查看服务器日志、数据库信息,并整理信息提交bug

2)接口测试中响应结果,code码、msg正确,但返回的data数据不正确:

  • 查看数据库数据正确完整性,并结合服务器日志,整理信息提交bug

3)接口测试中响应结果正确,但若是增删改业务操作:

  • 需进一步确认到数据库层面,数据增删改的正确性

4)考虑安全性:一般接口对请求会做出一些限制,比如请求次数、请求频率限制;涉及敏感信息是否加密

05、接口测试报告

接口测试报告的整理这个看公司要求。有些公司是在整个项目测试结束后,整理一份统一的测试报告。有些公司会要求输出阶段性的测试报告。

Part 04、接口测试常见面试题

  • 什么是接口?

  • 如果模块请求http 改为了https,测试方案应该如何制定,修改?

  • 用HTTP 协议调试代理工具有什么?详细说明抓取 HTTPS 协议的设置过程?

  • 接口产生的垃圾数据如何清理?

  • 下个接口请求参数依赖上个接口的返回数据?

  • 接口测试的步骤有哪些?

  • 接口测试中依赖登录状态的接口如何测试?

  • 依赖于第三方数据的接口如何进行测试?

  • 文件上传的接口如何处理?

  • 解释什么是SOAP?

  • 解释什么是REST API?

  • API测试发现的Bug类型是什么?

  • 我们测试的接口属于哪一类?

  • 说下你接口测试问题如何定位?

  • Cookie 保存在哪里?

  • HTTP有哪些请求方法?

  • 接口自动化测试的流程?

  • 接口测试用例的编写要点有哪些?

  • 提到UI级别测试和API测试之间的关键区别?

  • HTTPS的工作原理?

  • HTTPS和HTTP的区别?

  • POST和GET有什么区别?

  • Session与Cookie有什么区别?

  • TCP和UDP有什么区别?

  • 在API测试中测试的常用协议是什么?

  • Jmeter、postman工具的区别?

  • 说下接口工具如何去操作数据库?

  • 传参数据格式除了json格式还有哪些?

  • 接口测试数据过多时如何进行测试?

  • 你们请求参数加密怎么处理的?

  • 接口测试中有哪些印象深刻的bug?

  • 项目中有测试过多少个接口?写过多少用例?


    绵薄之力【软件测试学习资源分享】

    最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

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

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

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

相关文章

【设计模式】外观模式(Facade Pattern)

外观模式属于结构型模式,主要解决客户程序访问复杂程序中的多个子程序而产生的高耦合度及高复杂度问题,根本目的在于简化接口的调用。例如我们去医院看病,可能要去挂号、门诊、划价、取药(子系统角色),这让…

Redis主从复制、哨兵模式、集群模式

文章目录一、Redis主从复制主从复制流程Redis主从复制的作用二、哨兵模式1、哨兵模式集群架构2、哨兵模式主要功能3、哨兵监控整个系统节点的过程4、主观下线5、客观下线6、master 选举7、故障迁移8、优点与缺点三、Cluster群集1、集群的作用2、Redis集群的数据分片四、实验一&…

Linux||使用vi编辑器按上下键输出字母

一、问题描述 在终端执行sudo命令时,系统提示“vboxuser is not in the sudoers file.This incident will be reported”,因此需要修改/etc/sudoers文件。 使用Linux自带的vi编辑器修改/etc/sudoers文件时候,按i键进入编辑模式。使用键盘上下…

SD-Branch多分支组网解决方案

一、多分支组网建设背景 多分支一般是指行政上由总部和分支单位组成,总部和各分支处在地域不同的区域;由于业务访问需要,组网要求“总部-分支”互联打通。多分支网络组网方案主要针对的是总分企业、金融网点、连锁酒店、连锁门店、商超地产、…

组合预测 | MATLAB实现基于BP-Adaboost强分类器多特征分类预测

组合预测 | MATLAB实现基于BP-Adaboost强分类器多特征分类预测 目录 组合预测 | MATLAB实现基于BP-Adaboost强分类器多特征分类预测预测效果基本介绍模型特性程序设计参考资料预测效果 基本介绍 MATLAB实现基于BP-Adaboost强分类器多特征分类预测。在集成学习-Boosting,Bagging…

如何建立公司网站?【公司网站建设】

现在很多实体公司企业都会做一个自己的公司网站,毕竟一个网站等同于一张在互联网中的名片,可以让更多客户了解到你。那么如何建立公司网站?流程步骤大概是什么?今天给大家简单讲解一下。 一、注册域名 这个域名是就是网址&#…

学编程:Python入门考级必备[8]

目录 知识模块(8) 列表知识——井然有序 1.列表的创建 2.列表访问(查找操作) 3.列表增加操作 4.列表删除操作 5.统计与计算 附件代码: 炼 知识模块(8) 列表知识——井然有序 知识模块(8) 列表知识——井然有序 1.列表的创建 1.1 空列表: lie …

[Linux](16)网络编程:网络概述,网络基本原理,套接字,UDP,TCP,并发服务器编程,守护(精灵)进程

文章目录网络协议初识OSI 七层模型TCP/IP 四层(或五层)模型IP、MAC、端口号TCP 协议与 UDP 协议套接字套接字地址结构socket 函数bind 函数recvfrom 函数sendto 函数UDP 通信实现服务端客户端TCP 通信实现服务端listen 函数accept 函数实现客户端connect 函数实现改进&#xff…

项目中集成高德地图

如果文章对你有帮助欢迎【关注❤️❤️❤️点赞👍👍👍收藏⭐⭐⭐】一键三连!一起努力! 本文我们主要讲述的是怎么在自己的项目中集成高德地图。 一、注册账号并申请Key 首先我们打开浏览器,直接百度&…

python小知识--创建scrapy工程步骤

python小知识--创建scrapy工程步骤前言python中的scrapy框架是我们在平时使用爬虫使用比较多的框架首先第一步就是创建scrapy工程,下面通过pycharm软件来演示效果图1、右击文件名称选择open in terminal打开终端cmd2、在终端控制台输入scrapy startproject kuaikank…

grafana alert告警面板配置说明

grafana alert告警面板配置说明 前提:只有graph panel 也就是图表面板(一般都是折线图和柱状图或者点状图)可以添加Alert ,其他面板不支持。 Rule Name :Alert规则 的名称 每多少时间评估一次 如果配置了这个参数&…

安卓APP源码和设计报告——基于Android的垃圾分类系统

《移动应用开发》大作业报告 题 目基于Android的垃圾分类系统系 部班 级学 生 姓 名学 号指 导 教 师时 间 1、项目名称 垃圾分类系统 2、项目概述 近些年,由于人民生活水平是的提高,生活方式与生活节奏的加快,使我国的垃圾生产数量已远超…

Flink系列之Flink之Time和WaterMark深入剖析

title: Flink系列 一、Flink Window 常见需求背景 1.0 理论描述 需求描述: 每隔 5 秒,计算最近 10 秒单词出现的次数。 滑动窗口 每隔 5 秒,计算最近 5 秒单词出现的次数。 滚动窗口 第一个: 关于 TimeCharacteristic Process…

[附源码]Python计算机毕业设计Django医疗纠纷处理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]Python计算机毕业设计Django校园一卡通服务平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

HarmonyOS/OpenHarmony应用开发-FA卡片开发体验

卡片概述 卡片是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达,减少体验层级的目的。 卡片常用于嵌入到其他应用(当前只支持系统应用)中作为其界面的一部分显示,并支持拉起页面…

[附源码]Python计算机毕业设计Django校园疫情管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

优品汇系统开发机制介绍

优品汇系统通过通过消费增值模式,促进商品流通,打造中g最大的供应链。作为对政策的回应,绿点刺激实体经济。前期通过科学合理的业务体系,将大部分利润分配给客户和朋友,从而快速创造人气和粉丝数据。中期将逐步完善产品…

计算机网络学习笔记(Ⅲ):数据链路层

目录 1 数据链路层概述 1.1 基本概念 1.2 主要功能 2 封装成帧和透明传输 2.1 封装成帧 2.2 透明传输 1.字符计数法 2.字符填充法 3.零比特填充法 4.违规编码法 3 差错控制 3.1 差错 3.1 检错编码 1.奇偶校验码 2.CRC循环冗余码 3.2 纠错编码 1.确定校验码位数…

基于逆滤波算法的无约束图像超分辨重构研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、逆滤波复原理论✳️ 三、实验验证✳️ 四、Matlab程序获取与验证✳️ 一、引言 图像复原( Image Restoration),也称图像恢复,是图像处理的一个重要方面。其目的就是尽可能地减少或去除在获取数字图像过程中发生的…