盘一盘接口测试的那些痛点,你现在会解决了吗

前言

说到接口测试,想必大家一定不会陌生。接口测试就是测试系统组件间,接口对接是否顺畅的一种测试。包括测试数据能否交换、能否传递、能否正常控制管理过程,以及系统间的相互逻辑依赖关系,等等。

由于接口测试主要是检测系统与系统间(外部),以及系统内部各个子系统之间的交互点。所以,它会 要求测试人员对业务逻辑有一定的了解,知道企业各个系统运作流程间的联系,以及对数据流向定位有一个清晰的认知。

由此,我们也就不难理解,为什么很多测试新手在做接口测试时,会陷入苦恼之中了。下面,我们一起来盘一盘接口测试那点事儿。

一、接口测试的目的

正所谓先理清关系,才能更好的解决问题,下面,我们先来说说接口测试的目的。主要就这么几个:

  • 用于项目的API层的HTTP接口的功能逻辑验证;
  • 减少手工测试的工作;
  • 实现手工验证不能做的验证;
  • 手工很难充分验证的功能逻辑。

二、接口测试的用途

与其说是接口测试的用途,不如说是接口测试可以带来的优势。我认为,主要包括这几点:

1)验证链接外部接口的性能

正如我们所知道的那样,它一般会用于多个系统间的交互开发,或者拥有多个子系统的软件开发测试中。这是因为它可以验证,这些系统在对外部提供的接口的正确性和稳定性。

2)高性价比

接口测试也适用于一个上层系统中的服务层接口。虽然,越往上层测试,难度会越大,但也正是有了可以实施在多系统、多平台构架下的测试方法,我们才会获得极为高效的成本收益比。

3)测试效果佳

接口测试为高复杂性的平台,带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。

然而,值得注意地是,不是所有测试人员都具备,在一个隔离的测试环境中进行测试的条件,这就使得对接外部接口的测试变得困难了。另外,有时候其他部门的同事,只是人工、静态的审阅一次数据,而并不真正的用数据来做测试,这些都会增加实际测试执行中遇到的风险。

为了解决这些问题,规避接口测试中一些风险,下面,我们就来盘一盘接口测试的痛点及解决办法。

3、接口测试的痛点和解决办法

在做接口测试时,以下几个测试痛点,一定要仔细琢磨下:

痛点①:由于测试环境数据被改动,导致接口测试失败

这个问题,最好的办法就是重新调用数据库中的最新数据。在做测试用例时,也要考虑到实时调用数据的问题,确保不会因数据改动而测试失败。

痛点②:由于测试数据写死,导致接口用例执行失败

其实,这个问题是可以预见的。因为,在进行测试前,跟开发人员做相关问题的提示,是可以避免这个问题的发生的。但如果测试中,还是发生了这个问题,那么我们就需要对数据进行参数化。但切忌过多参数校验,因为这样会使得服务端变得很臃肿。

痛点③ 检查点不够充分

对于很多新手而言,在做接口测试时,往往只会考虑正常的校验点,而忽略异常校验点和不为空校验点。这也提醒我们,在进行测试前,一定要考虑全面,并且多提醒自己,注意一些容易忽略的细节。

痛点④ 执行后产生的数据,导致后面的用例执行失败

很多小伙伴可能都遭遇过类似的现象:前面用例执行的都挺好,后面再执行下个步骤,就显示执行用例失败了。这是什么原因造成的呢?对,就是执行结束后产生了新数据,这些新数据影响了整个后续用例的执行。所以,我们在做测试时,一定要注意清理掉执行过程中产生的特定数据。

痛点⑤ 由执行超时等因素造成的用例执行失败,非404错误

遇到这种问题,最简单也是最无懈可击的办法,就是重跑。哈哈哈~

痛点⑥ 单个接口测试通过,但业务还是有bug

遇到这种情况,一定要尝试组合多个接口,组成一个完整的业务场景,再重测,保证整体顺畅,否则后期使用过程中出现问题,就严重了。

四、做接口测试,需要充分掌握的知识有哪些?

①了解系统及内部各个组件之间的业务逻辑交互;

②了解接口的I/O(input/output:输入输出);

③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;

④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;

⑤数据库基础操作命令(检查数据入库、提取测试数据等);

⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等。

写在最后

日常工作中,我们在做接口测试时,经常会遇到各种各样的问题,这些问题可能会使我们迷惑,也可能会让我们焦头烂额。面对这种情况,最好的办法,就是先冷静下来,根据自己撰写的用例步骤,一步一步来检查究竟问题出在哪个环节,进而探究这个问题是怎么造成的,应该怎么处理。最后,问题解决后,做好相应的笔记记录。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

