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

面了一个月,终于让我总结出了这份最详细的接口测试面试题

目录

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

2、什么时候开展接⼝测试?

3、接⼝测试和UI测试的工作是否重复?

 4、接口测试框架怎么搭建?

 5、接⼝之间有依赖时怎么处理?

 6、如何判断接⼝测试的结果(成功或失败)?

7、发送HTTP请求时,传递参数的途径有哪些?

8、持续集成如何做的?⾃动化测试多久构建⼀次?

 9、使用工具和代码实现接口测试的区别?

10、 cookies和session的区别

总结


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

分析:

回答测试流

按测试流程,结合实际⼯作描述接⼝测试内容展现接⼝测试成果

回答测试流

按测试流程,结合实际⼯作描述接⼝测试内容展现接⼝测试成果

在我上家公司,⾸先针对⽤户提出的需求,展开 需求分析,由产品经理主导,出具需求⽂档。 开发⼯程师

据需求⽂档,开始编写代码,功能测试⼯程师根据需求⽂档,设计功能测试点,撰写测试⽤例。接⼝测试⼈员,需要等待后端输出接⼝⽂档后才能展开⼯作,在等待期间,可以熟悉⼀下需求,准备接⼝测试数据。

后端开发提供接⼝⽂档后,接⼝测试⼯程师根据接⼝⽂档,设计接⼝测试⽤例 。根据测试⽤例,展开 接⼝测试⼯作 ,发现BUG,使⽤禅道完成提交、跟踪与管理缺陷的⼯作。

等所有测试⽤例执⾏率达到100%,发现普通等级以上的BUG都已经修复了,那么我们就可以输出接⼝测试的报告,功能测试⼈员再根据我们输出的接⼝测试报告,进⾏功能测试。

在实际的接⼝测试⼯作当中,⽐较困难的部分是登录接⼝的验证码处理,我们系统中,有⼀个⼈脸识别技术,通过接⼝很难进⾏测试,这个时候,我们是通过mock的⽅式绕过了⼈脸识别的登录接⼝,进⽽完成的测试。⼈脸识别的验证,放在了功能阶段进⾏。

我们公司,使⽤的接⼝测试⼯具主要是Postman,使⽤到断⾔、数据关联、参数化等技术,来实现接⼝测试,最后使⽤newman来⽣成测试报告。也了解过 jmeter⼯具 和 python + requests框架来进⾏接⼝测试。postman

⼯具有转换代码的功能,也可以把postman的界⾯操作转换为对应python代码,进⾏接⼝测试

2、什么时候开展接⼝测试

在我们公司中,我们有独⽴接⼝测试部⻔,等后端开发提测接⼝之后,就开始进⾏接⼝测试⼯作。根据个⼈的了解,我们公司是在 后端开发提测 接⼝时,进⾏的接⼝测试。

但是有的公司,会在需求评审之后,开发负责⼈就会输出项⽬的标准接⼝⽂档,所以这些公司,会在需求评审之后,开发负责⼈输出标准接⼝⽂档之后,就开始了接⼝测试。

我们还会进⾏接⼝的持续集成,在整个接⼝测试通过之后,就可以进⾏接⼝的⾃动化测试和持续集成了,这个部分也是属于接⼝测试。

                

                     

 

3、接⼝测试和UI测试的工作是否重复

如果单纯只看UI测试,不看UI测试中的功能部分,那么UI测试和接⼝测试没有重复

因为UI测试只关注界⾯之间的交互,布局,按钮的点击等等。这些UI操作都可以脱离接⼝来进⾏。但是如果UI测试还包括功能测试,那么 UI测试  接⼝测试 在业务测试点上是⾼度重复的。

怎么解决重复⼯作问题?思路1

让接⼝测试⼯程师,重点关注服务器端业务交互

UI测试⼯程师,重点关注界⾯的显示、⻚⾯之间的跳转、布局等⻚⾯元素的变化。关注主业务流程是否与服务器端的操作流程吻合。

思路2

不划分功能测试和接⼝测试⼈员。所有测试⼯程师,都既做功能测试也做接⼝测试。这样可以避免资源浪费情况。

     4、接口测试框架怎么搭建?

相当于问:你们公司的接⼝测试的技术框架是什么?(代码)答:

我们公司使⽤的接⼝测试框架是 python + pytest (unittest) + requests + parameterized 实现的框架结构主要分为6部份。分别是:被测系统,API,测试⽤例,测试数据,测试报告和数据库。

他们的关系是,API⽤于封装被测系统的接⼝,测试⽤例使⽤封装的接⼝编写接⼝测试脚本,测试数据会和测试脚本分离开发,主要采⽤json结构来存储测试数据,使⽤unittest⽣成测试报告,

使⽤pymysql,进⾏数据库相关的操作

     5、接⼝之间有依赖时怎么处理

分析:建议,回答⾯试题是,尽量套⽤实际项⽬作答。如果,你不举例,⾯试官就会结合他们公司⾃⼰的项⽬任

⼀个有关联的接⼝让你分析。答:

在我参与的上个项⽬中,就有依赖关系的处理,是员⼯模块的增、删、改、查等接⼝依赖 登录成功接⼝当时,使⽤postman的关联技术来进⾏处理的。

⾸先是提取登录接⼝的令牌,然后把令牌保存到环境变量,最后在员⼯的增删改查4个接⼝中按照接⼝⽂档的要求,通过请求头的 Authorization 参数完成令牌的关联

      6、如何判断接⼝测试的结果(成功或失败)?

