这8道接口测试面试题

news2024/11/28 6:47:33

接口测试常见的问题了。

大家乍一看!

接口测试面试题

这几个问题,能答出来几个?有没有8个都能够完美的答出来的?在留言区打出你的数字。(0~8)

这些问题你回答起来,不要吞吞吐吐只说几个关键字。你要从多方面去给面试官总结分析那些场景,如何去做的,遇到的问题……

接口测试的重要性,相信不用我多说了。接口测试是现在软件测试工程师一个加分项。因为很多朋友一开始做了几年的软件测试都是在做功能测试,做界面UI的测试,然而没有做过接口测试。(很正常很普遍)

那么接口测试它在企业中,能达到非常好的收益。后端、服务端的测试,特别是现在!像是前面几年,物联网公司没有做一个前后端分离,现在基本上都是微服务架构,前后端分离。接口非常重要,现在2020年了,未来几年你去做测试,很多都是接口。

一个接口它可以支持安卓、IOS、H5、Web端。而且接口测试可以测很多你在界面上无法去测试的一些范围和类型。

我们来看一看这几个问题,从简单的来。

第一题,大家绝大部分都能够答得出来

1.目前市面上流行的接口大多有哪几种协议的接口?

大家可能就非常了解,Http、Https、RPC、Websocket、还有一个Dubbo接口,这些类型百度一下也都能够比较全面的得到答案。

所以我一直传输给大家一个观念就是说,假如面试官问你这个问题,你不仅要说有Http、Https……说完这几种类型,你还可以多说几句,比如说我之前在项目中测试过Http的,怎么测试的,用什么测试工具测试的,这是我一直传输给大家的一个面试小技巧。因为我之前在企业中做为面试官的时候,当听到这种面试题回答的时候,会更加分。

因为如果我问你一个问题,你答Http、Https就没了,那么说明你这个人的积极性和你的一个综合能力、见识都不是非常的亮眼突出。理解我的意思吗?不管面试官问你什么问题,你都要非常全面的去解答。

比如说第二个问题

2.http协议有什么特点,能说说这些特点体现在哪些方面吗?

可能会有朋友就说,安全。

Http就安全了吗?(Https才相对安全)

a.无状态

b.灵活

c.无连接

d.简单快速

那么我又来问大家,这些状态这些特点,具体体现在哪些方面?

可能问到这个问题的后面部分,有些朋友就要头皮发麻了。

它为什么叫做无状态,为什么灵活?可能像这种问题就又刷下去了一大批人。有很多朋友特点可能说了一个,但是这些特点具体体现在哪些方面。你如果没有答出来,那面试官就觉得你没有做过很多的接口测试,你对接口根本不是很了解,那你对接口既然不了解,做过的测试也不多,那你还说你做过接口测试,那都只是片面的。

那首先它无状态,灵活,说一个最简单的。灵活,大家都知道,像Http类型的接口我们用Postman来做测试,它为什么比较灵活?它支持的参数类型是任意类型

这个就是我之前搭建的接口项目

它来做测试的时候,这个参数类型,表单,文件上传类型,还有JSON类型,Text文本,JS,XML,HTML

你的参数可以支持任意类型

你的参数可以支持任意类型,所以说它比较灵活。

那为什么说它简单快速?你只需要传一些接口的请求方法和请求路径,通信速度非常快,它就能给到你响应的数据。

比如说很简单,我之前写的一个demo接口

你只需要告诉我,这个地址和这个接口的路径,或者说接口的名称,我就能请求这个接口了,就能快速的拿到下面的值。那是不是说它非常的简单快速呢,不像Dubbo接口不像Websocket,不像其他的接口,稍微你要去测试,去请求可能难一点。这就说明它简单快速。

无状态。比如说你现在要去支付一笔订单,你要点一个外卖,那么你支付订单的时候,那么我怎么知道你的购物车里面加了哪些东西呢?其实你加购物车、下订单、登录其实都是相应的接口,他们之间其实是没有一个实物处理记忆能力的,Http协议它请求成功之后没有记忆了。所以说你每次去请求新的接口,它都有一个新的请求,那么为什么现在这种下单、登录加购物车能够非常灵活的应用起来呢?这就还有它中间的一些机制,会用到一些Session、Cookie、和一些Token,所以这就是它的一个原理。

