接口测试 — 1.接口和接口文档概念

1、接口的概念

接口又叫API,全称application programming interface:应用程序接口(规范),也就是我们经常会听说Web接口,APP接口。

详细说明:

APP是一种基于C/S架构的应用程序,如抖音、微信等。完整的体验是基于APP客户端和后台云服务端共同作用的结果。

客户端和服务端的数据传递,也就是指客户端向服务端发送请求,服务端响应客户端的过程。

这一系列的通讯都是基于web协议通讯构成的,在利用web协议通讯的时候,企业内通常都会规定客户端和服务端的数据交换格式,这种格式可以是企业内部规定的,也可以是使用webservice国际通用标准,这样一来客户端和服务端就使用同一套标准进行接口间的通讯。

同样的道理,web接口也是如此,web应用通常是B/S架构,客户端是我们熟悉的浏览器。

总结概括:接口就是客户端与服务端之间的标准,或者是共同遵守的一套数据交互的规范。(一般由项目负责人/架构师来制定接口)

2、为什么要使用接口

在项目中未采用接口时:

  1. 研发标准不统一,团队磨合难度高。

  2. 研发周期长。

  3. 可扩展性差。

在项目中使用接口的优点:

  1. 统一设计标准。

  2. 扩展性灵活。

  3. 前后端开发相对独立,前后端都可以使用自己熟悉的技术。

如果你想学习接口测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

Postman接口测试使用教程和接口自动化测试项目实战你要的都有_哔哩哔哩_bilibiliPostman接口测试使用教程和接口自动化测试项目实战你要的都有共计32条视频,包括:1.精通Postman之课程大纲和效果展示、2.精通Postman之接口测试简介和分类、3.精通Postman之接口测试流程和用例设计等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11K4y1J7sh/?spm_id_from=333.337.search-card.all.click

3、接口文档介绍

接口规范以接口文档的形式进行体现,我们做接口测试也是依据接口文档进行测试。

在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。

接口文档基本形式如下:

名称添加发布会
描述添加发布会
URLhttp://127.0.0.1:8000/api/add_event/
调用方式POST
请求参数eid # 发布会
idname # 发布会标题
limit # 限制人数
status # 状态
address # 地址
start_time # 发布会时间
返回值{‘status’:200,‘message’:’add event success’}
状态码每一个状态码要有一条用例。
{‘status’:10021,’message’:’parameter error’}
{‘status’:10022,’message’:’event id already exists’}
{'status':10023,'message':'event name already exists'}
{'status':200,'message':'add event success'}
说明说明参数传入方式,签名校验方式,加密方式等等。

4、接口文档要素

一般情况下,开发前就有相应的接口文档,接口文档的形式有很多种,以excel表格或者Word文档或者使用接口管理工具(如swagger等)输出,接口文档包含以下主要的内容:

(1) 接口名称

接口详情说明
接口名称添加发布会
接口描述调用该接接口会创建一个发布会

(2)接口URL

名称说明
请求协议http或者https
接口URL127.0.0.1:8000/api/add_event/
请求方式新增(post) 修改(put) 删除(delete) 获取(get)等

提示:接口URL也可以形成URI的形式,就是把服务器地址省略掉,例如:/api/add_event/

(3)请求参数

字段说明类型是否必填备注
eid发布会Number默认:10001
idname发布会标题String默认:填写发布会标题
start_time发布会时间Date格式:2018-02-06 10:30:00

提示:一般数据类型为String、Number、Object、Array、Date几种类型。

(4)返回值

例如:{‘status’:200,‘message’:’add event success’},还可以有其他所需字段。

字段说明类型是否必须返回备注
code接口状态码Number成功:200 失败:其他状态码
message接口信息String成功:sucess 失败:提示信息

提示:

正常请求参数返回值(必有)。 错误请求参数返回值(看公司要求)。

五、接口测试概念 (重点)

接口测试是测试系统组件间接口的一种测试,它界于单元测试与系统测试中间。

接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

换句话说,接口测试就是开发人员把这个接口实现了,我们需要去验证这个接口的实现是否正确。但这是一个后台的功能,不想让前端人员介入,因为让前端人员介入的话会比较麻烦。

总结概括:接口测试就是代替前端验证服务端程序是否正确。

六、接口测试原理 (重点)

  • 测试人员借助工具模拟客户端向服务器端发送请求。

  • 服务器端接受请求后,对请求进行相应的处理并向客户端响应结果。

  • 客户端接收响应数据后,测试人员对结果进行判断的一个过程。

接口测试是黑盒测试。作为黑盒测试,基本的测试思路是通过输入和输出判断被测系统或者对象的逻辑是否正确。

