什么是接口测试?接口测试的流程步骤

news2024/10/5 13:35:41

目录

一、什么是接口测试&怎么测

二、接口测试的好处

三、怎么做好接口测试

四、接口测试的原理

五、接口测试流程&用例设计

5.1.接口文档分析

5.1.1.接口构成图解

5.2.制定接口测试计划

5.3.编写接口测试用例&评审

5.3.1.接口测试用例模板

5.4.接口测试数据&脚本

5.4.1.公共数据维护

5.4.2.多组数据测试

5.4.3.接口依赖处理

5.4.4.接口结构判断:断言

5.5.接口测试执行

5.6.接口测试报告


一、什么是接口测试&怎么测

一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 。

那么我们应该怎么来测试接口呢?

  1. 接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性、性能方面的要求
  2. 测试的重点是要检查数据的交换,传递和控制管理过程,及系统间的相互逻辑依赖关系
  3. 简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”

二、接口测试的好处

可以测试出接口的稳定和正确性, 可以抛开前端的影响,迅速定位到后端的缺陷,提升测试的效率

  1. 可以发现很多在页面上操作发现不了的bug
  2. 检查系统的异常处理能力
  3. 检查系统的安全性、稳定性
  4. 前端随便变,接口测好了,后端不用变
  5. 可以为项目带来高效的缺陷监测和管理能力,可以提高软件的整体质量
  6. 项目越复杂,系统越庞大,接口测试使用的越频繁,效果越明显

三、怎么做好接口测试

官方套话:

  1. 接口正确性是多方保障,都要进行测试
  2. 根据接口类型,合理进行测试分析,注意测试重点
  3. 注重业务逻辑分析,包括正向反向操作
  4. 注重数据文件检查

实质需要关注的点:

  1. 测试接口的功能实现,检查不同参数的数据请求时,接口返回的数据与预期结果,也就是接口文档的规范的一致性
  2. 测试接口的健壮性(容错性), 比如说传递的数据类型是错误或者传递空数据,特殊字符等与接口规范不符的,能否正常处理
  3. 测试接口参数的边界值,比如说传递的数据超出了接口规范规定的范围,或者数据足够大或者为负数时能否正常处理
  4. 测试接口的性能,接口处理和响应数据的时间,并发性等等,当然这牵扯到代码实现的优化,需要与开发人员沟通
  5. 测试接口的安全性,比如登录的用户名密码等敏感数据是否明文显示,需要权限的接口是否暴露在外面

四、接口测试的原理

通过模拟客户端 or Web浏览器向服务器发送请求,服务器接收请求后对接收到的数据做处理,同时向客户端返回应答,我们模拟的客户端,接收到返回的数据后再对数据进行判断 ,如何判断呢?

1、判断请求: 是否正确, 系统默认的请求成功,会返回200状态码, 假如请求错误返回400, 404, 500等状态码

2、判断数据: 返回数据的正确性与完整性

3、判断安全性: 接口一般不会随意暴露在网上被其他人任意调用,一般我们会对接口做出一些限制,比如请求次数、请求频率限制等

简单来说:找个能联网的工具根据接口文档,向接口服务器发送请求,获取响应,检查响应是否符合接口文档的规范

五、接口测试流程&用例设计

5.1.接口文档分析

分析测试需求、接口api文档,熟悉接口业务,接口地址,鉴权方式,入参, 出参,错误码等。。。

接口文档分析4要素:

  1. 接口地址URL
  2. 请求方式:get、post、delete、put、option。。。;
  3. 请求参数:URL后追加的参数、请求body参数、请求头header参数;
  4. 响应结果:判定接口测试是否通过的一个标准

5.1.1.接口构成图解

5.2.制定接口测试计划

测试计划就是功能测试计划基本一样就是知名的5w1h

  1. why—为什么要进行接口测试;
  2. what—测试接口包括哪些;
  3. when—测试接口不同阶段的起止时间;
  4. where—相应接口文档,接口缺陷的存放位置,测试环境等;
  5. who—项目有关人员组成,哪些接口分配给哪些人;
  6. how—使用哪些测试工具以及测试方法进行测试。

5.3.编写接口测试用例&评审

接口用例思路:

1.正例:输入正常入参,接口能够成功返回数据,一般考虑下面几个方面

        所有必填参数

        全部参数(必填参数+选填参数)

        参数组合(必填参数+某些选填参数)

