软件测试工程师没有碰到算我输-2023最全的接口测试面试题及参考答案

news2024/11/15 23:48:30

接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。        

二、2023非常全的接口测试面试题及参考答案


1、你们公司的接口测试流程是怎样的?(有没有感觉熟悉,貌似在哪里听过)

接口测试我们是在XX项目做的,主要有XX接口,XX接口,XX接口等。
1、首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。
2、然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:
1、首先新建一个线程组。
2、然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口)
3、再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。)
4、然后创建断言和查看结果树。
3、最后调试并执行用例,最后编写接口测试报告
4、其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登录后才能取得token鉴权码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等。

2、请简述一下cookie、session以及token的区别(有没有感觉整个是万年不变的面试题)

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

(2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie

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

3、接口测试如何设计测试用例?(必问,有没有感觉答得整个人都不好了?)

接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多!

接口测试设计测试用例的思路如下:
1.接口业务逻辑测试?(正例)
接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值
是否正确的测试,也就是测试对外提供的接口服务是否正常工作。
2.模块接口测试?(反例)
模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。?
模块接口测试的主要包括以下几个方面:?
1)鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
2)其他参数异常。
1、必填项检查
2、参数的长度、类型、格式异常:
常规参数:(数字、字符串、日期)
参数长度:6-18位。或身份证、电话的长度。
参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。
日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。
3)错误码异常覆盖。
4)接口测试其他的关注点
接口有翻页时,页码与页数的异常值测试
数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致
接口返回的图片地址能否打开,图片尺寸是否符合需求
当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。
所有列表页接口必须考虑排序值
所有功能都要考虑兼容旧版本

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

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

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

超文本传输协议,端口为80,特点(无记忆功能、快速)是由请求和响应两部分组成请求由请求头、请求行、请求正文组成;响应是由响应头、响应行、响应正文组成,之前我们公司的接口是采用https协议的。

https http+ssl协议 端口443 面向安全的超文本传输协议

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

get和post请求都是客户端向服务器提交的一种请求方式

get是明文传输参数、倾向于请求服务器资源。比如打开网站

post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等

7、响应状态码有哪些?

1xx:指示信息--表示请求已接受,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

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

这个问题其实回到起来很简单,只要做过接口测试的,总能发现几个BUG吧,把你平常发现的bug说2-3个就可以了。 面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历都是写的假的(你要不写估计面试机会都没有,没办法,为了生存,能理解) 比如,提现输入框,在页面上输入负数,肯定是无法提交过去(前端页面会判断金额),如果我不走前端,直接用接口工具发请求,输入一个负数过去。 (假设服务端没做提现金额数据判断) 余额=当前余额(100)-提现金额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越大了。

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

11.1)接口中返回了图片地址,要手工去进行图片的测试(大小、内容)

11.2)接口完成查询功能的时候,数据返回的排序显示

11.3)接口测试的时候,关注参数的默认值、必填项

10、接口执行测试后返回结果做对比,一般比对哪部分内容?

之前必须要对比的就是返回状态码,其次再去对比返回其它关键内容

11、为什么开展接口测试?

13.1)接口测试属于集成测试、测试介入越早、就越能在项目早期发现问题,其修复问题的成本越低

13.2)接口测试非常快速、UI自动化执行一个测试用例10S左右、接口测试用例执行的话,需要的时间是毫秒级的

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

postman或jmeter(5.1)

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

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

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

14、json数据是什么,你平时如何解析json数据?

一种开发常用的数据报文格式,由键值对和数组两种格式构成。可以通过工具bejson网站等

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

1) 编写好用例

2) 在postman先建好url环境变量

3) 根据接口用例所属的模块新建集合管理

4) 在集合中不同模块下录入测试用例

5) 录入测试用例的时候根据预期结果在tests页签中增加断言

6) 导出通过Newman去运行

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

在之前项目中,接口测试测试的环境有开发环境,测试环境等,为了测试的时候方便,就在postman设置环境变量,到时所有接口都引用该环境变量,这样就不用为了切换环境导致每次都去修改被测系统接口的主机地址;点击右上角环境变量管理按钮-新建环境变量,在脚本中使用{{变量名}}去调用

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

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

在postman中设置关联的步骤如下:

1) 先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来

2) 使用设置全局变量的代码把取出来的值保存到全局变量

3) 在下一个接口中,使用{{全局变量}}代替要替换的静态值

18、postman支持什么类型的协议测试?

http和https协议的

19、postman参数化有哪几种方式?

内建变量、pre-scripts编写js脚本、批量运行时导入csv或json格式的文件

20、Newman如何执行postman脚本?

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

21、jmeter之前用的是什么版本?如何安装的?

jmeter用的是5.1.1版本,安装如下:

