当前位置: 首页 > news >正文

常见的接⼝测试⾯试题

根据⽹络资料,总结了以下⼀些常见的接⼝测试⾯试题:

1. 为什么要做接⼝测试?

        在讨论为什么要做接⼝测试之前,我们先稍微了解下接⼝是什么?
接⼝可以很不准确的理解成是与资源打交道,这个资源可能是本系统的,也可能是其他系统的。
举个例⼦,假如我们在开发1bug管理系统,该系统需要拿到公司的所有开发和测试⼈员的信息,这样开发和测试⼈员不⽤注册都可以登录进去了,这应 该很好理解。
        那么这些⼈员的信息储存在哪⾥呢?⼀般存储在hr系统⾥。现在的需求更加明确了,我们要到hr系统中去拿到⼈员信息,获取hr系统中的⼈员资源。
        怎么拿呢?很多种⽅式,可以直接把hr系统的数据库拷贝⼀份放到bug管理系统⾥,不过这样不好,因为数据的同步会有点⿇烦;还可以直接连hr系统的数据库去查,这样也不太好,这样我们就需要了解hr系统的数据存储结构和逻辑,⼀旦hr系统的数据字段发⽣改变,bug管理系统也要去该,以便同步。
        ⽐较好的做法是,hr系统暴露⼀些接⼝,通过这些接⼝去获取⼈员信息资源,这样bug系统就不需要关⼼hr系统的数据存储实现了。
这些接⼝可能是这样的:
  • 登录的接⼝,提供⼈员的⽤户名和密码,去hr系统中判断该⼈员是否存在,如果存在验证⽤户名和密码,如果验证通过就返回1token,该token是这个⼈员的通⾏证,通过token可以登录到bug管理系统中去;
  • 获取⼈员信息的接⼝,返回该⼈员的职位:测试还是开发,以及⽤户名,昵称等信息;
综上:接⼝可以理解成是不同系统或模块之间资源交流⽅式。
接⼝测试实际上是⿊盒测试,基本的测试思路是根据输⼊和输出判断被测系统或对象的逻辑。获取⼈员的信息,我需要把⼈员的⽤户名传给hr系统接⼝,
这样hr系统的接⼝会返回给我⽤户的⼀些更加具体的信息。这⾥的输⼊是⽤户名,输出是⽤户的详细信息。
既然是接⼝获取和操作资源的⽅式,⽽⼤部分系统和产品中,资源⼀般都是产品的核⼼,⽐如微信核⼼资源就是通讯录关系链和聊天记录等,因此资源是
必测的。
另外接⼝中⼤部分的内容是数据,通过数据的对⽐我们能推测到系统和产品的逻辑,测接⼝就是测逻辑。
最后接⼝中的返回相对单纯,不像web页⾯,html代码中有太多ui的东西,ui最不稳定,变化太快,接⼝相对稳定⼀点点,但是⾥⾯的⼲扰信息更少,断⾔
相对容易很多。
请看以下⼀个案例,如下图⼀个提现功能

2. 接⼝测试能发现哪些问题?

接⼝测试能发现哪些问题

这个问题其实回到起来很简单,只要做过接⼝测试的,总能发现⼏个BUG吧,把你平常发现的bug2-3个就可以了。

⾯试官出这个题,主要是想知道你是不是真的做过接⼝测试,毕竟现在很多⼩伙伴简历都是写的假的(你要不写估计⾯试机会都没有,没办法,为了⽣

存,能理解)

⽐如上⾯说的,提现输⼊框,在页⾯上输⼊负数,肯定是⽆法提交过去(前端页⾯会判断⾦额),如果我不⾛前端,直接⽤接⼝⼯具发请求,输⼊⼀个负

数过去。

(假设服务端没做提现⾦额数据判断)