2.反例:

        鉴权反例:鉴权码为空,鉴权码错误,鉴权码过期 ......

        参数反例:参数为空、null,少参,多参,参数类型异常,参数长度异常(边界值)

        错误码覆盖:根据业务而定的

        其他错误场景:接口黑名单,接口调用次数限制,分页场景                                   

5.3.1.接口测试用例参考模板

在这里插入图片描述

5.4.接口测试数据&脚本

参考文档主要以目前整理出来的Postman工具相关的介绍文档,后续会不断更新其他工具相关的

5.4.1.公共数据维护

1.接口用例编写中有很多重复的数据定义,每个接口都需要写服务器地址,不同的环境下服务器地址不一样,引用【环境变量】减少服务器地址改变,对接口的修改;

2.不同的接口之间,会有参数传递的现象,也就是下一个接口要使用上一个接口某个字段的返回值,此时,则可以引用【全局变量】来解决

1-2 参考文档:

Postman的环境变量和全局变量_沫沫18S的博客-CSDN博客

3.某些接口,某些字段每次均需生成新的值,可使用前置脚本设置【自定义的全局变量】供接口调用时引用

3 参考文档:

Postman内置动态参数和自定义的动态参数以及断言方式_沫沫18S的博客-CSDN博客_postman内置参数

5.4.2.多组数据测试

某些接口测试时,需要正/反向同时执行多组测试数据,创建一个CSV或JSON文件,将相关测试数据均添加进去,读取该文件,这就是著名的数据驱动测试DDT

参考文档:

Postman之CSV或JOSN文件实现数据驱动_沫沫18S的博客-CSDN博客

5.4.3.接口依赖处理

参考文档:

Postman接口关联使用正则表达式提取_沫沫18S的博客-CSDN博客

Postman的环境变量和全局变量_沫沫18S的博客-CSDN博客

5.4.4.接口结构判断:断言

参考文档:

Postman常用断言功能解析_沫沫18S的博客-CSDN博客

5.5.接口测试执行

使用接口测试工具执行接口测试

常用测试工具列表

  • Postman:post/get接口实战、接口自动化
  • JMeter:post/get接口实战、接口性能、接口自动化
  • Pytest+Request+Allure+即时报警:接口自动化
  • Fiddler/Charles:接口抓包工具
  • Loadrunner:接口性能
  • Wireshark:可抓各种协议的包进行分析
  • Soapui:既可以做接口测试也可以做自动化测试
  • Apifox、poster、Httprequester。。。

5.6.接口测试报告

Postman+Newman+Jenkins或Jmeter+Jenkins实现持续集成,输出测试报告并且发送邮件

参考文档:

Postman之Newman命令行运行脚本生成HTML报告_沫沫18S的博客-CSDN博客

Postman批量运行_沫沫18S的博客-CSDN博客

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

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

相关文章

普通人如何不被 OpenAI 取代?

Datawhale干货 Tw93,前端工程师,Datawhale邀约作者知乎:https://www.zhihu.com/people/tw93Github:https://github.com/tw93今天试了试OpenAI的一些功能,通过主题来记录一下使用场景,发现了不少它强于普通人…

R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算

全文链接:http://tecdat.cn/?p30726在存在缺失数据的情况下,需要根据缺失数据的机制和用于处理缺失数据的统计方法定制变量选择方法。我们专注于可以与插补相结合的随机和变量选择方法的缺失方法(点击文末“阅读原文”获取完整代码数据&…

nginx解析漏洞复现

学习积累: 存在该漏洞的原因:是一种用户配置不当造成的漏洞 这里我是部署了vulhub靶场 直接执行docker-compose up -d启动容器,无需编译。 造成该漏洞的配置条件: (不受php、nginx的版本限制) &#…

计算机毕业设计java基于springboot的在线动漫平台

项目介绍 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springbootvue 在线动漫信息平台主要是为了会员方便对动漫信息的了解以及查看今日论坛信息和查看热门动漫、文章专栏等信息,也是为了更好的让管理员进行更好存…

适合linux的软件

Konqueror Konqueror是KDE桌面系统的一部分,主要用于文件管理、各种格式档案的查看,以及网页浏览。它有以下区别于其它浏览器的优点: 支持用Firefox, Chrome打开网页丰富的快捷键功能Web浏览器, 文件浏览器于一体运行速度非常快, 快于Chrom…

Android -- 每日一问:两个 Fragment 之间如何进行通信 ?

