根据网络资料,总结了以下一些常见的接口测试面试题:

1、为什么要做接口测试?
2、接口测试能发现哪些问题?
3、接口测试怎么测?
4、用什么工具测接口?
5、WebService接口是如何测试的?
6、没有接口文档如何做接口测试?
7、在接口测试过程中,上下游接口有数据依赖如何处理?
8、依赖第三方数据的接口如何进行测试?
9、当一个接口出现异常时,你是如何分析异常的?
10、如何模拟弱网测试?
11、如何分析一个bug是前端的还是后端的?

1、为什么要做接口测试
在讨论为什么要做接口测试之前,我们先稍微了解下接口是什么?

接口可以很不准确的理解成是与资源打交道,这个资源可能是本系统的,也可能是其他系统的。

举个例子,假如我们在开发1个bug管理系统,该系统需要拿到公司的所有开发和测试人员的信息,这样开发和测试人员不用注册都可以登录进去了,这应该很好理解。

那么这些人员的信息储存在哪里呢?一般存储在hr系统里。现在的需求更加明确了,我们要到hr系统中去拿到人员信息,获取hr系统中的人员资源。

怎么拿呢?很多种方式,可以直接把hr系统的数据库拷贝一份放到bug管理系统里,不过这样不好,因为数据的同步会有点麻烦;还可以直接连hr系统的数据库去查,这样也不太好,这样我们就需要了解hr系统的数据存储结构和逻辑,一旦hr系统的数据字段发生改变,bug管理系统也要去该,以便同步。

比较好的做法是,hr系统暴露一些接口,通过这些接口去获取人员信息资源,这样bug系统就不需要关心hr系统的数据存储实现了。

这些接口可能是这样的:
1)登录的接口,提供人员的用户名和密码,去hr系统中判断该人员是否存在,如果存在验证用户名和密码,如果验证通过就返回1个token,该token就是这个人员的通行证,通过token可以登录到bug管理系统中去;
2)获取人员信息的接口,返回该人员的职位:测试还是开发,以及用户名,昵称等信息;

综上:接口可以理解成是不同系统或模块之间资源交流方式。

接口测试实际上是黑盒测试,基本的测试思路是根据输入和输出判断被测系统或对象的逻辑。获取人员的信息,我需要把人员的用户名传给hr系统接口,这样hr系统的接口会返回给我用户的一些更加具体的信息。这里的输入是用户名,输出是用户的详细信息。

既然是接口获取和操作资源的方式,而大部分系统和产品中,资源一般都是产品的核心,比如微信核心资源就是通讯录关系链和聊天记录等,因此资源是必测的。

另外接口中大部分的内容是数据,通过数据的对比我们能推测到系统和产品的逻辑,测接口就是测逻辑。

最后接口中的返回相对单纯,不像web页面,html代码中有太多ui的东西,ui最不稳定,变化太快,接口相对稳定一点点,但是里面的干扰信息更少,断言相对容易很多。

请看以下一个案例,如下图一个提现功能

比如这个输入框,平常拿到这个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页面,直接发请求提交了呢?
纳尼!!!不通过页面也能提交。。。这就是我们接下来要提到的接口测试了。

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

可以用接口工具去直接请求接口,也可以fiddler抓包,抓到接口后修改金额为负数

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

3、接口测试怎么测
1)通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。
2)参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,
商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
3)接口安全:
1.绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
2.绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3.参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4.密码安全规则,密码的复杂程度校验
4)异常验证:
  所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
5)性能测试
接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别

4、用什么工具测接口
postman: 首推。基本功能免费。最简单的基于http接口的调试和测试工具;
jmeter:后置处理器配合断言基本上可以满足接口测试需求,就是测试报告要做二次开发
自己撸代码:推荐。配合类似unittest、pytest这些测试框架,基本可以满足一切需求
soapui: 收费的;
insomnia:强力推荐。postman的弱化版,基本功能免费,重要的是工具代码开源,可以自己改;
paw: 强力推荐。mac上最强,淘宝买个授权好像就百把块钱;

5、WebService接口是如何测试的
webService接口用SoapUI

6、没有接口文档如何做接口测试
没有接口文档,那还能咋办,瞎测呗!一个公司的开发流程里面,如果接口文档都没有,是无法展开接口测试的,你都不知道这个接口干什么的,也不知道具体每个字段代表什么意思,那还测啥呢?
–当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
1.没有接口文档,那就需要先跟开发沟通,然后整理接口文档(本来是开发写的,没办法,为了唬住面试官,先说自己整理了)
2.没有接口文档,可以抓包看接口请求参数,然后不懂的跟开发沟通

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

7、在接口测试过程中,上下游接口有数据依赖如何处理
用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数

8、依赖第三方数据的接口如何进行测试
这个标准答案是:mock

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

9、当一个接口出现异常时,你是如何分析异常的
1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
2.查看后端日志,xhell连上服务器,查看日志

