2023年测试岗,接口测试面试题汇总+答案,拿捏面试官...


前言

1、你们公司的接口测试流程是怎样的?

接口测试我们是在XX项目做的,主要有XX接口,XX接口,XX接口等。

首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。

然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:
1)首先新建一个线程组。
2)然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口)
3)再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。)
4)然后创建断言和查看结果树。

最后调试并执行用例,最后编写接口测试报告。

其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式)。

比如需要登录后才能取得token鉴权码并且这个鉴权码在下面的请求中需要用到使用正则表达式提取器提取token的值等。

2、请简述一下cookie、session以及token的区别

cookie数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。

cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。

当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie

可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

3、接口测试执行中比对数据库吗?

肯定啊,因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查!

4、谈谈你对HTTP协议的了解?

超文本传输协议,端口为80,特点(无记忆功能、快速)是由请求和响应两部分组成请求由请求头、请求行、请求正文组成;

响应是由响应头、响应行、响应正文组成,之前我们公司的接口是采用https协议的。
https http+ssl协议 端口443 面向安全的超文本传输协议。

5、get和post请求有什么区别?

get和post请求都是客户端向服务器提交的一种请求方式;
get是明文传输参数、倾向于请求服务器资源。比如打开网站;
post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等;

6、响应状态码有哪些?

1xx:指示信息–表示请求已接受,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求

7、在接口测试过程中发现的bug多不多?能举几个栗子?

这个问题其实回到起来很简单,只要做过接口测试的,总能发现几个BUG吧,把你平常发现的bug说2-3个就可以了。

面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历都是写的假的(你要不写估计面试机会都没有,没办法,为了生存,能理解) 比如,提现输入框,在页面上输入负数,肯定是无法提交过去(前端页面会判断金额),如果我不走前端,直接用接口工具发请求,输入一个负数过去。

(假设服务端没做提现金额数据判断) 余额=当前余额(100)-提现金额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越大了。

8、接口测试中有哪些要注意的测试点?

接口中返回了图片地址,要手工去进行图片的测试(大小、内容);
接口完成查询功能的时候,数据返回的排序显示;
接口测试的时候,关注参数的默认值、必填项;

9、之前在接口测试过程中,使用的工具是什么?

postman或jmeter(5.1)

10、之前用过抓包工具没有?如何使用的?

之前在项目中用过fiddler抓包工具进行HTTP协议请求的抓取。

打开fiddler之后,默认浏览器配置了127.0.0.1 8888端口的代理,在fiddler设置好过滤策略后,打开需要进行抓包的网站进行操作,就可以进行抓包

11、postman你在工作中使用流程是什么样的?

编写好用例;
在postman先建好url环境变量;
根据接口用例所属的模块新建集合管理;
在集合中不同模块下录入测试用例;
录入测试用例的时候根据预期结果在tests页签中增加断言;
导出通过Newman去运行;

12、postman中设置环境变量有什么用?

在之前项目中,接口测试测试的环境有开发环境,测试环境等,为了测试的时候方便,就在postman设置环境变量,到时所有接口都引用该环境变量,这样就不用为了切换环境导致每次都去修改被测系统接口的主机地址;

点击右上角环境变量管理按钮-新建环境变量,在脚本中使用{ {变量名}}去调用

13、在接口测试中关联是什么含义?如何用postman设置关联?

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行

在postman中设置关联的步骤如下:
先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来。

使用设置全局变量的代码把取出来的值保存到全局变量。
在下一个接口中,使用{ {全局变量}}代替要替换的静态值。

14、Newman如何执行postman脚本?

Newman run 脚本名称 也可以添加参数生成html报表等

15、在项目中如何用jmeter进行接口测试?

把线程组数量设置为1,循环次数设置为1;
配置好全局变量URL通过配置元件—用户自定义的变量添加;
增加配置元件http请求默认值,放置在用户定义的变量之后;
添加事务控制器管理和组织测试用例;
在事务控制中添加http请求添加测试用例中的接口请求信息;
添加对应的断言元件进行断言;

16、jmeter中如何实现关联?

先从上一个接口中通过正则表达式提取器或jsonpath解析器截取下一个接口需要的参数值保存到变量,然后在写一个接口中通过${变量名}去获取

17、jmeter参数化的方式有哪几种可以实现?

配置元件—用户定义的变量元件可以设置全局变量;
函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化;
可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可;

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生没有绝对的平坦,但每一次奋斗都能让我们变得更加强大。不论挫折和困难如何,只要心怀勇气和坚持,努力奋斗,就能超越自我,创造属于自己的精彩。

追逐梦想的路上,困难是通向成功的阶梯。坚韧不拔地奋斗,化挫折为动力,勇敢迎接挑战,才能收获成长与进步。相信自己的实力,努力拼搏。

成功并非偶然,而是奋斗的必然结果。拿起勇气,踏上征程,用汗水诠释梦想。不畏艰辛,坚定前行,每一次付出都将成就更强的自己。相信自己的力量,勇往直前!

猜你喜欢

转载自blog.csdn.net/m0_60054525/article/details/132260401