5分钟了解接口测试

接口测试是指对系统接口进行测试的一种质量保障手段,主要是验证接口的功能、性能、安全性等方面是否符合预期。

在接口测试中,可以测试以下内容:

  1. 功能测试:验证接口的输入和输出是否符合预期,包括参数的正确性、返回结果的准确性等。

  2. 性能测试:测试接口的响应时间、并发处理能力、负载能力等性能指标。

  3. 安全测试:验证接口的安全性,包括身份验证、授权、加密传输等方面的测试。

  4. 兼容性测试:测试接口在不同环境、不同设备上的兼容性,包括操作系统、浏览器、移动设备等。

  5. 接口文档测试:验证接口文档与实际接口是否一致,包括参数说明、返回结果说明等。

  6. 异常场景测试:测试接口在异常情况下的处理能力,包括参数错误、网络中断、服务器宕机等情况下的表现。

总之,接口测试需要全面覆盖接口的各个方面,确保接口的功能、性能、安全性等都符合预期。

那么设计测试用例时我们主要考虑如下几个方面:

1、功能测试

接口的功能是否正确实现了

接口是否按照设计文档中来实现

(比如username参数写为了user,那么这就不符合,因为接口文档在整个开发中都需要使用,所以接口实际的设计要与接口设计文档中保持一致)

  • 兼容性测试:

    比如说今天接口进行了调整,但是前端没有进行变更,这时候需要验证新的接口是否满足旧的调用方式

  • 错误码测试:

    通用的错误码与业务错误码是否能够清晰的说明调用问题,错误码是否能够尽可能的全的覆盖所有的情况

  • 返回值测试:

    返回值除了内容需要是正确的,还需要类型也是正确的,保证调用方拿到这些参数能够正确的解析

参数边界值、等价类测试

  • json格式测试:

    通常我们的接口一般设计的都是传递json串,那么就需要去测试 如果传递非json的情况,这时候程序会不会正确的处理,返回相应的 error code

  • 默认值测试:

    很多情况一些非必填的参数会有默认值,比如说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,当然前置条件是数据库里面必须要存在这样的数据超过10条。

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

软件测试视频教程观看处:

2024年Python自动化测试全套保姆级教程,70个项目实战,3天练完,永久白嫖...

2、逻辑业务

是否有依赖业务,比如查看订单,是需要用户首先登录的,所以肯定要保证登录了或有相应的cookie

业务逻辑测试:传递正确的参数,接口对数据库进行查询的操作,需要去验证数据库查询是否正确,接口对数据库进行 增删改的操作,也需要看数据库是否同步进行了这些操作

图片

3、异常测试

异常分为两类,参数异常数据异常

1、参数异常:

  • 关键字参数:

    将参数写为开发语言中的关键字

  • 参数为空:

    比如去掉了username参数

  • 多或少参数:

    多或者少参数的验证,现在还不确定如果一个接口多了参数如果没有报错是否是合理的,或者是否需要优化,因为就目前开发给予的答案是,一般不对接口多了参数的处理

  • 错误参数:

    比如将username参数写为了user等看是否能返回相应的error code

2、数据异常:

  • 关键字数据:

    将参数的值填为开发语言中的关键字

  • 数据为空:

    将参数的额值填为空

  • 长度不一致:

    因为数据库中每个字段都设置有字段长度,填写不符合的长度进行验证

  • 错误数据:

    就是将参数的值任意填写,或填写不存在的数值

  • 异常类型测试:

    比如count参数,这个参数的类型一定是可以转换为int类型的,这时候我们需要测试如果传的一些不可以 转换为int类型值来测试代码是否加入判断

4、性能测试

  • 响应时间

  • 吞吐量

  • 并发用户数

  • 占用内存,CPU等

5、安全性测试

敏感信息是否加密

必要参数是否后端也进行校验

(现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证)

接口是否防恶意请求(SQL注入)

  • cookie

    将header中的cookie修改或删除后看是否能返回相应的error code

  • header

    删除或修改header中部分参数的值,看是否能返回相应的error code

  • 唯一识别码

    删除修改唯一识别码测试

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

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【无标题】idea的lombok插件支持@SuperBuilder注解啦

在我的博客阅读本文 1. 前言 今早进公司打开idea,弹出更新提示,简单看了下,原来是idea的lombok插件更新了,惊喜的发现update log上写着Add support for SuperBuilder。 为什么说是惊喜呢?因为之前也有用到这个的场景…

Go后端开发 -- Go Modules

Go后端开发 – Go Modules 文章目录 Go后端开发 -- Go Modules一、什么是Go Modules?二、GOPATH的工作模式1.GOPATH模式2.GOPATH模式的弊端 三、Go Modules模式创建项目1.go mod命令2.go mod环境变量3.使用Go Modules初始化项目4.修改模块的版本依赖关系 四、Go Modules下impo…

数据库:基础SQL知识+SQL实验2