那么无连接。怎么理解?

那我自己的一个项目来说吧!这是之前搭建的一个测试项目管理平台

那么每次我们去请求的时候,Network刷新一下,它可能去请求了很多个接口,所以说每次连接它只处理一个请求。服务端当处理其中一个接口的时候,它只请求这一个,请求完之后,它就马上断开连接,节省这个传输的时间,所以这是一个无连接。

所以这些特点体现在哪些方面,你能说一说的话,说明你对这个接口你比较有心得了。有收获记得点赞支持一下!

3.postman中如何实现接口之间的关联?

我想这个可能还不是最难的问题,可能大家用过,像第二个问题比较综合性的往往是大家比较薄弱的东西。

比如说这是一个正规的接口文档,有哪些接口就用Postman全部写一遍,然后如何接口之间的关联,这里会用到这些东西。

怎么设置关联,将数据解析成Json格式,获取topic_id的值,设置成环境变量,等等。这就能实现接口之间的关联。

然后你在这里会发现,这里有很多环境变量或者全局变量,这就是接口之间的关联。

5.若请求的接口需要先登录后方可请求,如何进行接口测试?

比如说有些接口需要先登录才请求,那如何来进行接口测试?先登录,比如我问你这个问题你怎么来回答?

因为很多需要请求的接口它需要先认证才能去请求。

Token?

这个回答不对,Token从哪里来?你需要去请求什么样的接口,你的登录接口或者去哪里去拿到,这个问题还是比较简单的,大家可以做为作业区用心学习一下。

7.dubbo接口如何测试?

那我们来看看像这种Dubbo如何去进行测试?这个有了解过吗?因为现在越来越多的公司可能不仅用Http他还会用到Dubbo接口。dubbo接口是我们(用的阿里云服务器)阿里巴巴开源的一个高性能的服务框架,Dubbo是经历过双十一的一个摧残优秀的RPC框架,很多公司都在用了,但是你又没有听说过,额,怎么还会有这个接口啊?你听都没有听说过,那么你在面试官那里……因为面试的公司很有可能就是做的Dubbo接口,那你来做接口测试,你连Dubbo都不知道,那我是不是又要培养你一个月?告诉你什么是Dubbo,怎么测试Dubbo,还说让你来做Dubbo接口自动化,那更加。就算招你进去了,你也是一个新手,菜鸟的身份进去的,你的工资是很难提上去的。

比如他工资本来开的是15K-20K,那么就算你能面试进去了,你最多最多拿到15K。那还要看你的运气,看你其他方面的一个加分项,来抵消这个暂时的短板。

面试官:什么是Dubbo?

我:我、我、我抓一抓后脑勺,摸摸手臂,扣一扣指甲。

然后就是说……吞吞吐吐答不出来(内心独白:到底什么时候结束这个面试,你赶快把简历还给我吧,QAQ)

我还准备去下一家公司去“吹牛皮”也许下一家公司面试官不会问到我不会的问题。

大家不要抱着这样的心态,我发现做测试真的这样一个现状,很多朋友就觉得能混,我现在做功能测试不用任何的技术,能拿个7.8K,一万的工资,也可以。至少要比其他的行业的底薪是要高一些。

所以就存在这个现象,他不会很多的技术,没有很多的技能他也能混,或者运气好,在一线城市需求多。为什么很多测试在一线城市能够拿到10-15K,他不会任何的技术,因为一线城市的需求多很多。

但是你想要突破,想突破15K,突破18K那就难上加难了,而且如果你从大城市工作三到五年,你再回去到二线城市去做测试,那么你还想来混,那么你的工资就可能只有5-6K了,而且你没有任何的技术,你说你从大城市回来的,都觉得有点不好意思说。

你从大城市回来的,你带回来了什么先进的概念,带来了什么先进的技术,是不是?

说远了,回归正题。

.

Dubbo的一个测试关键,搭建消费者,你需要去理解的Dubbo接口的基础架构基础服务到底是一个什么样的原理。(有一个接口测试训练营有讲到这个原理以及如何去测试,需要视频教程可以免费领取)

我在这个服务器上搭建了一个Dubbo服务

最简单的方式用,Telnet,我的IP地址,然后加一个端口,其实测试起来和Http原理都一样。

开启服务之后,进去之后就是一个Dubbo