先在电脑上安装jdk1.8或以上的版本,然后从官网下载最新的安装包,解压后,进行环境变量的配置,配置好后即安装完成

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

1) 把线程组数量设置为1,循环次数设置为1

2) 配置好全局变量URL通过配置元件---用户自定义的变量添加

3) 增加配置元件http请求默认值,放置在用户定义的变量之后

4) 添加事务控制器管理和组织测试用例

5) 在事务控制中添加http请求添加测试用例中的接口请求信息

6) 添加对应的断言元件进行断言

23、jmeter中如何设置断言?

右击请求---断言---响应断言---响应断言界面输入要检查比对的项,设置好断言后,执行接口测试如果是通过的,查看结果树不会有任何提示,如果断言失败,就会有红色报错。如果接口返回的数据是json数据,也可以添加json断言

24、jmeter中如何实现关联?

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

25、jmeter添加http请求默认值元件有什么作用?

添加并设置好后,相当于给所有的http请求取样器都设置了默认值,既不用填写取样器中的比如主机地址、端口、代理等,都可以使用http请求默认值设置的

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

1) 配置元件---用户定义的变量元件可以设置全局变量

2) 函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化

3) 可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可

27. 总结

对于以上这些知识点,经过长时间整理,已经形成了文档资料以及讲解视频等等,下面给出部分截图:

 

 

这份文档,对于今年备战金三银四面试的朋友来说,应该会有很大的帮助,希望大家都能收到满意的offer,大家觉得有用的话记得给我点赞收藏,点击下方小卡片均可以分享。  

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【pytorch】使用mixup技术扩充数据集进行训练

目录1.mixup技术简介2.pytorch实现代码&#xff0c;以图片分类为例1.mixup技术简介 mixup是一种数据增强技术&#xff0c;它可以通过将多组不同数据集的样本进行线性组合&#xff0c;生成新的样本&#xff0c;从而扩充数据集。mixup的核心原理是将两个不同的图片按照一定的比例…

【嵌入式开发】iperf

iperf一级目录用法help文档iperf参数功能iperf测试实例测试网口上行速率测试网口下行速率perf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能&#xff0c;具有多种参数和UDP特性&#xff0c;可以根据需要调整&#xff0c;可以报告带宽、延迟抖动和数据包丢失。一…

小程序项目在hbuilder里面给它打包成app

小程序项目临时有些登录需求&#xff0c;需要把&#xff08;小程序某些功能通过条件编译让它显示到app上&#xff09;小程序打包成app的话就必须需要一个打包的证书&#xff0c;证书的话就要去重新生成&#xff0c;苹果电脑可以去自动生成证书&#xff0c;平时是用windows进行开…

Java的四种引用强软弱虚及其使用场景

一.强引用 回收时机&#xff1a;在内存不足时也不会被回收。 使用方式&#xff1a;String str new String("str"); 使用场景&#xff1a;是平常用的最多的引用 二.软引用 回收时机&#xff1a; 在内存不足时会被回收。 使用方式&#xff1a;SoftRefere…

阿里云全量物理备份.xb备份文件本地恢复

一、下载备份文件并上传到本地 二、安装转码软件 1、yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm2、yum install percona-xtrabackup-24三、解包并解压 1、先解包 cat test1_qp.xb | xbstream -x -v -C /home/mysql/data 2、然后解压&…

【历史上的今天】3 月 6 日:Unix 版权争夺战;豆瓣网上线;谷歌推出了 Google Play

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 6 日&#xff0c;在 1475 年的今天&#xff0c;大艺术家米开朗琪罗诞辰。米开朗琪罗是意大利文艺复兴时期的雕塑家、画家&#xff0c;他活到 89 岁&#…

Web服务器基础介绍与Apache的简单介绍(LAMP架构与搭建论坛)

目录 Web服务器基础介绍 一.HTML是什么&#xff1f; 二.静态网页和动态网页 1.静态网页 2.动态网页 3.动态网页语言 三.HTTP协议 1.HTTP协议是什么&#xff1f; 2.HTTP方法 3.HTTP状态码 4.HTTP请求流程分析 4.1 请求报文 4.2 响应报文 Apache的简单介绍 一.Apa…

如何找回回收站删除的视频?这三种方法可以试试

在使用电脑过程中&#xff0c;我们可能会误删重要的文件&#xff0c;特别是影音文件。在这样的情况下&#xff0c;我们可以从计算机的回收站中找回已经被删除的视频。但是有时候&#xff0c;我们可能会不小心清空回收站&#xff0c;这时候就需要一些技巧来恢复回收站删除的视频…

走进JVM