(1)基础知识: 1.JOIN(连接): 连接操作用于根据指定的条件将两个或多个表中的数据行合并在一起。JOIN 可以根据不同的条件和方式执行,包括等值连接、不等值连接等。 (1&#xff09…

SAP BAPI 客户主数据创建:cmd_ei_api=>maintain_bapi

BAPI函数:cmd_ei_api>maintain_bapi 事物代码:XD01/XD02 客户主数据创建、修改、拓展功能开发 数据结构定义: 基本视图信息 公司代码信息结构: 销售视图信息结构: 客户主数据税分类信息结构: 代码参考 详细代码…

C++面向对象编程与泛型编程(GP)

C既支持面向对象编程,又支持泛型编程 1.面向对象编程 将数据结构与处理方法(容器与算法)组成对象封装在一个类中,通过类的封装隐藏内部细节,可以使用继承,多态等方法。 注意:list容器本身带有…

计算机毕业设计——SpringBoot 招投标 任务发布网站(附源码)

1,绪论 在市场范围内,任务发布网站很受欢迎,有很多开发者以及其他领域的牛人,更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上,任务发布网站鱼龙混杂,用户需要找一个…

CH341StreamI2C参数解释

总体思路: 第一步:使用EEPROM写入相应的数据 第二步:使用EEPROM读取相应的数据 第三步:使用CH341StreamI2C函数还原读取过程 每一步需要逻辑分析仪进行对比。 第一步:数据写入CH341WriteEEPROM 使用CH341WriteE…

性能测试之Mysql数据库调优

一、前言 性能调优前提:无监控不调优,对于mysql性能的监控前几天有文章提到过,有兴趣的朋友可以去看一下 二、Mysql性能指标及问题分析和定位 1、我们在监控图表中关注的性能指标大概有这么几个:CPU、内存、连接数、io读写时间…

【网络安全】【密码学】常见数据加(解)密算法及Python实现(一)

一、Base64编码 1、算法简介 Base64是一种常见的编(解)码方法,用于传输少量二进制数据。该编码方式较为简短,并不具有可读性,对敏感数据可以起到较好的保护作用。 2、Python实现(调库) &…

每日一道算法题day-one(备战蓝桥杯)

从今天开始博主会每天做一道算法题备战蓝桥杯,并分享博主做题的思路,有兴趣就加入我把! 算法题目: 有一个长度为 N 的字符串 S ,其中的每个字符要么是 B,要么是 E。 我们规定 S 的价值等于其中包含的子…

C++模板(泛型)

1. 模板 1.1 知识点 模板:template 泛型编程: 是指数据的类型是广泛,任意的数据类型 模板:可以将一个函数或类描述成一个模板,例如:画画,给一个人物模型上色彩,根据用户上的色彩是什…

Bean如何诞生与消亡:生命周期探秘【beans 二】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Bean如何诞生与消亡:生命周期探秘【beans 二】 前言bean的创建过程bean的初始化阶段1. 实现InitializingBean接口:2. 使用PostConstruct注解: bean的属性注入1. Set…

视频倒放软件,看视频如何演绎“逆袭”之旅

你是否厌倦了日复一日的平淡生活,渴望时光倒流,重温那些逝去的精彩瞬间?在数字技术的世界里,这样的愿望或许不再遥不可及。视频倒放仿佛让时光倒流,给我们的视觉带来了全新的冲击,今天,让我们一…

新手第一次在linux上用git上传代码到仓库全过程

目录 背景: 过程: -1.去github.com自己的账号先建个仓库repository 0.命令行输入 git version 看下有无安装git 1.git init 初始化了一个Git仓库,你可以 ls -a 看见这个隐藏的目录 3.git add . 添加要上传的文件到Git的暂存区&#xff0…

windows对微信及小程序抓包:Burp+Fiddler+Proxifier

本文由掌控安全学院 - zbs 投稿 话不多说,直接先上个效果图: 新新的版本哈; 好好的抓包哈; 然后直接说我如何配置的: 准备好三个工具:bp、fiddler、proxifier【也可以用其他的进行代理】 bp、proxifie…

ELement UI时间控件el-date-picker误差8小时解决办法

一、问题描述&#xff1a; 在项目中引用了elementui中的date-picker组件&#xff0c;选中的时间跟实际相差八小时&#xff0c;且格式不是自己想要的格式 <el-date-pickertype"date"placeholder"选择日期"format"yyyy/M/d"v-model"form…

R304S 指纹识别模块的硬件接口说明

一.外部接口尺寸图 二.串行通讯 R304S 指纹模块通讯接口定义&#xff1a; 引脚号名称定义描述15V电源输入电源正输入端 DC 4.2--6V2GND电源和信号地电源和信号地3TXD数据发送串行数据输出&#xff0c;TTL 逻辑电平4RXD数据接收串行数据输入&#xff0c;TTL 逻辑电平 三.USB通…

EtherCAT的COE报文

本文主要用于记录工作中需要学习的内容&#xff0c;如有冒犯请私信&#xff01; COE协议 下面我们介绍以下CANOpen在EtherCAT中的应用。 COE的对象字典 COE协议是完全遵循CANopen协议的&#xff0c;但针对EtherCAT通信做了一些扩展&#xff0c;索引为0x1c00~0x1c4f&#xff0…

Java中关键词strictfp有什么作用?

在Java中&#xff0c;关键词strictfp用于声明一个方法、类或接口是严格遵守浮点数计算规范的。 具体作用包括&#xff1a; 保证浮点数计算的结果在不同平台上是一致的&#xff0c;避免由于浮点数计算的不精确性导致的结果不确定性。 指定了严格的浮点数计算规则&#xff0c;禁…

LeetCode刷题---矩阵置零

解题思路&#xff1a; 本题要求原地置换元素 对矩阵进行第一轮遍历&#xff0c;使用第一行第一列来充当该行该列是否要置换为0的标记位&#xff0c;如果第一行或第一列本身就含有零元素&#xff0c;我们使用colZero和rowZero变量来对其标记。如果第i行第j列的那个元素为0&#…