我们还可以用代码来写

这里封装了一个Dubbo的方法,类。

8.接口测试断言从哪些方面去设计?

如果我把这个接口测试改成功能测试,功能测试断言从哪些方面去设计?

你要怎么去校验一个测试用例,我觉得这个是很多做测试的朋友最擅长的东西,那么我问接口测试呢?

其实接口测试也属于功能测试,也是黑盒测试。

比如说这个接口,我去发送一个请求,你怎么去校验这个接口,我怎么去判断我这个用例到底是不是对的,我这个用例到底是验证了什么东西

到底什么是401,什么情况下会401,或者是403 Forbidden到底是什么情况。

1.状态码

它会不会返回200,会不会返回401,403,返回500等等

2.返回值

返回值比如我拿一个正确的吧,状态码200,返回了一大堆的值,那么这个返回值里面就有很多东西需要去校验了,怎么去校验这个返回值?

3.而且返回值里面很多数据是动态的,这个时候要怎么去设置?要考虑数据库校验吧,很多字段的值来源于数据库

非关系型数据库(Mongo)

4.空校验,异常校验,

5.幂等性

幂等性的校验在接口测试是一个常见的校验,比如说你一个接口我调用一次正常了,你能保证它之后调用都是正常的吗?这些数据、参数几百个不同类型的参数,我调用一百次,会是一个什么样的情况?

幂等性,我重复执行一百次,它会返回什么。

或者我去买一个外卖,下单,但是我不支付,是不是我点击下单一百次,它会不会产生很多垃圾数据在我们数据库里面。

其实还有很多需要你去测试的,为什么接口测试这么重要,要测试的东西和功能测试一样方方面面都是需要考虑到的。

6.流程节点限制

举一个异常例子吧,比如说你在支付的时候,我只下单没有付钱,那么像这个接口的返回值。我先调用下单的接口,我拿到一些数据再去调用别人正常支付后的接口。会是一个什么样的场景,有没有做一些限制。

接口测试很容易做一个数据驱动,做一些自动化,我们都要去尽可能的全面的覆盖做一个接口自动化,那么你的效益是非常高的。而且你把这一套全部做成自动化,不管是后端开发人员还是前端开发人员还是测试,你在企业中本人价值也是非常高的。

如果面试官觉得你答对了,再深入一点,什么是异常校验?就是来评判你能不能达到一个高级测试工程师。

异常校验

数据异常,环境异常,前置条件异常,大家都知道做过接口测试的朋友都知道接口有很多的前置条件,前置条件连接数据库或者数据的预制,那么这些前置条件有没有异常导致我们接口异常。

所以像这种问题,你如果没有真实的项目经验,你绝对总结不出来也回答不出来。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

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

相关文章

1. java.io.File 类的使用

1.1 概述 • File 类及本章下的各种流,都定义在 java.io 包下。 • 一个 File 对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹), 与平台无关。(体会万事万物皆对象) • File 能新建、删除…

重启好多次路由器,还是上不了网怎么办?

大家好,我的网工朋友 遇到突发的网络断连,你一般会怎么做? 我觉得很多人都会插拔一下路由器,这和电脑不行了,马上就重启电脑一样,是刻在DNA里的傻瓜操作。 但是也有很多时候,这个傻瓜操作是解…

PrivateGPT:安全和私密的离线 GPT-4

在人工智能 (AI) 和自然语言处理 (NLP) 领域,隐私通常是一个基本问题,尤其是在处理敏感数据时。PrivateGPT 是这一领域的突破性发展,正面解决了这个问题。它旨在在没有互联网连接的情况下在本地运行,通过防止数据离开您的执行环境…

这些方法可以手写扫描识别

小伙伴们知道有一项技术是可以将我们手写的东西识别出来吗?这一项创新的技术就是手写识别功能,它能够将手写内容快速转换为数字或文本格式,并提高信息处理和管理的效率。而且相比传统的手工记录方式,手写识别功能具有较高的准确性…

腾讯测试开发 4 轮面试,接到 30k*15 的 Offer !详解面试流程和真题

在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 但说实话,想进大厂还真没那么容易。我的一个朋…

find命令

