面了一个月,终于让我总结出了这份最详细的接口测试面试题
目录
1、你们公司是如何做接口测试的?
2、什么时候开展接⼝测试?
3、接⼝测试和UI测试的工作是否重复?
4、接口测试框架怎么搭建?
5、接⼝之间有依赖时怎么处理?
6、如何判断接⼝测试的结果(成功或失败)?
7、发送HTTP请求时,传递参数的途径有哪些?
8、持续集成如何做的?⾃动化测试多久构建⼀次?
9、使用工具和代码实现接口测试的区别?
总结
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⼤校验要点:
- 判断响应数据与预期是否⼀致
注册完成返回的响应数据,与预期数据是否⼀致
2. 断⾔数据与数据库中的数据是否⼀致。
查询接⼝,数据库中的数据作为预期数据;响应数据是实际数据。
写⼊接⼝(增、删、改),数据库中的是实际数据,写⼊的数据是预期数据
判断注册账号成功之后,数据库中写⼊⽤户信息,是否与预期数据⼀致,是否符合业务逻辑。
3.判断业务逻辑正确性。注册成功之后,需要登录查看注册的账号是否能够登录强调:接 测试 和 功能测试 是 相通。
如果这个⾯试题换成 如何判断测试的结果 ,回答的⽅式是⼀模⼀样的。
7、发送HTTP请求时,传递参数的途径有哪些?
答:
URL、请求头、请求体
8、持续集成如何做的?⾃动化测试多久构建⼀次?
答:
在之前的项⽬当中,我负责了⼈⼒资源管理系统登录模块和员⼯管理模块的持续集成⼯作。
我们的项⽬主要是使⽤持续集成⼯具,jenkins + 项⽬管理⼯具git + HTML Publisher + 邮件来进⾏持续集成
主要是利⽤源码管理,配置拉取git仓库中的接⼝⾃动化测试代码,然后使⽤构建命令运⾏项⽬⼊⼝⽂件,从⽽实现
⾃动化测试。在这其中使⽤了构建触发器的定时构建和轮巡构建。
利⽤定时构建,每天05:00执⾏1次⾃动化测试。通过轮巡构建,检查⾃动化接⼝测试的代码有没有更新,有更新就触发构建。触发之后,会使⽤HTML Publiser⽣成测试报告,并发送邮件,给测试部⻔所有员⼯,和开发负责⼈。
进⾏持续集成之后,我们可以把晚上的时间也利⽤起来,进⾏⾃动化的接⼝测试⼯作,提升了测试效率。构建频率不是固定的,⼀般每天⾄少1次。如果代码变动频繁,可以会有更多次。

9、使用工具和代码实现接口测试的区别?
答:
⼯具:
更容易上⼿、使⽤简单。能应对实际⼯作中⼤部分需求。
但,受⼯具本身功能限制,不适合应对对技术要求较⾼的场景。代码:
学习难度较⼤,使⽤有⼀定难度,需反复练习才能掌握。但,灵活度⾮常⾼。适合任何场景。
在实际⼯作当中,⽇常使⽤以⼯具为主。代码是⾼薪的基础,是软件测试⾏业未来发展的⽅向。
10、 cookies和session的区别
答:
位置不同:
- cookie数据存放在客户的浏览器上,
- session数据放在服务器上。
安全性:
cookie不是很安全,别⼈可以分析存放在本地的COOKIE并进⾏COOKIE欺骗;
session安全性更⾼。
占⽤空间:
session会在⼀定时间内保存在服务器上。当访问增多,会⽐较占⽤服务器的性能
考虑到减轻服务器性能⽅⾯,应当使⽤COOKIE。
⼤⼩不同
- 单个cookie保存的数据不能超过4K,很多浏览器都限制⼀个站点最多保存20个cookie。
- session是不限量的
总结
重点:配套学习资料和视频教学
因为篇幅限制我总结了几个经典的接口测试面试题目给大家。需要完整版的可以找我。那么在这里我也精心准备了软件测试、自动化测试的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的点击下方名片加我VX免费领取。



