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

news2024/11/24 9:56:03

目录

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.coloradmin.cn/o/373989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C进阶】指针的高级话题

文章目录:star:1. 字符指针:star:2. 指针数组2.1 指针数组的定义2.2 指针数组的使用:star:3. 数组指针3.1 数组的地址3.2 数组指针的使用:star:4. 数组参数和指针参数:star:5. 函数指针5.1 函数名和函数的地址5.2 练习:star:6. 函数指针数组6.1 转移表:star:7. 指向函数指针数组…

昌德科技冲刺上市:计划募资约12亿元,蒋卫和为实控人

近日,深圳市昌德新材科技股份有限公司(下称“昌德科技”)递交招股书,准备在真真证券交易所主板上市。本次冲刺上市,昌德科技计划募资11.69亿元,中信建投证券为其保荐机构。 据招股书介绍,昌德科…

西电编译原理期末核心考点汇总(期末真题+相关知识点)

文章目录前言一、正规式1.1 相关知识点1.1.1 正规式定义1.1.2 辅助定义1.2 历年真题二、二义文法2.1 相关知识点2.1.1 二义性概念2.2 历年考题三、全部短语、直接短语和句柄3.1 相关知识点3.1.1 短语,直接短语和句柄定义3.1.2 短语,直接短语和句柄例题3.…

【企业管理】研发部视角提出对外支撑业务自助门户构思和实现

导读:公司是由不同部门组成,各个部门之间必然有协同才能使得公司各项职能正常运行。可以说公司的竞争力越强往往会得出公司内部之间工作协同就越高效,可以看出公司各部门之间协同对公司营运是十分重要的。高效协同前提必然是实现便利的信息共…

数据库设计表与表之间的关系详细介绍

文章目录数据库设计数据库设计简介表关系之一对多表关系之多对多表关系之一对一数据库设计 数据库设计简介 软件研发的步骤如下: 设计数据库还是很重要的 数据库设计概念: 数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构…

Synology搭建Gitea(Docker)

Synology搭建Gitea(Docker) 文章目录Synology搭建Gitea(Docker)参考增加用户与用户组增加映像安装配置反向代理路由器端口转发参考 Nas轻量git方案:Docker安装Gitea;群晖(Synology) NAS 如何安装 gitea 增加用户与用户组 为所有Docer创建一个组docker; 权…

行测-判断推理-图形推理-样式规律-黑白运算

黑白元素个数不同,优先考虑黑白运算白白白黑黑白黑白黑选A考试时,这种题不要先把规律全部推出来,再去做题,太慢了直接看要推的图,通过排除法选答案黑白元素个数不同,优先考虑黑白运算白白白黑黑白黑白黑选B…

【5G RRC】5G系统消息SIB3介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

[python入门(52)] - python中的OS模块(包) - 1

目录 ❤ OS模块和path模块(函数) ❤ 当前路径及路径下的文件 ❤ 绝对路径 ❤ 查看指定文件路径的文件夹路径部分和文件名部分 ❤ 路径拼接 ❤ 获取路径的文件夹路径部分 ❤ 获取路径的文件名 ❤ 查看文件时间 ❤ 查看文件大小 ❤ 查看文件是否存在 ❤ OS模…

【原创】java+swing+mysql设备预约管理系统设计与实现

我们在办公室或者学校实验室的,经常需要使用一些设备,因此需要提前租借。今天我们主要介绍如何使用javaswing和mysql数据库去完成一个设备预约管理系统,方便用户进行设备管理和预约。 功能分析: 设备预约管理系统主要是为了方便…

医疗床头卡(基站方案)

一、产品特色 低功耗,常规使用3-5年电池寿命支持空中唤醒点阵电子纸屏幕安装简单,快速布置远程智能化管理低碳环保,无纸化安全可靠ESL_BWR7.5_V2二、系统结构 三、多基站组织架构 四、电子床头卡 接收路由器发送的数据信息并解析&#xff0…

深度学习之卷积神经网络学习笔记一

1. 引言深度学习是一系列算法的统称,包括卷积神经网络(CNN),循环神经网络(RNN),自编码器(AE),深度置信网络(DBN),生成对抗…

FreeRTOS优先级翻转

优先级翻转优先级翻转:高优先级的任务反而慢执行,低优先级的任务反而优先执行优先级翻转在抢占式内核中是非常常见的,但是在实时操作系统中是不允许出现优先级翻转的,因为优先级翻转会破坏任务的预期顺序,可能会导致未…

16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)

知识要点 线性回归要点: 生成线性数据: x np.linspace(0, 10, 20) np.random.rand(20)画点图: plt.scatter(x, y)TensorFlow定义变量: w tf.Variable(np.random.randn() * 0.02)tensor 转换为 numpy数组: b.numpy()定义优化器: optimizer tf.optimizers.SGD()定义损失: …

利用Redis一步步实现优惠券的最终秒杀方案

订单ID不能采用自增长的原因: 1、规律变化太明显。两天下单的ID的差值,能够计算出商城的订单量; 2、如果采用自增长,订单数据是会不断产生的,到时候要分表,但是每个表的ID都是从0开始增长的,这…

selenium模块(自动化)

文章目录一、环境配置二、使用selenium解析源码三、基本函数四、子页面(ifFrame)(动作链,拖拽)五、实现无可视化界面,规避被检测的风险(反反爬)六、等待七、异常处理Selenium是自动化…

Vue+python+django+flask共享汽车租赁管理系统

共享汽车管理系统的系统管理员可以管理用户,可以对用户信息修改删除以及查询操作。具体界面的展示如图所示。 3.2投放地区管理 系统管理员可以对投放地区信息进行添加,修改,删除以及查询操作。具体界面如图所示。 3.3汽车信息管理 系统管…

【原创】java+swing+mysql教室管理系统设计与实现

大学生活中,我们很多时候都要用到教室,比如开个班会,开展某次活动,一般情况下为了避免占用教室资源,一般情况下都会提前进行预约教室,所以今天我们讲的就是如何使用javaswingmysql去设计一个教室预约管理系…

13 Sentinel初始化监控

Sentinel初始化工程演示 通过一个案例来让大家了解Sentinel的初始化演示,现在我们需要做几件事: 启动本地Nacos: 8848创建新的Module:cloudalibaba-sentinel-service8401启动Sentinel服务:8080启动sentinel微服务840…

Day901.内部临时表 -MySQL实战

内部临时表 Hi,我是阿昌,今天学习记录的是关于内部临时表的内容。 sort buffer、内存临时表和 join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助 SQL 语句的执行的。 其中,在排序的时候用到了 sort bu…