你将看到的第一个命令是find。这是个用于搜索文件的命令,它极其有用,但Linux初学者常常觉得它不易使用,这不仅仅是因为它有选项、测试和动作类型的参数,还因为其中一个参数的处理结果可能会影响到后续参数的处理。在深入研究这些选…

pandas---缺失值的处理

1. 处理缺失值 判断数据中是否包含NaN: pd.isnull(df);pd.notnull(df) 存在缺失值nan: 删除存在缺失值的:dropna(axisrows) 不会修改原数据,需要接受返回值; 替换缺失值:fillna(value, inplaceTrue) value:替换成的值&#…

基于STM32的四旋翼无人机项目(一):基础知识篇

前言:本篇博客为飞控专栏的第一篇系统性概述文章,将对飞控系统进行详细讲解介绍。考虑到飞控项目具有一定工程复杂度,所以作者将整个项目进行分章节教学与讲解,希望可以给读者朋友带来更好地学习体验。项目将以 C-Quad 四轴无人机…

SpringBoot 中使用 JWT 案例分享详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

大模型LLM领域,有哪些可以作为学术研究方向?

清湛人工智能研究院 2023-05-31 09:23 发表于江苏 编者:本文转载了清华大学计算机系刘知远教授对大模型的一些思索,以飨读者。 刘知远 CCF 高级会员,CCCF 前编委。清华大学计算机系副教授、博士生导师。已在ACL、IJCAI、AAAI等人工智能领域…

回归预测 | MATLAB实现基于GRU-AdaBoost门控循环单元结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于GRU-AdaBoost门控循环单元结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于GRU-AdaBoost门控循环单元结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于GRU-AdaBoost门…

单品GMV破千万,这些品类正在抖音热卖

优势品类及核心产品能更好触达消费者,以较低的成本让用户感知品牌,塑造品牌力。 抖音作为品牌最核心的线上渠道之一,该如何找到平台优势品类?制定品牌营销策略?有效提升产品销量呢? 近期,新抖上…

【CesiumJS入门】(4)加载3D Tiles并获取tileset

前言 本次,我们将写一个函数来加载3D Tiles数据, 3D Tiles数据的文档:CesiumGS/3d-tiles: Specification for streaming massive heterogeneous 3D geospatial datasets (github.com) 同时我们将获取加载成功后的tileset数据集(有…

Python 中错误 ImportError: No Module Named Sklearn

在 Python 中,sklearn 被用作机器学习工具,用于在回归、集群等方面创建程序。很多时候,导入它会抛出错误—— No module named sklearn。 这意味着由于安装错误、无效的 Python 或 pip 版本或其他问题,系统无法找到它。 Python中错误ImportError: No module named sklearn…

基于Java营业厅宽带系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

Karl Guttag评Vision Pro:比Quest Pro做了更多正确选择

上周苹果正式发布Vision Pro,尽管要到明年才发售,但光学领域的专业博主Karl Guttag也发表了自己的看法。他提到:目前受邀体验的媒体中要不是苹果粉丝、要不就是对AR、VR了解比较少,没有我看到“批判性思维”或太多对技术分析的内容…

MySQL常用操作(一)

创建表 create table user(id int unsigned primary key not null auto_increment,name varchar(50) unique not null,age tinyint not null,sex enum(M, W) not null )engineINNODB default charsetutf8;# 查看创建表语句 show create table user两种插入方式比较 # 方式1 i…

加速千行百业转型,华为如何为智能世界构建感知底座

导读:感知正成为行业数字化的新引擎。 我们正在迈进一个万物感知的时代。 日常生活中,感知已经无处不在。小到智能家居的控制系统,大到智慧城市虚实联动的数字孪生,感知是一切智能化的前提,也是行业数字化转型的基础。…

如何恢复被隔离的u盘数据?2种恢复u盘隔离数据的方法

很多时候,我们可能会因为各种原因导致U盘数据丢失,比如误删、格式化等情况。但最近有一位朋友咨询小编关于U盘文件被隔离的问题,他在使用U盘时发现有些文件被隔离了,想知道如何恢复。其实,U盘文件被隔离可能是由于存在…

记录--为什么推荐用svg而不用icon?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 使用背景: 1.因为svg图标在任何设备下都可以高清显示,不会模糊。而icon会在显卡比较低的电脑上有显示模糊的情况 2.svg图标在页面render时 速度会比icon稍微快一点 3.实现小程序…