接口测试常见面试题及答案

1.你们接口测试具体怎么做?

一般开发把接口开发出来之后,会给到我们一个接口文档,首先要搞清楚这个接口的功能,它的作用是什么,请求方式,有哪些参数。参数有什么限制,类型是什么,是否必填,对于参数有不清楚的,一般我们会问下开发,通过以上几个点去设计用例。设计好用例之后,我们利用工具进行检测,我们公司当时用的是JMeter 来做接口测试的。

首先我们要建立一个线程组,然后添加取样器(http 请求),然后填写接口的协议,地址,端口,请求方式,路径,及根据用例填写请求参数,添加一个监听器去查看接口返回的数据,

然后执行,然后依据接口文档对比返回的数据是否与预期结果一致,对于返回的响应的数据的检查,我们主要关注以下几个点:状态码,提示信息,具体的正文内容,看与接口文档说明的是否一致,如果有问题,我们先大概分析下,看是否能定位出具体原因,实在不行就直接提Bug 给开发,让开发修复,之后最回归复测。

2.两个接口有关联,JMeter 具体怎么做

这个涉及到动态关联,首先要搞清楚后一个接口需要用到上一个接口的什么数据,例外要看数据是在哪里取的,是在head 还是在body 里,然后如果要取的数据是json 格式我会在发请求用json 提取器去取这个数据,如果是其他格式的就用边界提取器或正则表达式去取数据。

就拿我当时做的那个下单接口来说吧,因为下单接口需要先登录,需要用到登录接口的cookies 来做鉴权,首先就是把登录接口调试通过,然后在登录接口的http 请求中添加一个边界值提取器或者也可以用正则表示式提取器去提取登录接口的响应头中的cookies 值,然后在下单接口中需要添加一个http cookies 管理器,在http cookies 管理器中引用登录接口提取出来的cookies,这样就可以了。

如果是不同的线程组的话,那在登录接口中还得添加一个Beanshell 取样器,在BeanShell 取样器中,利用函数助手中的SetProperty()函数把提取出来的cookies 设置为全局变量。然后在下单接口的http cookies 管理器中利用函数助手中的Property()函数引用登录接口中设置的全局变量,这样就可以了。

3.接口测试的流程

  • 首先分析开发给到的接口文档

  • 接口文档分析完成,编写测试用例

  • 然后借助接口测试工具去测试执行测试用例

  • 发现bug 提交bug,并跟进bug 修复

4.接口测试主要目的是什么?

主要就是验证后台服务端的业务逻辑有没有问题,提高测试的效率;

其实接口测试就是功能测试,保证功能的业务逻辑没有问题,但是从接口方面来说,直接测试接口的话,就是直接验证后台的业务逻辑,这样效率更好,

例外,接口测试不会受到输入界面的影响,那界面所做出的一些限制也就不存在了,我们直接测的就是后台这一块儿,可以检查后台有没有做到相应的限制。检查后台的数据交互、逻辑以及容错机制,以保证后台系统的安全性。

5.接口测试和平常的UI 测试有什么区别?

其实这两者测试的侧重点是不同的,接口因为没有界面,更多考虑后台服务器对请求的处理逻辑问题,业务交互,检测的是后台"容错机制"是否完整;而UI 更多会去关注页面展示,数据转换,界面排序这些功能,当然也会后台数据处理的问题,UI 测试其实已经包含了接口测试。系统功能的用例更全面,不仅有界面的,也有业务功能用例,还有其他用户场景的用例功能入口用例,流程用例,而接口测试主要根据各种入参场景来设置用例。

6.给你一个新的接口,你怎么去设计用例?

首先要对于每个要测的接口都要先搞清楚这个接口的功能,它的作用是什么,熟悉这个业务功能需要用到什么协议,请求方式是什么,接口有哪些参数。对于每个参数的作用都要搞清楚,像数的类型,是否有约束限制,是否为必填的,长度,其他的限制等等,如果两个参数之间有关联我们还要考虑参数的组合场景,对于参数不理解的,一般都会跟开发沟通下,然后考虑返回数据的类型,返回数据中的返回码和返回信息是什么,通过以上几个点去提炼测试点,设计用例。(最好举例说明下)

7.接口测试和集成测试有何区别?

集成测试是验证多个组件在一起工作的过程,而接口测试则更加关注这些组件之间的交互和通信。接口测试主要关注数据的正确传输、错误处理和一致性,而集成测试关注多个组件之间的协同工作和功能集成。

8.接口文档主要包含哪些内容?

接口文档一般两种形式的,要不就是word 版本的要不就是html 的形式,具体内容

  • URL(接口地址)

  • 接口功能

  • 请求方式:post

  • 请求参数,以及接口中每个参数的详细说明,类型,是否为必填,约束条件啊等等

  • 响应数据及格式, 返回码,返回码解释等等

9.在进行接口测试时,你会使用哪些工具?

在接口测试中,常用的工具包括:Postman、JUnit、JMeter等。这些工具能够帮助你发送请求、验证响应、处理错误以及执行性能和负载测试。

10.上传文件的接口用JMeter 怎么做

要测试上传文件的接口,在JMeter 的http 请求这个组件中传递请求参数的栏目中专门提供了一个用来文件上传的,在这里面需要填写几个内容,一个就是文件的路径,还有一个就会参数名称,还有就是MIME 类型也就是指定要上传的文件的类型,这样就可以了。

相关推荐
小雨下雨的雨4 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
love530love6 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
遇事不決洛必達7 小时前
【Python基础】GIL 锁是什么及其对爬虫的影响
爬虫·python·线程·进程·gil锁
Jinkxs7 小时前
Prometheus - 监控微服务:Spring Boot 应用指标暴露与监控
spring boot·微服务·prometheus
夜雪闻竹7 小时前
测试策略:单元测试 + 集成测试怎么写
typescript·单元测试·集成测试·chatcrystal
CryptoPP7 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
三十..8 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
探物 AI8 小时前
把 MambaOut 塞进 YOLOv11:会有什么样的反应
python·yolo·计算机视觉
如竟没有火炬8 小时前
最大矩阵——单调栈
数据结构·python·线性代数·算法·leetcode·矩阵
阳区欠9 小时前
【LangChain】LLM基础介绍
开发语言·python·langchain