10、如何模拟弱网测试
fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试

11、如何分析一个bug是前端还是后端的
平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯

面试总结-接口测试面试题相关推荐

  1. 2022非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输~

    一.前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性.接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试 ...

  2. 关于接口测试--面试题

    前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性.接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的, ...

  3. 还不快到碗里来?软件测试接口测试面试题(大全)

    目录:导读 前言 一.为什么要做接口测试? 二.接口测试能发现哪些问题 面试题1:你平常做接口测试的过程中发现过哪些bug? 二.接口测试怎么测 面试题2:平常你是怎么测试接口的? 三.用什么工具测 ...

  4. 2022年接口测试面试题大全

    目录 一. 说明三次握手 二. 一次完整的HTTP请求 三. 响应状态码有哪些 四. 什么是COOKIE,SESSION,TOKEN?以及具体流程? 五. HTTP和HTTPS的区别? 六. HTTP ...

  5. 【Android面试】Android面试题集锦 (陆续更新)

    [Android面试]Android面试题集锦 (陆续更新) 分类: [杂七杂八]2011-05-11 17:58 2064人阅读 评论(0) 收藏 举报 一些常见的Android面试基础题做下总结, ...

  6. 初二计算机会考2019,2019下半年教师资格面试考试初中信息技术试题及解析2

    2019下半年教师资格面试考试初中信息技术试题及解析2 报考科目:初中七年级信息技术 抽题时间:2020年1月4日08:07:06 1.题目:七年级<用PPT制作电子相册>片段教学 2.内 ...

  7. 2020我也当了面试官-java面试题之四

    写在前面   今天的面试中记录了一些基础的问题,但是自己记忆比较模糊的,特此整理了一下,用于温故而知新.特此申明:问题中很多答案也是从网上搜集,能贴出链接的我会在答案下方贴出原文链接,仅用于延伸学习. ...

  8. 2020我也当了面试官-java面试题之一

    2020我也当了面试官-java面试题之一 写在前面   最近一段时间开始帮团队招聘一些1-3年的java开发人员,参与几场下来,发现有些面试官问的问题虽然基础,我却记忆有些模糊.大概是平常CRUD太 ...

  9. 华为芯片设计面试题_华为公司面试硬件工程师笔试题

    华为公司面试硬件工程师笔试题 华为是我国知名的大企业,那么它在招聘硬件工程师的时候有什么要求呢?以下是百分网小编精心为大家整理的华为公司面试硬件工程师笔试题,希望对大家有所帮助!更多内容请关注应届毕业 ...

  10. 教师计算机招聘笔试考什么内容是什么意思,大学计算机教师招聘面试问题和笔试题16套...

    大学计算机教师招聘面试问题和笔试题16套 目录: 一,大学计算机教师招聘笔试题和答案 1.xx大学公开招聘语音室维护与管理专业教师面试题 2.xx大学移动商务技术方向教师面试题 3.xx大学计算机教师 ...

最新文章

  1. ios 如何在cell中去掉_IOS之表视图单元格删除、移动及插入
  2. Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)
  3. 拍拍网t恤DIY效果
  4. 结合Scikit-learn介绍几种常用的特征选择方法
  5. python爬虫(五)_urllib2:urlerror和httperror
  6. RemoteIE 开发者可跨平台使用IE测试网页
  7. self-attention竟然没用?
  8. 标识符怎么读_音标怎么学?到底该学英式还是美式
  9. java mojo是什么_java – 为什么Maven不能找到我的定制Mojo?
  10. java版本位数_java 如何查看jdk版本位数
  11. 计算机信息安全工程师教材,第三级 安全标记保护级-信息安全工程师教材
  12. 浏览器文件服务器计算器设置,【魅蓝 U20使用总结】界面|浏览器|计算器|设置_摘要频道_什么值得买...
  13. LNK2005错误的原因与解决
  14. 机器人控制器编程实践指导书旧版-实践一 LED灯(数字量)
  15. c语言动态开辟数组(一维与二维)
  16. ICDE‘22推荐系统论文之Research篇
  17. sentos chrony服务器安装配置与简易实验
  18. Rainbow Brackets彩虹括号插件(简明安装)
  19. Linux集群的安装和配置
  20. input,checkbox启用禁用

热门文章

  1. 按键精灵打怪学习-多窗口多线程后台技能
  2. 设置火狐 账号服务器,Firefox 账号问答
  3. 一起学 Unix 环境高级编程 (APUE) 之 信号
  4. 爬虫实战(二)之登录百度云盘
  5. java adminlte 使用_AdminLTE实现动态菜单
  6. Python解析mat文件
  7. Android第一行代码源码分享
  8. 声音鉴卡引流神器网站源码
  9. USB协议详解第1讲(核心概念通俗理解)
  10. 国笔手机输入法MTK支持的语言