知识点 先说一下 Fragment,中文可以叫片段,其实我们也可以把它理解成一个组件,它有自己的生命周期(回调函数),可以组织UI和业务逻辑。但它不像 Android 的四大组件(Activity, Service, Broadca…

Blend for Visual Studio 让XAML也可以像WinForm一样可视化设计,Blend 与Studio的区别

1.Blend独有的高级功能 任务Visual StudioBlend for Visual Studio更多信息设计可视状态没有可帮助你设计可视状态的工具;必须以编程方式创建它们。使用设计工具可基于其状态更改控件的外观。创建动画没有用于动画的设计工具;必须以编程方式创建它们。 …

《WEB安全漏洞100讲》(第4讲)CSRF漏洞

1.CSRF漏洞原理 CSRF(Cross-site request forgery),跨站请求伪造,简写 CSRF/XSRF。指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的…

【java】4-线程的状态

1. 线程状态的含义 线程在不同的时期具有不同的状态,线程状态是线程实例的一个非常重要的属性,我们可以通过状态看到当前线程究竟是在被创建,运行,阻塞还是已经中断,或是处于别的状态,以便更好地对于代码进…

ARM通用中断控制器GIC之中断控制

在阅读本章之前,可以参考笔者之前关于GIC的一些描述: ARM通用中断控制器GIC(generic Interrupt Controller)简介 ARM架构Generic Interrupt Controller(GIC)之Distributor和CPU interface功能介绍 ARM架构Generic Interrupt Controller(GIC)详解之术语…

一文带你快速搭建框架(最全MyBatis笔记)

目录 一.概述 1.简介 2.maven构建 二.相关概念 1.Mapper接口 2.ORM思想 三.映射配置文件 1.文件结构 2.映射配置文件标签详解 3.SQL语句中参数的获取 (1)获取方式 (2)参数类型 4.各种SQL操作 5.处理表字段和实体类属性名不一致的情况 6.多对一映射关系的处理 7…

InnoDB引擎架构

1、逻辑存储结构: 表空间(ibd文件):一个Mysql实例可以对应多个表空间,用于存储记录、索引等数据。 段:分为数据段、索引段、回滚段、 InnoDB是索引组织表,数据段就是B树的叶子节点&#xff0c…

使用Flink1.16.0的SQLGateway迁移Hive SQL任务

使用Flink的SQL Gateway迁移Hive SQL任务 前言 我们有数万个离线任务,主要还是默认的DataPhin调度CDP集群的Hive On Tez这种低成本任务,当然也有PySpark、打Jar包的Spark和打Jar包的Flink任务这种高成本的任务【Java和Scala都有】。毕竟SQL上手门槛极低…

【邻接表】【数组表示链表】怎么用数组链表 表示 邻接表

怎么用数组链表 表示 邻接表***邻接表(数组链表)是怎么存储的?***邻接表(数组链表)是怎么存储的? 正常情况下,我们用链表存储的话,我们让 1 指向 2 我们会给出 1 和 2的地址&#xf…

Java基于JSP二手书交易平台设计与实现

现代网络技术发展迅速,传统的书店销售模式受到诸如场地、资金、宣传等因素制约,已经不能满足人们的日益增长的图书购买需求,网上书店应运而生,基于web的网络书店给人们带来了很大便利,网络书店不仅是传统售书模式的发展…

AidLux智慧交通AI安全实战学习

本次参加AidLux训练营,Rocky作为主讲老师,学习到了利用目标检测算法流程和AI攻防策略进行结合,从而达到安全。 1.检测汽车模型的训练 本次目标检测的模型是Yolov5,首先对标注图片 进行转换,转换为yolov5的格式&#…

《痞子衡嵌入式半月刊》 第 61 期

痞子衡嵌入式半月刊: 第 61 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢…

激光切割机机械结构设计

目 录 摘 要………………………………………………………………………………………Ⅰ ABSTRACT…………………………………………………………………………………… Ⅱ 1 绪论 1 1.1课题背景 1 1.2现实意义 1 1.3设计任务 1 1.4总体设计方案分析 2 2 机械部分XY工作台及Z轴的…

分享99个小清新PPT模板,总有一款适合您

PPT下载链接:https://pan.baidu.com/s/1VW0Eljx1Ac9QEEBaiIvqcg?pwd40hn 提取码:40hn 源码下载链接:ppt.rar - 蓝奏云 采集的参数 page_count 1 # 每个栏目开始业务content"text/html; charsetgb2312"base_url "https:…

如何查找无物流信息单号

我是在一家大公司里面上班,我公司都是那种厂家直销,所以每天发货量是比较大,同时一天都是几家快递同时发货,我是负责每天跟踪物流信息状况,公司要求每天都上报当天发货的快递在24小时之内有没有物流信息,如…