您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

接口测试从入门到精通

时间:2023-05-26 15:03:00  来源:  作者:测试玩家勇哥

接口测试:什么是接口测试?怎样做接口测试?

什么是接口测试?

接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据库的对接。

而接口测试,则是通过接口的不同情况下的输入,去对比输出,看看是否满足接口规范所规定的功能、安全以及性能方面的要求。

为什么要做接口测试?

接口测试有以下几个优点:

  • 相比系统测试,更早介入测试,提高效率

  • 可以发现前端测试不了的问题,提高版本质量

  • 接口标准化了,更容易实现自动化和持续集成,降低测试成本

因此在软件测试招聘岗位的要求中,无论是功能测试、自动化测试、性能测试亦或测试开发岗位,接口测试都是必须掌握的!!!!!

如何开展接口测试?

接口测试的开展一般包含5个部分:接口文档分析、接口用例设计、执行接口用例、定位bug提交并跟踪、输出接口测试报告。

1. 接口文档分析

接口文档一般是由后端开发提供,可以是在线的swagger也可以是word。若开发未提供接口文档,则可通过抓包工具fiddler或charles去抓取接口信息进行分析,进行接口测试。

获取到接口文档后,我们需要理清楚每个接口包含的请求、响应信息,概括为 接口信息五要素

  • 接口地址 url:http-请求协议,api.demo.com-域名或ip,8080-端口号,/login-资源路径

  • 请求方法:看开发定义的请求方法是什么,测试就对应用什么方法。restful 风格中常见的请求方法为 post、get、put、patch、delete 等,也有一些不规范的公司只用 get、post 这两种。

  • 请求头 headers:发送请求到服务器,包含的头部信息。常见的 content-type、token、User-Agent等或者带上一些反爬的措施。

  • 请求体 body/params:发送请求到服务器,具体传递的数据。例如要完成登录接口的调用,请求体包含手机号 phone、密码pwd、验证码 code 等等。

  • 响应内容:接口文档中描述的响应内容,与接口测试的实际结果做比较,可以判断当前接口是否通过。响应内容包含:响应码-http状态码、响应头、响应体等等。

2. 接口用例设计

接口用例设计跟功能测试思维相通,需要:

  1. 清楚项目业务!!! 这个是重点,如果业务部清除,只能是胡乱测试,浪费产品,研发,测试大家自身的时间

  2. 用例设计8大方法:等价类、边界值、场景法、状态迁移法、错误推测法等等一大堆。

  3. 用例设编写常用模板:常见的有yarm,ExcelMySQL,xmind。推荐使用excel,方便快捷,复制粘贴简单!

  4. 常用测试工具:纯Python/ target=_blank class=infotextkey>Python脚本、postman、jmeter;建议使用纯python,可以锻炼自己的代码能力,提升自审的综合能力!

以下是使用excel编写的一个简单的登录功能的接口用例模板参考:

用例编号 接口地址 请求方法 请求头 请求体 前置脚本 后置脚本 预期结果 实际结果 测试结果
TC01 /login POST Application/json {"phone":"13800000000","pwd":"12345678","code":"1234"} 参数加密 参数提取 {"code":200,"msg":"OK","data":{"id":1,"name":"test"}} 同预期  

3. 执行接口用例,进行接口测试

接口测试原理:

模拟客户端(浏览器)发送请求到服务器,服务器接收请求并处理,返回响应到客户端, 客户端接收响应这样的一个过程。

通过接口测试原理可知,进行接口测试需要借助工具或代码。主流的接口测试工具有python、Jmeter、postman等。使用工具编写脚本,需要结合接口项目具体应用场景来设计,运用关联、参数化、断言等技术。

例如,使用postman工具来执行登录功能的接口用例,步骤如下:

  1. 在postman中创建一个新的请求,填写接口地址url和请求方法POST

  2. 在Headers选项卡中添加请求头Content-Type:application/json

  3. 在Body选项卡中选择raw模式(json),输入请求体数据

  4. 点击Send按钮发送请求,查看响应内容

  5. 在Tests选项卡中编写断言脚本,验证响应内容是否符合预期

  6. 在Collection Runner中批量执行多个接口用例,并生成测试报告

4. 发现bug、定位、提交并跟踪

怎么判断是否是bug呢?

  1. 接口测试中响应结果错误,返回了错误的code码、msg信息:

判断请求:请求地址、方式、请求头、请求正文是否正确,如果不正确则修改对应请求信息再做发送;如果正确,则说明是服务器端问题

进一步查看服务器日志、数据库信息,并整理信息提交bug

  1. 接口测试中响应结果,code码、msg正确,但返回的data数据不正确:

查看数据库数据正确完整性,并结合服务器日志,整理信息提交bug

  1. 接口测试中响应结果正确,比如:增删改业务操作:

需进一步确认到数据库层面,数据增删改的正确性

  1. 考虑安全性:一般接口对请求会做出一些限制,比如请求次数、请求频率限制;涉及敏感信息是否加密

