本文整理了面试中经常被问到的接口测试题目,也是项目中经常遇到的实际问题,希望能通过这些题目提高对接口测试的理解。
后续也会持续更新一些题目进来,希望能对大家有所帮助。

1、get和post区别是什么?

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

传送方式:get通过地址栏传输,post通过报文传输
传送长度:get参数有长度限制(受限于url长度),而post无限制
GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)
get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留
在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式

2、常见的POST提交数据方式

application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml

3、你们公司是如何做接口测试的?

接口测试实际跟一般测试不同就是测试用例的设计部分。

通过接口文档获得接口请求的参数
设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)
各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)
接口返回值各种验证(符合接口文档需求)
了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
接口能并发执行吗、安全吗,性能满足要求吗?
采用工具或者自写代码来验证
发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态

4、如何分析一个bug是前端还是后端的?

平常提bug的时候,前端开发和后端开发总是扯皮,这种情况很容易判断。

先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。

5、请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?
UI与接口测试的协同可以从下面的方向考虑:

UI的操作实际上就是用另一种方式调用接口,那么接口有多少种参数组合就要求UI用例要构造多少种操作进行调用
UI操作所需要的数据可以用接口来生成
接口测试可以保证数据和逻辑的准确性,UI测试需要考虑交互和界面展示的逻辑正确性
UI测试需要重视接口调用不成功或者接口异常情况下UI的呈现方式和用户体验
UI中可能会有一些状态的缓存信息(这样就不需要每次频繁调用接口去获取了),比如鉴权信息等,需要重点关注这些缓存的更新策略

6、接口测试中上下游接口有数据依赖如何处理?

假如一个事务需要顺序调用2个接口:A和B接口, B依赖A接口的响应数据,这时候在执行B接口之前必须完成A接口,并通过某些手段获得A接口的特定数据给B接口使用。
上下游接口的数据依赖无非就是准备测试数据,数据一般有三种方式获得:

独立统一的测试数据库, A、B需要的数据都可以从库里拿到
假如B依赖A创造的数据,那么每次执行B之前必须执行A去做数据创建
通过正则表达式动态获得A的返回数据,并保存到变量中,通过参数化的方式传递给B接口

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

可以使用SoapUI等工具直接调用第三方数据接口的webservice,通过返回值来查看第三方数据的接口是否调用正常。

也可以利用一些工具来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖。

8、接口测试中依赖登录状态的接口如何测试?

依赖登录状态的接口的本质上是在每次发送请求时需要带上Session或者Cookie才能发送成功,在构建POST请求时添加必要的Session或者Cookie。

如果使用python+requests实现的话,可以使用session对象发送接口请求。

9、webService接口测试是什么?

webService接口有一套完整的协议标准,主要为soap协议,用来进行消息的传递,返回结果需要包装在一个soap协议指定的语法格式中。即使你只需要简单的返回字符1,也需要包装在协议种返回,协议描述了成功失败否,结果值等,可以通过soapUI测试工具去进行接口的模拟及测试。

web service接口的特点:

接口中实现的方法和要求参数一目了然。
不用担心大小写问题。
不用担心中文 urlencode 问题。
代码中不用多次声明认证(账号,密码)参数。
传递参数可以为数组,对象等。

10、如何获取接口的参数?

设计接口测试用例时,涉及的是电商系统,其中包括很多修改,如商品、商家、店铺等等,针对这些数据的修改,会涉及到很多参数。如商品的名称,商品的尺码,商品的颜色等等。

那在设计实现“修改”接⼝口时,如何确定要传哪些参数?是只需要传我要修改的参数,还是全部参数都要传?

方式一、关键还是看后台逻辑实现

举例:User有两个属性username,password
后台逻辑实现:update User set username=? where id=xxx;
那么,如果你只想更新username的时候,可以不传password,其值是保持不变的。
后台逻辑实现:udpate User set username=?,password=? where id=xxx;
这种情况下,即使你只想更新username,也需要传password的值给后台,不然password就会被更新为空。
此外,还有一些数据如id等,如果sql中没有写,那即使传递了本字段的参数,数据库也不会更新。因此,在写关于“修改”的接口时,需要考虑一下,后台的逻辑是怎么实现的,然后确认要传递哪些参数。
方式二、抓包工具直接抓取接口情况分析

如果系统已经实现了,并且已经确定了接口逻辑,那么我们通过Fiddler等抓包工具,抓取到对应业务的请求报文,分析其中传递参数信息即可。

11、为什么要做接口测试?

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

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

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

12、HTTP接口传递数据最常用的方式?

Get方式是从服务器上获取数据;在做数据查询时,建议用Get方式;如:商品信息接口、搜索接口、博客访客接口等。

Post方式是向服务器传送数据 ;在做数据添加、修改或删除时,建议用Post方式 ;如:微博图片上传图片接口、登录注册接口等。

13、什么是接口测试?

接口测试是测试系统组件间接口的一种测试。

接口测试的重点是检查数据的交换,传递的正确性,以及接口间逻辑依赖关系。

提交接口测试的重要意义:实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期。

14、我们测试的接口属于哪一类?

大多数的接口指的是HTTP接口,通常是指 B/S架构,由客户端(浏览器)调用,或模拟客户端(浏览器)调用服务器提供的API接口,由接口完成处理并返回一个应答的过程。

常见接口类型还有:Webservice接口,http接口,jms接口,hessian接口、REST接口。

15、接口测试用例编写的要点都包含哪些?

测试每个参数类型不合法的情况(等价类)
测试每个参数取值范围不合法的情况(等价类)
测试参数为空的情况(等价类)
测试参数前后台定义的一致性
测试每个参数的上下限(边界值)
如果两个请求有严格的先后顺序,需要测试调转顺序的情况(参数组合和顺序)
接口参数有可选和必选情况的参数组合测试(参数组合和顺序)
16、接口测试的基本步骤?
1)获取请求报文数据

通过fiddler工具或者API接口文档获得请求报文参数,其中就包括请求方式(get、post、put等)、URL地址、请求的query string parameter以及请求的body数据。

2)借助工具模拟请求报文并发送

把第一步中获得的参数,整理到jmeter、postman、soapui等接口参数工具中,模拟接口请求并发送该请求。

3)获得响应结果

使用接口测试工具发送请求后,会返回响应报文,分析响应报文中的数据是否是符合要求的。

4)断言:判断实际结果是否与预期相同

在工具中也可以添加预设的断言,在运行接口测试后,会自动返回接口是否实现正确。我们可以使用响应报文的响应状态码、响应的headers头部或者响应的正文数据(html、json格式等)进行断言。

17、HTTP协议的特点是什么?

1)HTTP是无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2)HTTP是媒体独立的

这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

3)HTTP是无状态

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

18、HTTP客户端请求消息包含哪几部分?

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)
请求头部(header)
空行
请求数据

19、HTTP服务器响应消息包含哪些信息?
HTTP响应由四个部分组成,分别是:

状态行
消息报头
空行
响应正文

20、常见的HTTP状态码
1xx – 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
2xx – 成功(表明服务器成功地接受了客户端请求)
3xx – 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)
4xx – 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)
5xx – 服务器错误(服务器由于遇到错误而不能完成该请求)

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!!这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

