当前位置: 首页 > 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免费领取。

 

                                                     

 

相关文章:

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

目录 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有什么坑点&#xff1f; 1. JSX做表达式判断时候&#xff0c;需要强转为boolean类型 如果不使用 !!b 进行强转数据类型&#xff0c;会在页面里面输出 0。 render() {const b 0;return <div>{!!b && <div>这是一段文本</div>}</div…...

中级嵌入式系统设计师2016下半年下午应用设计试题

中级嵌入式系统设计师2016下半年下午试题 试题一 阅读以下说明,回答问题1至问题3。 【说明】 某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等功能…...

【雅思备考】九分学长写作课笔记

原视频&#xff1a;https://www.bilibili.com/video/BV1FG4y1J7br?p13&vd_source552ac2291179cf9d44088ea168db5531 一、综述 共计1小时 小作文&#xff1a; 描述 图表图&#xff08;数据图&#xff09;、流程图&#xff08;示意图&#xff09;、地图&#xff08;示意…...

【源码解析】SpringBoot自动装配的实现原理

什么是SpringBoot的自动装配 SpringBoot在启动的时候会扫描外部jar包中的META-INF/spring.factories文件&#xff0c;将文件中配置的类信息按照条件装配到Spring容器中。 实现原理 核心注解SpringBootApplication Target({ElementType.TYPE}) Retention(RetentionPolicy.R…...

详解ROS时间戳

ROS&#xff08;Robot Operating System&#xff09;是一个用于机器人开发的开源软件框架&#xff0c;其中涉及到了一些与时间相关的概念和工具&#xff0c;如时间戳、计时器等。本文将主要介绍ROS中时间戳的概念和应用&#xff0c;并提供一个Python代码案例演示如何处理ROS时间…...

Android Window、WindowManager

1.窗口Window 在Android中显示一个界面,首先想到的是Activity、Dialog或Toast。但是在有些情况下,比如悬浮球,用Activity会显然多余,这个时候可以直接使用窗口来实现。 Android中所有的视图都是通过Window来呈现的,不管是Activity、Dialog还是Toast,它们的视图实际上都…...

【一天一门编程语言】怎样设计一门编程语言?

怎样设计一门编程语言&#xff1f; 确定目标 确定语言的用途&#xff1a; 是一门通用编程语言&#xff0c;还是一门专门面向某个特定目标的语言&#xff1f;是一门面向对象的语言&#xff0c;还是一门过程化的语言&#xff1f;将语言的最终用户定义为谁&#xff1f; 确定语言…...

微服务保护 -- 初识 Sentinel(雪崩问题,快速入门Sentinel)

大家好&#xff0c;今天我们要来学习阿里巴巴开源的流量控制和熔断降级框架 – Sentinel 。 1、雪崩问题及解决方案 首选我们来了解一下雪崩问题及其解决方案&#xff0c;我们学习这个微服务保护&#xff0c;其实就是为了去应对类似于雪崩问题这样的服务故障。 1.1 什么是雪…...

软件测试面试问答

笔试 笔试的话我们需要揣测具体会考什么内容&#xff0c;我们可以通过招聘信息去了解该公司需要什么样的技能&#xff0c;以此来准备笔试。一般必考的内容会有编程&#xff0c;测试用例设计&#xff0c;工作流程&#xff0c;逻辑思维等内容&#xff0c;除此之外每个公司可能还会…...

【架构】架构师的核心能力-抽象能力

文章目录一、通过归纳法找共性二、通过演绎法找关系三、通过归纳法找特性四、最后架构的核心是管理复杂度&#xff0c;架构师的核心能力是抽象能力&#xff0c;什么是抽象能力&#xff1f;抽象能力就是一种化繁为简的能力。何为化繁为简&#xff1f;就是把一种复杂的事情变得简…...

前端一面常见react面试题(持续更新中)

React 组件中怎么做事件代理&#xff1f;它的原理是什么&#xff1f; React基于Virtual DOM实现了一个SyntheticEvent层&#xff08;合成事件层&#xff09;&#xff0c;定义的事件处理器会接收到一个合成事件对象的实例&#xff0c;它符合W3C标准&#xff0c;且与原生的浏览器…...

亥姆霍兹线圈测量系统

亥姆霍兹线圈[Helmholtz线圈]是指由具有相同线圈匝数、相同线圈绕制方式且线圈半径等于线圈间距的一对或者多对线圈构成的线圈组合。 根据线圈的形状&#xff0c;亥姆霍兹线圈可分为圆形亥姆霍兹线圈和方形亥姆霍兹线圈&#xff1b;根据磁场方向&#xff0c;亥姆霍兹线圈可分为…...

JavaScript 类型转换