JVM的位置 在操作系统之上&#xff0c;可以想象成一个软件&#xff0c;Java程序都运行在上面 JVM结构图 JVM调优的位置 99%的调优在堆中&#xff0c;极少数在方法区中 很多第三方插件都是在执行引擎那块地方做出修改而来&#xff0c;比如Lombook在程序运行时动态生成get/s…

VSYNC研究

Vsync信号是SurfaceFlinger进程中核心的一块逻辑&#xff0c;我们主要从以下几个方面着手讲解。软件Vsync是怎么实现的&#xff0c;它是如何保持有效性的&#xff1f;systrace中看到的VSYNC信号如何解读&#xff0c;这些脉冲信号是在哪里打印的&#xff1f;为什么VSYNC-sf / VS…

YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

前言 前面简单介绍了YOLOv5的网络结构和创新点&#xff08;直通车&#xff1a;【YOLO系列】YOLOv5超详细解读&#xff08;网络详解&#xff09;&#xff09; 在接下来我们会进入到YOLOv5更深一步的学习&#xff0c;首先从源码解读开始。 因为我是纯小白&#xff0c;刚开始下…

【看表情包学Linux】进程创建 | 进程终止 | 分叉函数 fork | 写时拷贝 | 内核数据结构缓冲池 | slab 分派器

爆笑教程《看表情包学Linux》&#x1f448; 猛戳订阅&#xff01;​​​​​&#x1f4ad; 写在前面&#xff1a;本章我们主要讲解进程的创建与终止。首先讲解进程创建&#xff0c;fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#xff0c;在上个章…

gma 地理空间绘图:(1) 绘制简单的世界地图-3.设置地图框

内容回顾 gma 地理空间绘图&#xff1a;(1) 绘制简单的世界地图-1.地图绘制与细节调整 gma 地理空间绘图&#xff1a;(1) 绘制简单的世界地图-2.设置经纬网 方法 SetFrame(FrameColor ‘black’, FrameWidth 0.6, ShowFrame True, ShowLeft True, ShowBottom True, Sho…

Golang alpine Dockerfile 最小打包

最近在ubantu 上进行了 iris项目的alpine 版本打包&#xff0c;过程遇到了一些问题&#xff0c;记录一下。 golang版本 &#xff1a;1.18 系统&#xff1a;ubantu 代码结构 Dockfile内容 FROM alpine:latest MAINTAINER Si Wei<3320376695qq.com> ENV VERSION 1.1 ENV G…

格密码学习笔记(二):连续极小、覆盖半径和平滑参数

文章目录最短距离和连续极小值距离函数和覆盖半径格的平滑参数致谢最短距离和连续极小值 除了行列式&#xff0c;格的另一个基本量是格上最短非零向量的长度&#xff0c;即格中最短距离&#xff0c;其定义为 λ1min⁡x,y∈L,x≠y∥x−y∥min⁡z∈L,z≠0∥z∥.\begin{aligned} …

一起来学ASM字节码插桩:从分析class文件结构开始

文章目录Class字节码class字节码构成类型描述符基本类型描述符非数组的引用类型数组引用类型方法描述符OpCode 操作码Class字节码 Java 能做到 一次编译&#xff0c;到处运行&#xff0c;主要就是靠 class字节码 文件&#xff0c;也就是 java 文件经过编译之后 .java -> .c…

【C语言】刷题|链表|双指针|指针|多指针|数据结构

主页&#xff1a;114514的代码大冒 qq:2188956112&#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ &#xff09; Gitee&#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 一、移除链表元素 二、反转链表 三&#xff0c;链表的中间结点 四&…

springBoot 事务基本原理

springBoot事务基本原理是基于spring的BeanPostProcessor&#xff0c;在springBoot中事务使用方式为&#xff1a; 一、在启动类上添加注解&#xff1a;EnableTransactionManagement 二、在需要事务的接口上添加注解&#xff1a;Transactional 基本原理&#xff1a; 注解&am…

GB/T28181-2022图像抓拍规范解读及技术实现

规范解读GB28181-2022相对2016&#xff0c;增加了设备软件升级、图像抓拍信令流程和协议接口。我们先回顾下规范说明&#xff1a;图像抓拍基本要求源设备向目标设备发送图像抓拍配置命令,携带传输路径、会话ID等信息。目标设备完成图像传输后,发送图像抓拍传输完成通知命令,采用…

最短距离(dijkstra)

蓝桥杯集训每日一题 acwing1488 有 N 个村庄&#xff0c;编号 1 到 N。 村庄之间有 M 条无向道路&#xff0c;第 i 条道路连接村庄 ai 和村庄 bi&#xff0c;长度是 ci。 所有村庄都是连通的。 共有 K 个村庄有商店&#xff0c;第 j 个有商店的村庄编号是 xj。 然后给出 Q…