5. 接口测试报告

接口测试报告的整理这个看公司要求。

有些公司是在整个项目测试结束后,整理一份统一的测试报告。

有些公司会要求输出阶段性的测试报告。

接口测试报告一般包含以下内容:

  • 测试目的:说明本次测试的目标和范围

  • 测试环境:说明测试所使用的硬件、软件、网络等条件

  • 测试工具:说明测试所使用的工具或代码

  • 测试结果:说明测试执行的总体情况,包括通过率、失败率、缺陷数等

  • 测试分析:说明测试发现的问题和建议,以及对测试过程和效果的评价

  • 测试附件:提供相关的测试文档和数据

如果公司有自己的平台或者框架,一般都是直接将测试报告结果自动发送处理或者手动导出发邮件或者钉钉、企业微信之类的提交,也有一些不太规范的公司,直接就是测试人员自己看测试结果,看完就结束整个过程(吐槽一下:这种公司一般开发、产品都不怎么关心接口质量,比较多的是关心前端输入不导致出错,具体说就是质量意识不强!!作者生涯以及作者的大部分朋友在工作中遇到的大部分都是这种公司 )!!

总之:接口测试是软件测试中不可或缺的一部分,它可以有效地提高软件质量和开发效率。



Tags:接口测试   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
接口测试的方法与技巧,你学会了吗?
接口测试是确保软件系统接口功能、性能和可靠性等方面的关键步骤。以下是一些常见的接口测试方法和技巧:1. 输入验证验证接口对于不同的输入数据是否正确处理和响应,包括: 正常...【详细内容】
2023-12-07  Search: 接口测试  点击:(172)  评论:(0)  加入收藏
关于接口测试,你了解多少?
1.为什么接口测试在前? 站在专业角度分析:优先做接口测试再做功能测试。 企业项目基本前后端分离,后端接口优先出来,并与前端进行联调,可优先实施接口测试。待前后端联调通过后,将...【详细内容】
2023-09-07  Search: 接口测试  点击:(240)  评论:(0)  加入收藏
优化自动化接口测试:利用钩子函数增强HTTP请求处理
在自动化接口测试中,我们经常需要发送HTTP请求来模拟用户的操作并验证接口的正确性。够灵活处理请求参数、添加认证信息以及处理依赖参数。这正是钩子函数的用武之地。下面勇...【详细内容】
2023-06-16  Search: 接口测试  点击:(95)  评论:(0)  加入收藏
接口测试从入门到精通
接口测试:什么是接口测试?怎样做接口测试?什么是接口测试?接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。所...【详细内容】
2023-05-26  Search: 接口测试  点击:(71)  评论:(0)  加入收藏
什么是接口测试?怎么做接口测试?
今天我们就来浅聊一下什么是接口测试,接口测试又该如何进行呢?一、什么是接口测试?接口测试是一种常见的软件测试方法,用于测试软件系统中不同模块之间的接口。接口是指两个或多...【详细内容】
2023-02-22  Search: 接口测试  点击:(117)  评论:(0)  加入收藏
接口测试和功能测试的区别
接口测试和功能测试虽然都属于软件测试的范畴,但两者的测试目的、测试内容和测试重点都有所不同。那今天我将接口测试和功能测试配合实例为大家介绍这两种测试的区别,以 Apifo...【详细内容】
2023-02-17  Search: 接口测试  点击:(175)  评论:(0)  加入收藏
接口测试主要测哪些方面?
当今互联网时代,接口测试已经成为软件测试的一个重要组成部分。接口测试是指对系统各个接口进行验证,确保接口的正确性、稳定性和安全性。接口测试是软件开发过程中不可缺少的...【详细内容】
2023-02-16  Search: 接口测试  点击:(90)  评论:(0)  加入收藏
requests 让接口测试如此简单
requests一、简介使用 python 做自动化接口测试需要用代码发送 http 请求。requests 是 Python 语言里网络请求库中最好用的,没有之一。requests 库有完善详尽的中文版官方...【详细内容】
2021-12-01  Search: 接口测试  点击:(267)  评论:(0)  加入收藏
如何使用requests通过代码实现接口测试自动化?
前言接口测试是我们在测试工作中经常见到的,我们工作中常用到的接口工具有jmeter,postman,soupUI等工具,那么在通过代码做接口测试呢?或者通过代码的方式做接口自动化呢? requests...【详细内容】
2021-07-23  Search: 接口测试  点击:(278)  评论:(0)  加入收藏
如何优雅地使用httprunner测试框架进行接口测试?收藏
先来个小故事:一天,你的领导丢给你几十个接口,然后希望你输出报告。你:"exm?",改改改。于是你引入了unittest单元测试框架、HTMLTestRunner等等。正打算将各个测试用例分类重新规...【详细内容】
2020-11-04  Search: 接口测试  点击:(339)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条