分析:可以结合实际项⽬回答答:

以注册接⼝为例,怎么判断注册接⼝的测试结果是正确的呢?3⼤校验要点:

  1. 判断响应数据与预期是否⼀

注册完成返回的响应数据,与预期数据是否⼀

      2. 断⾔数据与数据库中的数据是否⼀致

查询接⼝,数据库中的数据作为预期数据;响应数据是实际数据

写⼊接⼝(增、删、改),数据库中的是实际数据,写⼊的数据是预期数

判断注册账号成功之后,数据库中写⼊⽤户信息,是否与预期数据⼀致,是否符合业务逻辑

      3.判断业务逻辑正确性。注册成功之后,需要登录查看注册的账号是否能够登录强调:接             测试  功能测试  相通。

如果这个⾯试题换成 如何判断测试的结果 ,回答的⽅式是⼀模⼀样的

     7、发送HTTP请求时,传递参数的途径有哪些

URL、请求头、请求

      8、持续集成如何做的?⾃动化测试多久构建⼀次

在之前的项⽬当中,我负责了⼈⼒资源管理系统登录模块和员⼯管理模块的持续集成⼯作

我们的项⽬主要是使⽤持续集成⼯具,jenkins + 项⽬管理⼯具git + HTML Publisher + 邮件来进⾏持续集

主要是利⽤源码管理,配置拉取git仓库中的接⼝⾃动化测试代码,然后使⽤构建命令运⾏项⽬⼊⼝⽂件,从⽽实

⾃动化测试。在这其中使⽤了构建触发器的定时构建和轮巡构建

利⽤定时构建,每天05:00执⾏1次⾃动化测试。通过轮巡构建,检查⾃动化接⼝测试的代码有没有更新,有更新就触发构建。触发之后,会使⽤HTML Publiser⽣成测试报告,并发送邮件,给测试部⻔所有员⼯,和开发负责⼈。

进⾏持续集成之后,我们可以把晚上的时间也利⽤起来,进⾏⾃动化的接⼝测试⼯作,提升了测试效率。构建频率不是固定的,⼀般每天⾄少1次。如果代码变动频繁,可以会有更多次。

                   

 

     9、使用工具和代码实现接口测试的区别?

⼯具

更容易上⼿、使⽤简单。能应对实际⼯作中⼤部分需求

但,受⼯具本身功能限制,不适合应对对技术要求较⾼的场景。代码:

学习难度较⼤,使⽤有⼀定难度,需反复练习才能掌握。但,灵活度⾮常⾼。适合任何场景。

在实际⼯作当中,⽇常使⽤以⼯具为主。代码是⾼薪的基础,是软件测试⾏业未来发展的⽅向

     10、 cookies和session的区别

位置不同

  1. cookie数据存放在客户的浏览器上
  2. session数据放在服务器上

安全性

cookie不是很安全,别⼈可以分析存放在本地的COOKIE并进⾏COOKIE欺骗

session安全性更⾼。

         占⽤空间:

session会在⼀定时间内保存在服务器上。当访问增多,会⽐较占⽤服务器的性

考虑到减轻服务器性能⽅⾯,应当使⽤COOKIE

⼤⼩不

  1. 单个cookie保存的数据不能超过4K,很多浏览器都限制⼀个站点最多保存20cookie
  2. session是不限量

总结

重点:配套学习资料和视频教学

因为篇幅限制我总结了几个经典的接口测试面试题目给大家。需要完整版的可以找我。那么在这里我也精心准备了软件测试、自动化测试的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的点击下方名片加我VX免费领取。

 

                                                     

 

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

相关文章:

  • {新}【java开发环境安装】完整工作环境安装配置
  • Python|每日一练|数组|数学|图算法|字符串|动态规划|单选记录:加一|迷宫问题|扰乱字符串
  • MySQL 使用IF判断
  • C++类与对象(上)【详析】
  • AIR系列|板载LED|gpio引脚选择|GPIO|流水灯|LuatOS-SOC接口|官方demo|学习(20-1):GPIO库基础
  • MySQL数据库中的函数怎样使用?
  • 命名空间的使用大全
  • Redisson分布式锁和同步器详解-官方原版
  • 【C语言进阶】指针与数组、转移表详解
  • SDN是什么,和SD-WAN有什么关系
  • 百度前端高频react面试题(持续更新中)
  • 中级嵌入式系统设计师2016下半年下午应用设计试题
  • 【雅思备考】九分学长写作课笔记
  • 【源码解析】SpringBoot自动装配的实现原理
  • 详解ROS时间戳
  • Android Window、WindowManager
  • 【一天一门编程语言】怎样设计一门编程语言?
  • 微服务保护 -- 初识 Sentinel(雪崩问题,快速入门Sentinel)
  • 软件测试面试问答
  • 【架构】架构师的核心能力-抽象能力
  • 前端一面常见react面试题(持续更新中)
  • 亥姆霍兹线圈测量系统
  • JavaScript 类型转换
  • Spring Batch 综合案例实战-项目准备
  • STM32CubeMX串口USART中断发送接收数据
  • JavaScript Web Workers使用流程
  • 数据结构与算法(五):优先队列
  • 二叉树的前序遍历-java两种方式-力扣144
  • 浅析 Redis 主从同步与故障转移原理
  • MyBatis学习笔记(七) —— 特殊SQL的执行