Number() 转换为数字&#xff0c; String() 转换为字符串&#xff0c; Boolean() 转化为布尔值。JavaScript 数据类型在 JavaScript 中有 5 种不同的数据类型&#xff1a;stringnumberbooleanobjectfunction3 种对象类型&#xff1a;ObjectDateArray2 个不包含任何值的数据类型…...

Spring Batch 综合案例实战-项目准备

目录 案例需求 分析 项目准备 步骤1&#xff1a;新开spring-batch-example 步骤2&#xff1a;导入依赖 步骤3&#xff1a;配置文件 步骤4&#xff1a;建立employee表与employe_temp表 步骤5&#xff1a;建立基本代码体系-domain-mapper-service-controller-mapper.xml …...

STM32CubeMX串口USART中断发送接收数据

本文代码使用 HAL 库。 文章目录前言一、中断控制二、USART中断使用1. 中断优先级设置 &#xff1a;2. 使能中断3. 使能UART的发送、接收中断4. 中断收发函数5. 中断处理函数6. 中断收发回调函数三、串口中断实验串口中断发送数据点亮 led&#xff1a;实验现象&#xff1a;总结…...

JavaScript Web Workers使用流程

背景 Web Workers是一个API&#xff0c;允许在浏览器中运行后台处理任务&#xff0c;而不影响用户界面&#xff08;UI&#xff09;线程的稳定性。 Web Workers 可用于消除阻止 UI 的耗时任务&#xff0c;如图表生成&#xff0c;物理模拟或数据分析等&#xff1a; 使用 Web W…...

数据结构与算法(五):优先队列

这节总结一下优先队列的常用实现方法。 一、基本概念 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。在优先队列中&#xff0c;元素被赋予优先级。当访问元素时&#xff0c;具有最高优先级的元素最先删除。优先队列具有最高级…...

二叉树的前序遍历-java两种方式-力扣144

一、题目描述给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。示例 1&#xff1a;输入&#xff1a;root [1,null,2,3]输出&#xff1a;[1,2,3]示例 2&#xff1a;输入&#xff1a;root []输出&#xff1a;[]示例 3&#xff1a;输入&#xff1a;root [1]输出…...

浅析 Redis 主从同步与故障转移原理

我们在生产中使用 Redis&#xff0c;如果只部署一个 Redis 实例&#xff0c;当该实例宕机&#xff0c;到恢复之前都不可用&#xff1b;虽说 Redis 一般都用来做缓存&#xff0c;但不可用给业务系统带来的影响也是不小的&#xff0c;流量大时甚至会导致整个服务宕机。所以 Redis…...

如何做电子书网站/爱站小工具圣经

如果一个网站的页面有一个部位经常用到时,可以写一个单独的jsp页面 <jsp:include page"xx.jsp"/>这条代码,单独写个文件来联合起来,类似于一个通用的页面 例如网站顶部的登陆注册栏...

北京网站制作17页/老鬼seo

[NOIP2016]天天爱跑步 时间限制&#xff1a;2 s 内存限制&#xff1a;512 MB 【题目描述】 小C同学认为跑步非常有趣&#xff0c;于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏&#xff0c;需要玩家每天按时上线&#xff0c;完成打卡任务。 这个…...

邢台集团网站建设报价/如何做营销

题目&#xff1a;编写代码模拟三次密码输入的场景。 最多能输入三次密码&#xff0c;密码正确&#xff0c;提示“登录成功”,密码错误, 可以重新输入&#xff0c;最多输入三次。三次均错&#xff0c;则提示退出程序 public static void main(String[] args) {Scanner scannern…...

大连建网站策划/网课免费平台

概述 PowerJob是新一代分布式任务调度与计算框架&#xff0c;支持CRON、API、固定频率、固定延迟等调度策略&#xff0c;提供工作流来编排任务解决依赖关系&#xff0c;能让您轻松完成作业的调度与繁杂任务的分布式计算。 为什么选择PowerJob&#xff1f; 当前市面上流行的作…...

城乡建设部注册建筑师网站/最吸引人的营销广告词

Visual C&#xff03;读取Excel表格中的数据&#xff1a; 一&#xff0e;程序设计及运行环境    &#xff08;1&#xff09;.微软视窗2000 服务器版    &#xff08;2&#xff09;..Net Framework SDK Beta 2    &#xff08;3&…...

用家里的路由器做网站/太原搜索引擎优化

天线增益概念。原创不易&#xff0c;恐有错误&#xff0c;恳请读者指正。碎片三分钟逛电巢App&#xff0c;收获一丢丢。 天线定向性(directivity) 假设理想的无定向性天线&#xff0c;在远场区的3D球面空间各方向的辐射功率都相等&#xff0c;则定义球面等辐射功率的方向图的定…...