3、做接口测试的依据是什么

  1. 需求。熟悉实际的业务需求可以更好的帮我们设计测试用例,准备测试数据。
  2. 接口文档。根据接口说明文档开发接口测试脚本,执行脚本。
  3. 原型图。可以根据原型图更好的判断实际测试数据,是否符合接口之间的逻辑关系。

4、接口测试分类 (重要)

  • Web接口测试:

    • 服务器接口测试:测试自己公司实现的接口(工作中的重点)

      同一个系统内部不同模块、不同服务之间的调用。

      比如:目前主流的系统架构为应用层、服务层和数据层。应用层:负责展示数据和发起数据请求。服务层:为应用层提供数据处理。数据层:用来存储数据,有关系型数据库等,各层之间的交互就是通过服务器接口。

    • 第三方接口测试:测试别人公司实现的接口(不同系统甚至不同公司之间的接口调用)

      在项目中会用到很多第三方接口,比如要做一个系统来展示每天的天气,那天气数据是怎么得到的呢?不可能自己去预测天气,有免费的第三方接口可使用,只需按照接口协议调用想要的天气数据即可。当然这是调用系统外部的数据。

      还比如第三方登录时调用外部公司的微博登录、微信登录接口等。

  • 模块接口测试:就是测试一个类中的方法,或者说模块中的一个接口。

    一个程序内部接口的测试,模块接口测试是单元测试的基础,它主要测试模块的调用与返回。

5、接口测试的特点

  • 无UI界面:在做接口测试的时候是无法看到应用界面的。
  • 无UI交互操作:既然无UI页面,也就不可能在UI上进行点点点操作了。
  • 不同于手工测试:接口自动化测试可用于持续集成,接口覆盖率也比较高。
  • 基于协议:接口测试是带访问协议的测试,需要测试协议和协议中的内容是否正确。
  • 数据验证:检查数据的交换,传递和控制管理过程,还包括处理的次数,业务逻辑是否正确。
  • 格式校验:请求参数和返回值的数据格式校验,包括参数的缺省,返回的数据是否完全等。

参考:

  • https://www.boxuegu.com/news/3876.html

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

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

相关文章

MYSQL练题笔记-子查询-电影评分

一、题目相关内容 1)相关的表 2)题目 3)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 1.字典序是指从前到后比较两个字符串大小的方法。 首先比较第1个字符,如果不同则第1个字符较小的字符串更小&…

Retrofit嵌套请求与适配器

一、前言: 1. retrofit嵌套请求 在实际开发中,可能会存在:需要先请求A接口,在请求B接口的情况,比如进入“玩android”网页请求获取收藏文章列表,但是需要先登录拿到Cookie才能请求搜藏文章几口&am…

day01、什么是数据库系统?

数据库系统介绍 1.实例化与抽象化数据库系统2.从用户角度看数据库管理系统的功能2.1 数据库定义功能2.2 数据库操纵2.3 数据库控制2.4 数据库维护功能2.5 数据库语言与高级语言 3.从系统:数据库管理系统应具有什么功能 来源于战德臣的B站网课 1.实例化与抽象化数据库…

Node.js 事件循环简单介绍

1.简介 Node.js 事件循环是 Node.js 运行时环境中的一个核心机制,用于管理异步操作和回调函数的执行顺序。它基于事件驱动模型,通过事件循环来处理和派发事件,以及执行相应的回调函数。 Node.js 是单进程单线程应用程序,但是因为…

QT QIFW Windows下制作安装包(一)

一、概述 1、QIFW是一款基于QT框架开发的跨平台安装框架。QIFW是QT Installer FrameWork的缩写,支持Windows、Linux和macos等多种平台。QIFW可以帮助开发者创建自己的安装程序,将它们打包到通用的安装包中,并提供可视化的界面进行安装。 2…

mysql:用SHOW CREATE TABLE tbl_name查看创建表的SQL语句

https://dev.mysql.com/doc/refman/8.2/en/show-create-table.html 可以用SHOW CREATE TABLE tbl_name查看创建表的SQL语句。 例如,SHOW CREATE TABLE test_table;表示查询创建test_table表的SQL语句:

刘元昌:期待更多年轻人的第一杯精酿是失眠企鹅

12月7日下午,2023(第十八届)大河财富中国论坛盛大开启。作为先行论坛,2023新消费峰会火热开场。此次峰会以“提质新消费 释放新活力”为主题,集论坛、演绎、展示、互动为一体,把峰会变身“秀场”&#xff0…

腾讯-轻量应用服务器centos7中宝塔安装MySQL8.0出现内存不足

