7

这8道接口测试面试题!你如果都答好,I want you!

 3 years ago
source link: https://my.oschina.net/u/4512374/blog/4840229
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这8道接口测试面试题!你如果都答好,I want you!

接口测试常见的问题了。

大家乍一看!

接口测试面试题

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

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

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

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

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

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

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

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

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

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

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

比如说第二个问题

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

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

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

a.无状态

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.流程节点限制

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

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

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

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

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

文章首发于公众号:程序员一凡

转载请注明出处!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK