常见的接口面试题
1、为什么要做接口测试?
2、接口测试能发现哪些问题?
3、接口测试怎么测?
4、用什么工具测接口?
5、WebService接口是如何测试的?
6、没有接口文档如java基础面试题接口何做接口测试?
7、在接口测试过程中,上下游接口数据依赖怎么处理?
8、依赖第三方数据的接口如何进行测试?
9、当一个接口出现异常时,你是如何分析异常的?
10、如何模拟弱网测试?
11、如何分析一个bug是前端的还是后端的?
为什么要做接口测试
- 输入一个负数(如:-100),点提交
- 输入金额为0(如:0),点提交
- 输入金额为0-100的数(如:20),点提交
- 输入金额为100(如:100),点提交
- 输入金额大于100(如:108),点提交
- 输入1位小数(如:10.1),点提交
- 输入2位小数(如:10.12),点提交
- 输入3位小数(如:10.123),点提交
接口测试能发现哪些问题
- 可以发现很多在页面上操作发现不了的bug
- 检查系统的异常处理能力
- 检查系统的安全性、稳定性
- 前端随便变,接口测好了,后端不用变
- 可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
- 可以修改请求参数,突破前端页面输入限制(如金额
接口测试怎么测
- 通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。
- 参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
- 接口安全:
- 绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
- 绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
- 参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易激活成功教程。
- 密码安全规则,密码的复杂程度校验
- 异常验证:所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
- 性能测试:
- 接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
- 接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级
用什么工具测接口
- postman: 推荐。基本功能免费。最简单的基于http接口的调试和测试工具;
- jmeter:后置处理器配合断言基本上可以满足接口测试需求,就是测试报告要做二次开发
- 自己写代码
没有接口文档如何做接口测试
没有接口文档,那还能咋办,瞎测呗!一个公司的开发流程里面,如果接口文档都没有,是无法展开接口测试的,你都不知道这个接口干什么的,也不知道具体每个字段代表什么意思,那还测啥呢?
–当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
1.没有接口文档,那就需要先跟开发沟通,然后整理接口文档(本来是开发写的,没办法,为了唬住面试官,先说自己整理了)
2.没有接口文档,可以抓包看接口请求参数,然后不懂的跟开发沟通
本题主要靠情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时做好背锅的准备
在接口测试过程中,上下游接口有数据依赖如何处理
用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数
依赖第三方数据的接口如何进行测试
这个标准答案是:mock
当一个接口出现异常时,你是如何分析异常的
如何模拟弱网测试
fiddler和charles都可以模拟弱网测试
如何分析一个bug是前端还是后端的
平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19958.html