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

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 类型也就是指定要上传的文件的类型,这样就可以了。

相关推荐
前端精髓6 小时前
结构化输出with_structured_output(抽卡)
python·langchain
小此方6 小时前
Re:Mysql数据库基础篇(八):详细讲解复合查询、多表查询、自连接、多行、多列子查询与合并查询
数据库·mysql
smile_life_6 小时前
MySQL 设置 防止账户被暴力破解
数据库·mysql
尹人入圣6 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
滕州市燕猫虎计算机科技工作室个体工商户7 小时前
MySQL、MVCC、多版本并发控制
数据库·mysql·mvcc·数据库事务
Nuanyt7 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌7 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
疯子的梦想@7 小时前
Prometheus 接入 Alertmanager 与钉钉机器人,附中文模板和完整踩坑记录
机器人·钉钉·prometheus
2601_967987378 小时前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
Decay__9 小时前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构