看了很多文章,就这篇说明白了什么是接口测试!

news2025/1/11 0:24:20

接口(API)是一个简称,全名叫应用程序编程接口(Application Programming Interface),是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

工作中的接口如打电话的按键,电梯中的楼层按键,开车时脚踩油门,接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节,我们今天要讲的Web API就是这么一类东西。

例如百度搜索,它提供了搜索接口,简化了你的搜索任务

越底层发现bug,它的修复成本是越低的,接口属于金字塔模型 的中间层,属于收益产出比最高的

金字塔模型

前端随便变,接口测好了,后端不用变

检查系统的安全性,稳定性

系统复杂度上升,传统测试方法成本加大,效率降低,接口可以 解决这个问题

前后端框架分离,从安全层面说

只依赖前端进行验证已经不能满足安全的需求,因为绕过前 端太容易,要对接口做控制,做相应的校验

前后端传输,日志打印等信息是否加密传输也是需要验证的,特别是密码,身份证,银行卡信息等。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

接口测试的原理是什么呢?

测试人员可以借助工具模拟客户端向服务器端发送请求报文,服务器端接收请求报文后,对相应的报文做出处理并向客户端返回应答,工具模拟客户端接收应答,然后测试人员检查应答是否准确,这就是接口测试的原理

接口测试的范围有哪些呢?

关于接口的测试的范围,主要从以下两个方面进行介绍。

1、是否所有的接口都需要测试?

随着系统复杂度越来越高,接口越来越多,想完全覆盖所有接口是一件很困难的事情。

通常情况下,主要测试最外层的两类接口:数据进入系统的接口(调用外部系统的参数为本系统使用)和数据流出系统的接口(验证系统处理后的数据是否正常)

2、被测接口需要测试哪些方面?

测试人员需要关注被测接口的功能是否实现,性能是否达标,安全性是否满足,重点关注数据的交换,传递,处理次数以及控制管理的过程。

接口的分类?

依据所遵循协议的不同,常见接口可以分为以下三类。

HTTP接口,他是基于超文本传输协议开发的接口,但并不能排 除没有使用其他协议

WebService接口,他是系统对外的接口,比如你要从别的网站或服务器上获取资源,一般来说,别人不会把数据共享给你的,他们会提供一个他们写好的方法,让外部人员获取数据,从而达到数据同步的目的。

RESTful接口,简称REST其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方式,降低开发的复杂性,提供系统的可伸缩性。

基于B/S架构的软件系统接口大多数为HTTP接口

接口测试流程?

1、编写接口测试计划

接口测试计划跟功能测试计划是一样的,都是为了确认是否满足需求,确定测试环境及测试计划,为设计测试用例做准备,一般来说,接口测试计划包含概述,测试资源,测试功能及重点,测试策略,测试风险及测试标准

2、编写,评审接口测试用例

根据需求文档,接口文档写测试用例,然后开发,测试一起评审测试用例是否符合需求和相关要求。下面的图里面的内容可以供大家写测试用例的时候参考。

3、执行接口测试

执行接口测试的时候,可以借助已经开发好的工具,如比较主流Jmeter,Postman,SoapUI,或者直接自己写代码进行相应的接口测试。

4、接口自动化测试持续集成

第一,流程方面,在回归阶段加强异常场景的覆盖,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

第二,结果展示,更加丰富的结果展示,趋势分析,质量统计和分析等

第三,问题定位,报错信息,日志更精准,方便问题复现与定位

第四,结果校验,加强自动化校验能力,如数据库信息校验。

第五,代码覆盖率,不断尝试由目前的黑盒向白盒下探,提供代码覆盖率。

第六,性能需求,完善性能测试体系,通过自动化的手段监控接口性能指标是否正常

小编今天就介绍到这里,希望对你有所帮助,如果大家有什么补充的可以留言,互相探讨(^U^)ノ~Y

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

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

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

相关文章

基于Springboot的志愿服务管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的志愿服务管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

【Redis知识点总结】(三)——Redis持久化机制、内存淘汰策略、惰性删除机制

Redis知识点总结(三)——Redis持久化机制、内存淘汰策略、惰性删除机制 Redis持久化RDBAOFAOF与RDB的对比混合持久化 内存淘汰策略惰性删除机制 Redis持久化 Redis有两种数据持久化的方式,一种是RDB、一种是AOF。 RDB RDB是内存快照&#…

数据结构 - 堆(优先队列)+ 堆的应用 + 堆练习

文章目录 前言堆一、什么是堆二、堆又分为大根堆和小根堆三、由于堆的逻辑结构被看成完全二叉树,那么我们先来了解一下完全二叉树。四、堆使用数组还是链表储存数据呢?五、数组构建二叉树和父子节点之间的定位六、堆进行的操作七、实现小根堆1、堆的初始…

【Spring Boot 源码学习】BootstrapContext的实际使用场景

《Spring Boot 源码学习系列》 BootstrapContext的实际使用场景 一、引言二、往期内容三、主要内容3.1 BootstrapContext3.2 BootstrapRegistry 初始化器实现3.3 BootstrapContext 的实际使用场景3.3.1 早期启动时3.3.2 环境配置准备完成时3.3.3 应用上下文准备完成后关闭 Boot…