【RAG 论文】SKR:Self-Knowledge 指导下的 RAG

论文:Self-Knowledge Guided Retrieval Augmentation for Large Language Models ⭐⭐⭐⭐ Tsinghua, arXiv:2310.05002 文章目录 一、论文速读二、实现细节2.1 数据的收集2.2 引出 LLM 的 Self-Knowledge 的方法1)Direct Prompting2)In-Cont…

在uni-app开发的小程序中引入阿里的多色图标

uniapp不支持阿里多色图标,需要使用工具iconfont-tools进行处理 1.首先 在阿里图标库将 需要的图标添加到项目中 并下载压缩包,取出iconfont.js文件 2.安装iconfont-tools,安装完成会显示出安装到了电脑的那个目录 3,进入目录就会看到下面的…

60、郑州大学附属肿瘤医院 :用于预测胃癌患者术后生存的深度学习模型的开发和验证[同学,我们的人生应当是旷野]

馒头老师要说的话: 我近期看了一下北京的脑机公司,大概是我之前对这一行业太过于乐观,北京的BCI公司和研究所,比上海、深圳、杭州甚至是重庆都要少,门槛也要高很多。也有我自己的原因,有时站的太高&#x…

【智能算法】PID搜索算法(PSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2023年,Y Gao受到PID控制理论启发,提出了PID搜索算法(PID-based Search Algorithm, PSA)。 2.算法原理 2.1算法思想 PID算法是控制领域的…

16_Scala面向对象编程_函数

文章目录 1.声明Scala函数2.访问伴生对象3.空对象直接用的方法4.构造对象--通过object获取单例对象--直接new--scala独有apply()方式--scala有参构造--scala构造方法两大类使用辅构造如下上述代码主构造为辅助构造方法甚至可以多个多个辅助构造形参内容不能重不使用辅助构造和使…

数据结构——链表专题1

文章目录 一、移除链表元素二、反转链表三、合并两个有序链表四、链表的中间节点五、环形链表的约瑟夫问题六、分割链表 一、移除链表元素 原题链接:移除链表元素 一个解法是遍历原链表,将与val相等的结点抛弃,链接后一个结点 另一个解法是…

2010-2022年上市公司彭博ESG披露评分、分项得分数据

2010-2022年上市公司彭博ESG披露评分、分项得分数据 1、时间:2010-2022年 2、来源:Bloomberg ESG 指数 3、指标:股票代码、股票简称、年份、ESG披露评分、环境披露评分、社会信息披露评分、治理披露评分 4、范围:上市公司 5、…

详解xml-java语言

1.XML在线学习手册 XML 教程 2.XML可以做什么 1.给两个程序之间进行数据通信。现在用的最多的是JSON。 2.给服务器做配置文件。 3.存储复杂的数据关系。 4.还可以充当小型的数据库。 3.书写格式 <?xml version"1.0" encoding"UTF-8" ?> <…

Ansible 自动化运维工具 - 了解和模块应用

目录 一. Ansible 的相关知识 1.1 Ansible 工具的简介 1.2 Ansible的四大组件 1.3 运维自动化工具 1.4 Ansible 和其它自动化运维工具对比 1.5 Ansible 的优缺点 二. Ansible 环境安装部署 2.1 管理端安装 ansible 2.2 配置主机清单 三. ansible 命令行模块 3.1 comm…

JavaScript中Math函数与舍入

立方根 console.log(Math.sqrt(25)); //数学方式25平方根 console.log(25 ** (1 / 2)); //25的0.5次方 console.log(8 ** (1 / 3)); //8的1/3次方计算最大最小值 console.log(Math.max(1, 5, 88, 22, 132)); //返回最大值 console.log(Math.max(1, 5, 88, 22, 132)); //…

[Flutter]创建一个私有包并使用

在Flutter中创建一个自己的私有组件&#xff08;通常称为包或库&#xff09;&#xff0c;并通过Dart的包管理工具pub进行使用。 一、创建一个新的Flutter包 1.使用命令行创建 使用Flutter命令行工具来创建一个新的包&#xff1a; $ flutter create --templatepackage my_pri…

为什么很多人不推荐你用JWT?

为什么很多人不推荐你用JWT? 如果你经常看一些网上的带你做项目的教程&#xff0c;你就会发现 有很多的项目都用到了JWT。那么他到底安全吗&#xff1f;为什么那么多人不推荐你去使用。这个文章将会从全方面的带你了解JWT 以及他的优缺点。 什么是JWT? 这个是他的官网JSON…