相关文章:
面了一个月,终于让我总结出了这份最详细的接口测试面试题
目录 1、你们公司是如何做接口测试的? 2、什么时候开展接⼝测试? 3、接⼝测试和UI测试的工作是否重复? 4、接口测试框架怎么搭建? 5、接⼝之间有依赖时怎么处理? 6、如何判断接⼝测试的结果(成功或失败&a…...
{新}【java开发环境安装】完整工作环境安装配置
公司新发了一台红米笔记本,打算用新的笔记本,开启自己新的工作旅程,其中把做个的事都记录一边,以便实现,听、读、视频图像、讨论、实践、教人的一个学习过程。 一、Java开发环境安装 找到安装包下载;在官…...
Python|每日一练|数组|数学|图算法|字符串|动态规划|单选记录:加一|迷宫问题|扰乱字符串
1、加一(数组,数学) 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以…...
MySQL 使用IF判断
mysql判断语句 1、IF 和IFNULL IF(表达式1,表达式2,表达式3); 含义:如果表达式1为true,则返回表达式2的值,否则返回表达式3的值,表达式的值类型可以为数字或字符串 例:判断对错 SELECT IF(TRUE…...
C++类与对象(上)【详析】
目录1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1访问限定符4.2封装5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小8.this关键字如果说我们对C的初步认识,是觉得C是对C语言不足之处的进行修补,在认识完类…...
AIR系列|板载LED|gpio引脚选择|GPIO|流水灯|LuatOS-SOC接口|官方demo|学习(20-1):GPIO库基础
AIR系列各型号开发板板载LED对应管脚及GPIO控制代码 AIR103: rtos_bsp "AIR103" then -- Air103开发板LED引脚编号--return pin.PB26, pin.PB25, pin.PB24return 42,41,40 AIR105: rtos_bsp "AIR105" then -- Air105开发板LED引…...
MySQL数据库中的函数怎样使用?
函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?我们先来看两个场景&…...
命名空间的使用大全
概述 在C中,我们会使用变量、常量、函数、类、对象、结构体等各种元素。随着工程越来越庞大,代表这些元素的标识符冲突的概率也越来越大。为了解决标识符命名冲突的问题,C标准在1995年引入了关键字namespace,也叫做命名空间。使用…...
Redisson分布式锁和同步器详解-官方原版
一、锁定基于Redis的Java分布式可重入锁对象,并实现了锁接口。如果获取锁的Redisson实例崩溃,则此类锁可能会在获取状态下永久挂起。为了避免这种Redisson维护锁看门狗,当锁持有者Redisson实例处于活动状态时,它会延长锁的到期时间…...
【C语言进阶】指针与数组、转移表详解
前言 大家好我是程序猿爱打拳,我们在学习完指针的基本概念后知道了指针就是地址,我们可以通过这个地址并对它进行解引用从而改变一些数据。但只学习指针的基础是完全不够的,因此学习完指针的基础后我们可以学习关于指针的进阶,其中…...
SDN是什么,和SD-WAN有什么关系
SDN全称为“软件定义网络”(Software-Defined Networking),是一种新型的网络架构,通过将网络的控制面和数据面分离,将网络控制集中到控制器中进行统一管理和配置,以提高网络的灵活性和可管理性。传统网络的…...
百度前端高频react面试题(持续更新中)
说说你用react有什么坑点? 1. JSX做表达式判断时候,需要强转为boolean类型 如果不使用 !!b 进行强转数据类型,会在页面里面输出 0。 render() {const b 0;return <div>{!!b && <div>这是一段文本</div>}</div…...
中级嵌入式系统设计师2016下半年下午应用设计试题
中级嵌入式系统设计师2016下半年下午试题 试题一 阅读以下说明,回答问题1至问题3。 【说明】 某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等功能…...
【雅思备考】九分学长写作课笔记
原视频:https://www.bilibili.com/video/BV1FG4y1J7br?p13&vd_source552ac2291179cf9d44088ea168db5531 一、综述 共计1小时 小作文: 描述 图表图(数据图)、流程图(示意图)、地图(示意…...
【源码解析】SpringBoot自动装配的实现原理
什么是SpringBoot的自动装配 SpringBoot在启动的时候会扫描外部jar包中的META-INF/spring.factories文件,将文件中配置的类信息按照条件装配到Spring容器中。 实现原理 核心注解SpringBootApplication Target({ElementType.TYPE}) Retention(RetentionPolicy.R…...
详解ROS时间戳
ROS(Robot Operating System)是一个用于机器人开发的开源软件框架,其中涉及到了一些与时间相关的概念和工具,如时间戳、计时器等。本文将主要介绍ROS中时间戳的概念和应用,并提供一个Python代码案例演示如何处理ROS时间…...
Android Window、WindowManager
1.窗口Window 在Android中显示一个界面,首先想到的是Activity、Dialog或Toast。但是在有些情况下,比如悬浮球,用Activity会显然多余,这个时候可以直接使用窗口来实现。 Android中所有的视图都是通过Window来呈现的,不管是Activity、Dialog还是Toast,它们的视图实际上都…...
【一天一门编程语言】怎样设计一门编程语言?
怎样设计一门编程语言? 确定目标 确定语言的用途: 是一门通用编程语言,还是一门专门面向某个特定目标的语言?是一门面向对象的语言,还是一门过程化的语言?将语言的最终用户定义为谁? 确定语言…...
微服务保护 -- 初识 Sentinel(雪崩问题,快速入门Sentinel)
大家好,今天我们要来学习阿里巴巴开源的流量控制和熔断降级框架 – Sentinel 。 1、雪崩问题及解决方案 首选我们来了解一下雪崩问题及其解决方案,我们学习这个微服务保护,其实就是为了去应对类似于雪崩问题这样的服务故障。 1.1 什么是雪…...
软件测试面试问答
笔试 笔试的话我们需要揣测具体会考什么内容,我们可以通过招聘信息去了解该公司需要什么样的技能,以此来准备笔试。一般必考的内容会有编程,测试用例设计,工作流程,逻辑思维等内容,除此之外每个公司可能还会…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