如果要填写邀请码,但是不想新建窗体 还要有确定和取消按钮和逻辑判断使用模态对话框即可

如果要填写邀请码,但是不想新建窗体 还要有确定和取消按钮和逻辑判断 如果你不想新建窗体来填写邀请码,但又希望有确定和取消按钮以及逻辑判断, 如果你不想新建窗体,并且希望在需要时显示一个临时的文本框来填写邀请码&#xff…

遥感生态指数(RSEI)——四个指数的计算

遥感生态指数RSEI(Risk-Screening Environmental Indicators)分布数据是一种基于卫星遥感影像反演计算得到的数据产品。生态环境质量评价在一定程度上反映一个地区生态环境系统的好坏,也可以在一定程度上反映人类社会活动和环境质量的关系,其对可持续发展…

Sftp服务器搭建(linux)

Sftp服务器搭建(linux) 一、基本工作原理 FTP的基本工作原理如下: 1)建立连接:客户端与服务器之间通过TCP/IP建立连接。默认情况下,FTP使用端口号21作为控制连接的端口。​​​​​​​ 2)身…

Halcon棋盘格畸变矫正

前言 通常我们使用的相机都是带有一定的畸变的,只是畸变的大小不同。对于我们常见的测量项目来说,对测量精度的要求很高,通常从相机镜头上进行优化,但是即使镜头优化或者成本原因,造成图像仍有一定的畸变时&#xff0…

微信小程序-可以用区域

简介 movable-view和movable-area是可移动的视图容器,在页面中可以拖拽滑动。 本篇文章将会通过该容器实现一个常用的拖拽按钮功能。 使用效果 代码实现 side-view.wtml 布局见下面代码,left view为内容区域,right view为操作按钮&a…

Python学习:因为爱所以学

python的概念 Python是一种通用、高级、解释性的编程语言,最初由Guido van Rossum于1991年设计并开发。Python具有简单直观的语法结构,易于学习和阅读,被广泛应用于多个领域,包括软件开发、数据科学、人工智能等。 以下是Python的…

2024蓝桥杯每日一题(归并排序)

一、第一题:火柴排队 解题思路:归并排序 重点在于想清楚是对哪个数组进行归并排序求逆序对 【Python程序代码】 from math import * n int(input()) a list(map(int,input().split())) b list(map(int,input().split())) na,nb [],[] for …

java常用排序算法——二分查找(折半查找)概述

前言: 普通查找指的是把需要查找的数和数组中的数依次对应,直到找到该数字。但如果数据庞大,则会非常耗时间,降低性能,所以二分查找是一个好方法,记录下二分查找的使用心得。打好基础,daydayup!…

LCR 179. 查找总价格为目标值的两个商品 - 力扣

1. 题目 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 2. 示例 3. 分析 我们首先想到暴力解法,这道题目的暴力还是比较简单的,列举每个数的情况即可…

【嵌入式】字体极限瘦身术:Fontmin在嵌入式UI中的魔法应用(附3500常用汉字)

1. 概述 在嵌入式系统的用户界面(UI)设计中,字体的选择和优化至关重要。一个恰当的字体不仅能够提升用户体验,还能彰显产品特色。然而,由于嵌入式设备常常受限于存储空间和处理能力,大型字体文件可能成为性…

HTML 学习笔记(四)图片

<!--通过图片标签"<img src "图片路径">"来调用图片在网页中进行显示--> <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthd…

基于Leatlet标注Geojson下载器实现

在上一篇文章中&#xff0c;我们学习了Leaflet的基础知识&#xff0c;包括如何创建地图、添加图层等。在本文中&#xff0c;我们将深入学习Leaflet中标注的创建和管理&#xff0c;包括如何添加标注、自定义标注图标、创建图层组、批量添加和删除标注、为标注添加属性和弹出框等…

Spring Boot工作原理

Spring Boot Spring Boot 基于 Spring 开发&#xff0c;Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能&#xff0c;只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说&#xff0c;它并不是用来替代 Spring 的解决方案&#xff0c;而是和 Spr…

HTML5基础2

drag 可以把拖放事件拆分成4个步骤 设置元素为可拖放。为了使元素可拖动&#xff0c;把 draggable 属性设置为 true 。 <img draggable"true"> 拖动什么。ondragstart 和 setData() const dragestart (ev)>{ev.dataTransfer.setData(play,ev.target.id)} …

码垛【FB块】

转载&#xff1a; FUNCTION BLOCK 码垛 VAR INPUT 当前数:INT; 点l:Point; 点2:Point; X行数:REAL; Y列数:REAL; 2层数:REAL; END VAR VAR OUTPUT 目标点:Point; 点数量:INT; END VAR VAR // X差值:点2.x-点1.x; IF X行数>1 AND X差值<>0 THEN X间隔:X差值/(X行数-1)…

vue结合vue-electron创建应用程序

这里写自定义目录标题 安装electron第一种方式&#xff1a;vue init electron-vue第二种方式&#xff1a;vue add electron-builder 启动electron调试功能&#xff1a;background操作和使用1、覆盖窗口的菜单上下文、右键菜单2、监听关闭事件、阻止默认行为3、创建悬浮窗口4、窗…