当前位置: 首页 > 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.dtcms.com/a/302551.html

相关文章:

  • 图像识别边缘算法
  • 从矩阵表示到卷积神经网络(CNN)与循环神经网络(RNN)
  • MCP error -32000: Connection closed
  • 基于开源AI智能名片链动2+1模式与S2B2C商城小程序的微商品牌规范化运营研究
  • mxn矩阵学习笔记
  • 使用Python制造扫雷游戏
  • Marc 非线性仿真复杂,企业如何保障许可证公平与高效使用?
  • (AC)储值购物
  • Android中主线程、ActivityThread、ApplicationThread的区别
  • 【氮化镓】GaN同质外延p-i-n二极管中星形与三角形扩展表面缺陷的电子特性
  • Python 实现服务器自动故障处理工具:从监控到自愈的完整方案
  • 日志分析-windows日志分析base--笔记ing
  • lesson26-2:使用Tkinter打造简易画图软件优化版
  • 深入解析MIPI C-PHY (五) MIPI C-PHY 与 A-PHY 的对比分析
  • 重生之我在暑假学习微服务第三天《Docker-上篇》
  • 【Unity笔记】Unity Camera.cullingMask 使用指南:Layer 精准控制、XR 多视图与性能提升
  • ERC20 和 XCM Precompile|详解背后技术逻辑
  • 学习Python中Selenium模块的基本用法(2:下载浏览器驱动)
  • js的学习2
  • JavaScript:数组常用操作方法的总结表格
  • Webhook技术深度解析:从原理到实现全指南
  • Item17:以独立语句将newed对象置入智能指针
  • MDM五十万台设备高并发场景解决方案【后台管理】
  • Taro 位置相关 API 介绍
  • C# 状态机以及状态机编程模式
  • Java设计模式-通俗举例
  • 【智慧物联网平台】编译jar环境 Linux 系统Maven 安装——仙盟创梦IDE
  • Leaflet 综合案例-聚类图层控制
  • django ManyToManyField 如何添加数据
  • Django缓存机制详解:从配置到实战应用