目录 前言 出现的问题: 解决方法: 编译安装: 极速安装 其他 我的其他博客 前言 说实话,本人也就是个穷学生买不起啥大的服务器啥的,整了个2核 2内存的服务器 用宝塔按mysql5.5是没问题的,一切换8.0就提醒内存不足…

UE5 - ArchvizExplorer与Map Border Collection结合 - 实现电子围栏效果

插件地址: https://www.unrealengine.com/marketplace/zh-CN/product/archviz-explorer https://www.unrealengine.com/marketplace/zh-CN/product/map-border-collection ArchvizExplorer扩展: https://download.csdn.net/download/qq_17523181/8843305…

freemarker+Aspose.word实现模板生成word并转成pdf

需求:动态生成pdf指定模板 实现途径:通过freemarker模板,导出word文档,同时可将word转为pdf。 技术选择思路 思路一:直接导出pdf 使用itext模板导出pdf 适用范围 业务生成的 pdf 是具有固定格式或者模板的文字及其…

数据采集网关:工业数据采集上云

数据采集网关,以其高效、便捷的特点,成为了现代工业物联网数据采集处理的重要工具。它是连接不同数据源和数据接收设备的桥梁,将各种形式和格式的数据快速、安全地汇聚到一起。通过数据采集网关,企业可以轻松实现数据的整合、转换…

函数创建与使用

函数使用的原因 函数是设计出来是为了完成某项功能的代码块。只要调用就能执行。实现代码复用。代码复用是不是复制,而是同样的代码不用写很多。只要用调用的代码来写,就能完成。将功能代码放到某个地方。函数的设计就是为了代码复用。 声明函数和调用…

【算法题】字符统计及重排(js)

解法&#xff1a; const str "xyxyXX"; const str1 "abababb"; function solution(str) {const strArr str.split("").sort((a, b) > a - b);const map new Map();for (let i 0; i < strArr.length; i) {if (map.has(strArr[i])) {m…

摇头机,舞台灯,白色家电,3D打印,医疗器械等安防芯片步进驱动选型GC系列,低成本,大电流

GLOBALCHIP新一代的安防产品用的芯片&#xff0c;GC3901 GC3909 GC3910 GC3911 GC8548 GC8549 GC6609 GC6610 GC2003 GC2803 GC2804步进驱动 达林顿选型型号&#xff0c;采用12V H 桥驱动器。其中最大持续电流(A)可达2.5A。其中GC6610&#xff0c;GC6609 是36V&#xff0c;低成…

14-Kafka-Day02

第 4 章 Kafka Broker 4.1 Kafka Broker 工作流程 4.1.1 Zookeeper 存储的 Kafka 信息 &#xff08;1&#xff09;启动 Zookeeper 客户端。 bin/zkCli.sh 因为你在配置kafka的时候指定了它的名字。 &#xff08;2&#xff09;通过 ls 命令可以查看 kafka 相关信息。 [zk: …

超越边界:Mistral 7B挑战AI新标准,全面超越Llama 2 13B

引言 在人工智能领域&#xff0c;模型的性能一直是衡量其价值和应用潜力的关键指标。近日&#xff0c;一个新的里程碑被设立&#xff1a;Mistral AI发布了其最新模型Mistral 7B&#xff0c;它在众多基准测试中全面超越了Llama 2 13B模型&#xff0c;标志着AI技术的一个重大进步…

深兰科技“汉境”入选2023年湖北省人工智能十大优秀应用案例

11月18日&#xff0c;央视“专精特新制造强国”城市大会在湖北武汉召开。会上&#xff0c;正式发布了“湖北省工业互联网标识十大优秀应用案例”&#xff0c;由深兰科技(武汉)股份有限公司基于AIGC多模态融合大模型技术开发打造的江汉路步行街元宇宙场景应用——汉境&#xff0…

Java异步编程之利器:Guava异步编程实践

第1章&#xff1a;引言 - 为什么要用Guava进行异步编程&#xff1f; 大家好&#xff0c;我是小黑&#xff01;今天咱们要聊的是Guava在异步编程中的应用。首先&#xff0c;让我们搞清楚为什么要用Guava来处理异步任务。在Java的世界里&#xff0c;异步编程是个老话题了&#x…

漏洞复现--速达进存销管理系统任意文件上传

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

vue项目 treeselect校验不生效

使用treeselect时&#xff0c;el-form表单检验rules不生效&#xff0c;使用blur与change都无效&#xff0c;我的解决方法代码如下&#xff1a; 在treeselect标签里使用select方法&#xff0c;该方法为选择一个项后发出&#xff0c;在每次选择组织的时候都进行unitId的校验。 …