面试秘籍 | 接口测试常见面试题相关推荐

  1. 算法面试必备-----数据分析常见面试题

    算法面试必备-----数据分析常见面试题 算法面试必备-----数据分析常见面试题 1.统计学问题 问题:贝叶斯公式复述并解释应用场景 问题:朴素贝叶斯的理解 问题:参数估计 问题:极大似然估计 问题 ...

  2. 算法面试必备-----数据仓库常见面试题

    算法面试必备-----数据仓库常见面试题 算法面试必备-----数据仓库常见面试题 问题:什么叫数据仓库? 问题:数据仓库建模 为什么需要数据仓库建模? 数据仓库建模方法? 1.ER模型 2.维度建模 ...

  3. SAS程序员面试经历及常见面试题

    最近很多小伙伴都在看机会,我也分享一下最近的面试经历,并附上一些常见的面试题. 面试过程: 1.自我介绍,进行简要自我介绍 2.职业技能,会什么,简历上的实践经历 3.英语水平,简要介绍自己最喜欢学科 ...

  4. [Java面试]六:常见面试题之设计模式

    我的博客首页:http://blog.csdn.net/m0_37116405 我的GitHub首页:https://github.com/KissLouis 设计模式六大原则 开闭原则:对扩展开放, ...

  5. vue component created没有触发_面试!面试!面试!vue常见面试题。

    "金三银四"的时候到了,一大批准备跳槽的程序员蠢蠢欲动,小编最近也在投简历,找工作.现在很多公司都要求vue.react.ng三大主流框架中的一两个.小编在此总结一下vue常见的面 ...

  6. 面试流程及常见面试题

    基础篇 参考这里的面试题:面试题写在后面了 能回答上百分之七十,基础的广度就算 OK 了.如果达不到,那么缺 什么就赶紧补什么.广度达到了,还需要对个别热点问题有深度.每 个人的精力都有限,可以适当挑 ...

  7. 【每日1刷系列】接口测试常见面试题

    本文整理了面试中经常被问到的接口测试题目,也是项目中经常遇到的实际问题,希望能通过这些题目提高对接口测试的理解. 后续也会持续更新一些题目进来,希望能对大家有所帮助. 1.请详细阐述接口测试和UI测试 ...

  8. 【Java面试】异常常见面试题

    文章目录 1. Error 和 Exception 区别是什么? 运行时异常和一般异常(受检异常)区别是什么? JVM 是如何处理异常的? throw 和 throws 的区别是什么? final.f ...

  9. 接口测试常见面试题(含答案)

    目录 1.http协议和https的区别? 2. 常见的post提交数据的方式有哪些? 3. 常见的请求头以及它们的作用是什么? 4. get请求和post的区别? 5. 接口请求中常用的返回状态码 ...

  10. 接口测试常见面试题总结

    1.目前市面上流行的接口大多有哪几种协议的接口? 答:http https dubbo rpc(远程调用协议) 等即可. 2.接口的请求方式有哪几种? 答:get post put delete he ...

最新文章

  1. 三层交换机原理:01路由器如何隔离广播域?
  2. Matlab编程与数据类型 -- 多分支条件选择语句if/elseif/…/else/end
  3. kalilinux Linux debian版本 aptitude命令未找 解决 bash: aptitude:未找到命令
  4. sklearn GBDT(梯度下降树)模型使用RandomSearchCV获取最优参数及可视化​​​​​​​
  5. 有关增强现实技术的过去、现在和未来的发展
  6. 刘强东宣布: 未来京东将减员50%,每天工作3小时!无人公司来了……
  7. Teams内嵌的卡片image的限制
  8. 01-subgradients_notes
  9. 老spring3.2版本 redistemplate 报错_植物大战僵尸加强版本
  10. tinypng upload一键压缩上传工具
  11. F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍
  12. 品牌的mysql数据库监控_zabbix实现mysql数据库的监控(四)
  13. 自己理解的比特币双重支付
  14. Servlet过滤器Filter和监听器
  15. 利用打码平台识别点选验证码
  16. php 知乎源代码,PHP最新仿知乎问答社区源码下载带行业打赏问答支持文章、话题、第三方登录、文章和问题打赏...
  17. oracle 10g固定执行计划,oracle 10g执行计划 (转帖)
  18. java里获取当前月份_Java如何获取当前月份的名称?
  19. U牌“唤醒生命,未来可7”
  20. 光遇服务器修复暴风眼刷新了吗,光遇暴风眼怎么进 光遇暴风眼刷新时间

热门文章

  1. ISA Server 新手完全进阶指南
  2. matlab 峰值提取,Matlab2019b信号峰值检测与提取
  3. Stereoscopic Player播放器的控制
  4. vs2008 sp1 C++ 发布程序
  5. 京东数据分析SQL面试题
  6. 路由与交换技术笔记(eNSP)
  7. 暴风激活后浏览器被锁定首页
  8. 测试后台管理系统思路和方法
  9. ORACLE安装之环境搭建
  10. C语言实验报告(通用)