余额=当前余额(100-提现⾦额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越⼤了

可以⽤接⼝⼯具去直接请求接⼝,也可以fiddler抓包,抓到接⼝后修改⾦额为负数所以,接⼝测试的必要性就体现出来了:

1.可以发现很多在页⾯上操作发现不了的bug

2.检查系统的异常处理能⼒

3.检查系统的安全性、稳定性

4.前端随便变,接⼝测好了,后端不⽤变

5.可以测试并发情况,⼀个账号,同时(⼤于2个请求)对最后⼀个商品下单,或不同账号,对最后⼀个商品下单

6.可以修改请求参数,突破前端页⾯输⼊限制(如⾦额)

3. 接⼝测试怎么测?

接接⼝⼝测测试试怎怎么么测测

通过性验证:⾸先肯定要保证这个接⼝功能是好使的,也就是正常的通过性测试,按照接⼝⽂档上的参数,正常传⼊,是否可以返回正确的结果。

参数组合:现在有⼀个操作商品的接⼝,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有⼀个是必传的,type2的时候是删除

商品,

商品id是必传的,这样的,就要测参数组合了,type1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

接⼝安全:

1、绕过验证,⽐如说购买了⼀个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把

钱改成-3,是不是我的余额还要增加?

2、绕过⾝份授权,⽐如说修改商品信息接⼝,那必须得是卖家才能修改,那我传⼀个普通⽤户,能不能修改成功,我传⼀个其他的卖家能不能修改

成功

3、参数是否加密,⽐如说我登陆的接⼝,⽤户名和密码是不是加密,如果不加密的话,别⼈拦截到你的请求,就能获取到你的信息了,加密规则是

否容易破解。

4、密码安全规则,密码的复杂程度校验

异常验证:

所谓异常验证,也就是我不按照你接⼝⽂档上的要求输⼊参数,来验证接⼝对异常情况的校验。⽐如说必填的参数不填,输⼊整数类型的,传⼊

字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传⾮必传、参数类型、⼊参长度。

性能测试

接⼝并发情况,如上⾯提到的:⼀个账号,同时(⼤于2个请求)对最后⼀个商品下单,或不同账号,对最后⼀个商品下单

接⼝响应时间,响应时间太长了,肯定需要优化,⼀般都是毫秒级别

4. ⽤什么⼯具测接⼝?

⽤⽤什什么么⼯⼯具具测测接接⼝⼝

: 推荐。基本功能免费。最简单的基于http接⼝的调试和测试⼯具;

:后置处理器配合断⾔基本上可以满⾜接⼝测试需求,就是测试报告要做⼆次开发

⾃⼰撸代码:推荐。配合类似xunit测试框架,基本可以满⾜⼀切需求;

: 收费的;

:强⼒推荐。postman的弱化版,基本功能免费,重要的是⼯具代码开源,可以⾃⼰改;

: 强⼒推荐。mac上最强,淘宝买个授权好像就百把块钱;

5. WebService接⼝是如何测试的?

webService接⼝⽤SoapUI

6. 没有接⼝⽂档如何做接⼝测试?

        没有接⼝⽂档,那还能咋办,瞎测呗!⼀个公司的开发流程⾥⾯,如果接⼝⽂档都没有,是⽆法展开接⼝测试的,你都不知道这个接⼝⼲什么的,也不知道具体每个字段代表什么意思,那还测啥呢?

        --当然,你肯定不能回答⾯试官不测(⼼理mmp,脸上笑嘻嘻),接下来就是扯犊⼦时间

1.没有接⼝⽂档,那就需要先跟开发沟通,然后整理接⼝⽂档(本来是开发写的,没办法,为了唬住⾯试官,先说⾃⼰整理了)

2.没有接⼝⽂档,可以抓包看接⼝请求参数,然后不懂的跟开发沟通

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

7. 在接⼝测试过程中,上下游接⼝有数据依赖如何处理?

在在接接⼝⼝测测试试过过程程中中,,上上下下游游接接⼝⼝有有数数据据依依赖赖如如何何处处理理

⽤⼀个全局变量来处理依赖的数据,⽐如登录后返回token,其它接⼝都需要这个token,那就⽤全局变量来传token参数

8. 依赖第三⽅数据的接⼝如何进⾏测试?

        这个标准答案是:mock

        接着⾯试官会问你,如果mock的,然后你就顺着坑继续挖,搭建mock服务,参考这篇

9. 当⼀个接⼝出现异常时,你是如何分析异常的?

        1.抓包,⽤fiddler⼯具抓包,或者浏览器上f12,app上的话,那就⽤fiddler设置代理,去看请求报⽂和返回报⽂了。

        2.查看后端⽇志,xhell连上服务器,查看⽇志。

10. 如何模拟弱⽹测试?

        fiddlercharles都可以模拟弱⽹测试,平常说的模拟丢包,也是模拟弱⽹测试

 

11. 如何分析⼀个bug是前端的还是后端的?

        平常提bug的时候,前端开发和后端开发总是扯⽪,不承认是对⽅的bug 。

        这种情况很容易判断,先抓包看请求报⽂,对着接⼝⽂档,看请求报⽂有没问题,有问题就是前端发的数据不对。请求报⽂没问题,那就看返回报⽂,返回的数据不对,那就是后端开发的问题。


WebService接接⼝⼝是是如如何何测测试试的的

webService接⼝⽤SoapUI没没有有接接⼝⼝⽂⽂档档如如何何做做接接⼝⼝测测试试

http://www.lryc.cn/news/602150.html

相关文章:

  • 【深度学习优化算法】10:Adam算法
  • 力扣面试150题--颠倒二进制位
  • 医疗领域非结构化数据处理技术突破与未来演进
  • Java学习-----JVM的垃圾回收算法
  • 虚拟地址空间:从概念到内存管理的底层逻辑
  • Nuxt3 全栈作品【通用信息管理系统】修改密码
  • React中的合成事件解释和理解
  • 架构实战——互联网架构模板(“开发层”和“服务层”技术)
  • DevOps时代的知识治理革命:Wiki如何成为研发效能的新引擎
  • 并发安全之锁机制一
  • 小架构step系列28:自定义校验注解
  • “太赫兹”
  • KubeSphere理论及实战
  • Error reading config file (/home/ansible.cfg): ‘ACTION_WARNINGS(default) = True
  • 什么是3DVR?VR技术有哪些应用场景?
  • 关于sql面试积累
  • 红绿灯纵向距离的评估
  • 【查漏补缺】机器学习典型算法
  • 【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(终)
  • 应用加速游戏盾的安全作用
  • Java BigDecimal详解:小数精确计算、使用方法与常见问题解决方案
  • 【数据库】使用Sql Server将分组后指定字段的行数据转为一个字段显示,并且以逗号隔开每个值,收藏不迷路
  • GaussDB 开发基本规范
  • 22 BTLO 蓝队靶场 Countdown 解题记录
  • 如何利用机器学习分析筛选生物标记物
  • 微信小程序——早餐小程序
  • TMS320F28335PGFA TI德州仪器:32位浮点内核+CLA协处理器DSP,工业控制性能极限!
  • 【Linux指南】Linux粘滞位详解:解决共享目录文件删除安全隐患
  • CJ02、CJ20N下达项目报错用户状态 初始 是活动的,怎么解决?
  • 模型压缩的一些整理