关于面试总结9-接口测试面试题

前言

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

为何要作接口测试?

到底什么是接口测试,咱们为何要作接口测试?这是不少初入行的小伙伴的一个疑问,讲理论的你可能看不进去,接下来说个实际案例,以下图一个提现功能前端

好比这个输入框,日常拿到这个web页面,会对输入框作用例设计:web

  • 输入一个负数(如:-100),点提交
  • 输入金额为0(如:0),点提交
  • 输入金额为0-100的数(如:20),点提交
  • 输入金额为100(如:100),点提交
  • 输入金额大于100(如:108),点提交
  • 输入1位小数(如:10.1),点提交
  • 输入2位小数(如:10.12),点提交
  • 输入3位小数(如:10.123),点提交

按照这个等价类,边界值用例测完,页面上不能输入负数和大于3位数小数点,而后就能够上线了。
然而。。。忽然有一天数据库里面插入了一个提现金额为负数(-100),因而整个部门炸锅了,首先找到测试(背锅)去复现问题,测试在页面上反复输入负数,没法提交,认为没问题啊!面试

首先前端开发对输入框是作了限制的,前端的web开发确定没问题,这个锅前端开发MM不背。那么若是别人用户不经过你的web页面,直接发请求提交了呢?
纳尼!!!不经过页面也能提交。。。这就是咱们接下来要提到的接口测试了。数据库

接口测试能发现哪些问题

面试题1:你日常作接口测试的过程当中发现过哪些bug?后端

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

能够用接口工具去直接请求接口,也能够fiddler抓包,抓到接口后修改金额为负数浏览器

因此,接口测试的必要性就体现出来了:
1.能够发现不少在页面上操做发现不了的bug
2.检查系统的异常处理能力
3.检查系统的安全性、稳定性
4.前端随便变,接口测好了,后端不用变
5.能够测试并发状况,一个帐号,同时(大于2个请求)对最后一个商品下单,或不一样帐号,对最后一个商品下单
6.能够修改请求参数,突破前端页面输入限制(如金额)安全

接口测试怎么测

面试题2:日常你是怎么测试接口的?服务器

  • 经过性验证:首先确定要保证这个接口功能是好使的,也就是正常的经过性测试,按照接口文档上的参数,正常传入,是否能够返回正确的结果。
  • 参数组合:如今有一个操做商品的接口,有个字段type,传1的时候表明修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,
    商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改为功,id、名称、价格都传的时候能不能修改为功。

  • 接口安全:
    一、绕过验证,好比说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改为3元,后端有没有作验证,更狠点,我把钱改为-3,是否是个人余额还要增长?
    二、绕过身份受权,好比说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改为功,我传一个其余的卖家能不能修改为功
    三、参数是否加密,好比说我登录的接口,用户名和密码是否是加密,若是不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
    四、密码安全规则,密码的复杂程度校验

  • 异常验证:
      所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常状况的校验。好比说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

  • 性能测试
    接口并发状况,如上面提到的:一个帐号,同时(大于2个请求)对最后一个商品下单,或不一样帐号,对最后一个商品下单
    接口响应时间,响应时间太长了,确定须要优化,通常都是毫秒级别

用什么工具测

面试题3:日常用什么工具测接口的

接口测试工具不少,首先postman

其次用jmeter

webService接口

面试题4:webService接口是如何测试的

webService接口用SoapUI

没有接口文档如何作接口测试

面试题5:没有接口文档,若是作接口测试?(这是个送命题)

没有接口文档,那还能咋办,瞎测呗!一个公司的开发流程里面,若是接口文档都没有,是没法展开接口测试的,你都不知道这个接口干什么的,也不知道具体每一个字段表明什么意思,那还测啥呢?
--固然,你确定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
1.没有接口文档,那就须要先跟开发沟通,而后整理接口文档(原本是开发写的,没办法,为了唬住面试官,先说本身整理了)
2.没有接口文档,能够抓包看接口请求参数,而后不懂的跟开发沟通

本题主要靠情商,通俗来讲就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时作好背锅的准备

数据依赖

面试题6:在手工接口测试或者自动化接口测试的过程当中,上下游接口有数据依赖如何处理?

用一个全局变量来处理依赖的数据,好比登陆后返回token,其它接口都须要这个token,那就用全局变量来传token参数

依赖第三方

面试题7:依赖于第三方数据的接口如何进行测试?

这个标准答案是:mock

接着面试官会问你,若是mock的,而后你就顺着坑继续挖,搭建mock服务,参考这篇【https://www.cnblogs.com/yoyoketang/p/9348552.html】

抓包

面试题8:当一个接口出现异常时候,你是如何分析异常的?

1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
2.查看后端日志,xhell连上服务器,查看日志

弱网

面试题9:如何模拟弱网测试

fiddler和charles均可以模拟弱网测试,日常说的模拟丢包,也是模拟弱网测试

分析bug是前端仍是后端的

面试题10:如何分析一个bug是前端仍是后端的?

日常提bug的时候,前端开发和后端开发老是扯皮,不认可是对方的bug
这种状况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯

交流QQ群:779429633

相关文章
相关标签/搜索