接口自动化测试面试(高频面试常问)+答案

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、结合项目讲解项目中实战接口操作(postman和jmeter挑一个)

postman版本答案一:

我用的postman工具做的 接口测试的过程:首先我会问开发拿到接口文档,编写对应的接口测试用例,然后把对应的url地址,data信息,headers都放入到postman里面。

然后设置断言,然后发送接口的请求,看一下接口是否断言成功,对于一些关联接口的测试,我会首先把登录接口调通,然后拿到登录接口返回的token值,通过在后置处理器tests里面把token设置为环境变量,然后在下一个接口的请求头里面通过{{token}} 俩个大括号进行引用。

达到关联接口的测试,如果是有参数化的接口测试,我首先会在本地创建一个CSV文件然后造对应的测试数据,在postman左侧栏有一个run点击一下,然后选择本地对应的CSV文件,然后批量运行接口,看一下接口是否运行成功和是否断言成功,完成参数化接口的测试。

postman版本答案二:
我用的postman工具做的,如果有接口文档,我会问开发拿到接口文档,如果没有的话我会自己用fiddler抓包,编写对应的接口测试用例,然后把对应的url地址,还有入参都放入到postman里面。

然后设置断言,然后发送接口的请求,看一下接口是否调通并且断言成功,对于一些关联接口的测试,我会首先把上一个接口调通,然后拿到上一个接口的返回值,通过在tests里面把拿到的值,设置为环境变量,然后在下一个接口的请求头里面通过俩个大括号进行引用。

达到关联接口的测试,如果要批量运行接口的话,我会在左侧栏集合里面点击运行,然后设置迭代次数和选择参数化文件进行运行,达到批量运行的目的。

jmeter版本:
首先我会问开发同事拿到接口文档并且设计对应的测试用例,然后打开jmeter,创建一个测试计划和线程组,添加http请求,把对应的URL地址,入参和端口都填写进去,然后添加断言和断言结果,添加察看结果树,发送请求。

如果是对于关联接口的话我首先会把登录接口调通然后设置一个jsonpath提取器或者正则表达式提取器,拿到登录接口返回的token值,并且在http信息头管理器里面通过${token}进行引用,完成关联接口的测试。

对于需要做参数化的接口,首先我会在本地准备csv文件,然后在jmeter里面添加csv data set config,然后把本地的csv文件加载进来,点击运行,查看接口通过的情况。

2、接口抓包工具的原理?介绍当前常见的接口测试工具,接口设计测试用例应该从哪些方面去考虑?你们1个接口可以写多少条自动化测试用例?你测过多少个接口?总共有多少条接口自动化用例,每次运行时间要多久? 你们自动化和功能测试的占比是怎样的?

1)常见的抓包工具:
fiddler、Charles、wrieshark(TCP/UDP)、浏览器F12开发者调试模式

2)抓包工具的原理:
fiddler作为一个代理服务器,代理的是本地,端口号8888,客户端发送请求给到服务端,fiddler可以打请求前断点进行拦截,修改请求的数据,然后发送给到服务端,服务端接收到数据进行处理并响应,然后fiddler可以打响应后断点,修改响应后的数据,再把响应后的数据返回给到客户端

打断点:
① 全局断点
② 单个断点
请求前断点 ==》bpu + 接口路径 ==》取消断点:bpu
响应前断点 ==》bpafter +接口路径 ==》取消断点:bpafter

【面试题】你主要用fiddler来做什么?

答:用来抓包、打断点–》那你还能用来做什么?–》还可以进行mock测试,弱网测试
–》为什么要打断点?–》通过断点修改请求参数和响应的内容来对接口进行正常场景和异常场景的测试

3)常见的接口测试工具
postman、jmeter、swagger(存接口)、apifox、apipost
Apifox = Postman + Swagger + Mock + JMeter
Apipost = Postman + Swagger + Mock + Jmeter
apifox、apipost ==》团队协作更为鉴权
Postman ==》不登录也是可以使用的
apifox ==》必须要扫码登录

4)接口设计测试用例应该从哪些方面去考虑【超级重点】

① 首先我会考虑接口入参的必填和选填,参数的长度校验和类型校验
② 不同的请求方法,比如把post换成get请求
③ 不同的请求的内容类型,比如表单键值对换成json字符串
④ 还会根据接口不同的返回值去设计不同的入参来进行覆盖
⑤ 还会考虑接口之间的逻辑关系,比如关联接口等等
⑥ 用户无效的token或者错误的token进行鉴权
⑦ 还有需要考虑接口的幂等性
⑧ 还会考虑接口查询数据的性能表现==》会不会有慢SQL等等的问题

5)你们1个接口可以写多少条自动化测试用例?你测过多少个接口?总共有多少条接口自动化用例,每次运行时间要多久? 你们自动化和功能测试的占比是怎样的?

1个接口大概写8-10条自动化测试用例
之前项目组测了大概有100多个接口–》100个接口8-10条=800-1000条用例–》接口自动化测试用例写了大概了1000多条–》10000.5秒每条=8-9分钟

自动化和功能测试的占比–》功能和业务占到60-70%,UI和接口自动化以及性能占30%左右

3、对于接口幂等性你是怎么测试的?

幂等性的概念:接口幂等性就是用户对同一个接口发起一次或多次请求的结果是一致的,不会因为多次请求而产生不同的结果

查:是有天然幂等,不需要再做额外的幂等
删:也是有天然幂等的

更新操作–》数据库锁
1)数据库悲观锁–》指的就是每次操作的时候,先把记录锁定起来,其他人无法操作这条记录

2)数据库乐观锁–》就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制。

新增操作==》唯一索引
前端:如防止表单重复提交,按钮置灰、隐藏、按钮不可点击等方式
后端:唯一索引

【面试题】你对接口幂等性是怎么测试的【重点】

答:我会在jmeter里面去组建接口,并且设置比如50个并发线程数,加入同步定时器(集合点)同时去对接口发起请求,如果只有一个接口能请求的通,其他的49次请求都是失败的,就说明接口是做了幂等性校验的

4、你给后端接口做幂等性校验,那这个key(唯一索引)加在哪个字段上面?

电商项目:唯一索引加在订单号上面
银行贷款项目:贷款申请号,借据号上面
保险项目:保单号上面

5、在测试过程当中有没有出现过资损的情况?怎么防止资损或者资损这块怎么测

1)没有出现过资损的情况
2)防止资损的技术手段:数据库不用float等数据类型,用bigdecimal 或 decimal等数据类型 ==》比如3333.33 变成了3333.333333333333333333
==》有些除不尽的数据,比如10000分3期,第一期3333.33,第二期3333.33,第三期3333.34
==》通过对账对金额和资损进行测试

6、mock和沙箱环境是什么意思

1)mock测试:
① 后端接口功能还没有实现好,但是有需要用到这个还没有开发完成的接口,就可以通过模拟接口的返回值,先进行mock数据测试;
② 测试一下第三方接口的时候,可以通过mock测试达到测试的目的

7、第三方接口是怎么测试的

1)如果对方有沙箱环境我们就使用第三方的沙箱环境进行测试
2)如果没有,我们可以通过mock进行第三方接口的测试

最全Python自动化测试进阶之路视频教学 (全集)

下面是我整理的2025年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生最耀眼的不是站在领奖台的瞬间,而是黑暗中依然前行的勇气。当你觉得疲惫不堪时,请记住:每个伟大的转折都藏在"再坚持一下"的决定里。你的脚步,正在丈量属于自己的传奇!

别被眼前的迷雾困住脚步!那些看似徒劳的努力,都在为惊喜的绽放积蓄力量。当世界说"到此为止"时,你的坚持就是最响亮的回答。向前奔跑吧,生命的精彩正在下一站等你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86266.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86266.shtml

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

相关文章

Kubernetes 从入门到精通-StatefulSet控制器

一、StatefulSet 基础概念 1. 与 Deployment 的关键区别 特性StatefulSetDeployment网络标识稳定的 DNS 名称随机生成存储每个 Pod 独立 PVC,数据持久化 共享存储或无状态启停顺序严格按序号顺序(0→N-1 启动,N-1→0 停止)并行适…

Redis ①②-事务

Redis 事务 先来看看 MySQL 事务的四大特性: 原子性:将事务里的多个操作打包成一个整体,要么全部成功,要么全部失败,失败后会进行回滚操作。一致性:确保事务执行前后,其数据的整体变化一致。隔…

Leetcode+JAVA+回溯

39.组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复…

嘉讯科技:医院电子病历系统的关键性作用

电子病历系统在现代医疗领域发挥着至关重要的作用。 电子病历系统极大地提高了医疗效率。以往,医生需要翻阅大量的纸质病历,耗费时间和精力去查找关键信息。而电子病历系统通过数字化的存储和检索方式,使得医生能够在短时间内获取患者的完整病…

解决 Docker 里 DrissionPage 无法连接浏览器的问题,内含直接可用的Docker镜像(DrissionPage 浏览器链接失败 怎么办?)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 报错现象与诊断 📒📑 源码🐞 DrissionPage 报错内容🐞 手动启动 Chrome 测试📒 原因分析与解决方案 📒🔍 为什么会这样?🔧 解决办法🔧 推荐方案🎯 测试🐳 可直接使用的Docker镜像 🐳📦 镜像下载地址…

Mysql 数据库中设备实时状态表水平分表

一、 需求概述 在使用 Mysql 数据库存储设备上报日志时,存在一张设备实时状态表,随着时间推移,数据量变得十分庞大。为了更好地管理和查询数据,提高数据库性能,需要对该表进行水平分表操作。同时,存在分页…

nginx的下载与安装 mac

1. 下载 方法一:本地下载 链接:https://nginx.org/en/download.html(可直接搜官网) 下载到本地后,上传到linux的某个文件夹中 方法二:直接linux上下载(推荐) wget -c http://ngi…

在 Mac 上配置 Charles,抓取 iOS 手机端接口请求

工具官网:https://www.charlesproxy.com/ Charles 激活码 一、简介 Charles 是一款强大的网络抓包工具,支持 HTTP 和 HTTPS 协议,适用于调试手机 App、微信小程序、H5 页面等网络请求。 它能作为代理服务器,转发并记录本机及其他…

较大项目 git(gitee, github) 拉取失败解决方法

问题描述 近期遇到了一个拉取一个比较大项目失败的问题,229M这么大 每次都失败 我在自己的PC上,只有极好的环境才能拉取,笔记本办公热点怎么都不行 解决办法 后面通过https链接 首次会报错,因为我输入错了gitee的username&am…

爬虫中网络知识基础

HTTP(HyperText Transfer Protocol)和 HTTPS(HyperText Transfer Protocol Secure)是互联网上用于传输网页内容等数据的两种主要协议,以下是它们的定义和基本工作原理: HTTP 定义 :HTTP 是一种…

安全工具-二进制安全-testssl.sh

1 需求 --openssl <PATH> &#xff1a;use this openssl binary (default: look in $PATH, $RUN_DIR of testssl.sh) --quiet&#xff1a;dont output the banner. By doing this you acknowledge usage terms normally appearing in the banner --severity <severity…

WHAT - 组件库与 Storybook

文章目录 什么是 Storybook&#xff1f;使用场景举例快速上手教程&#xff08;React 为例&#xff09;1. 安装 Storybook2. 创建一个 Story&#xff08;组件故事&#xff09;3. 启动 Storybook 常用功能常见生态扩展示例&#xff1a;用 Args 和 Controls 动态控制 Props推荐资料…

魔音音乐 5.0.2 | 无损下载 同步网易云歌单UI美观

魔音音乐是一款功能丰富的音乐播放软件&#xff0c;提供高保真音质、智能推荐系统和用户友好界面。其丰富的音乐库几乎覆盖了所有类型的音乐&#xff0c;无论是流行歌曲还是小众音乐&#xff0c;都能在这里找到。这款应用非常适合音乐爱好者使用&#xff0c;它不仅让你享受高品…

云原生时代的中国答案:OLARDB、OceanBase与PostgreSQL的共生革命

以下是对阿里自研数据库的全景式技术调查,重点梳理其产品体系、与PostgreSQL的技术关联及发展历程: 一、阿里自研数据库全景图谱 ​​1. 核心自研产品​​ ​​数据库名称​​​​类型​​​​技术定位​​​​与PostgreSQL关系​​​​PolarDB​​云原生分布式数据库存储计…

HTTP 请求方法与状态码

前言&#xff1a;构建可靠前端应用的 HTTP 通信基础 在当今复杂的 Web 应用生态中&#xff0c;前端开发已远超简单的页面构建&#xff0c;转而成为与后端系统紧密交互的复杂体系。作为这一交互的核心机制&#xff0c;HTTP 协议承载着几乎所有的前后端数据交换&#xff0c;其设…

WIFI原因造成ESP8266不断重启的解决办法

一、报错 报错信息如下&#xff1a; 21:37:21.799 -> ets Jan 8 2013,rst cause:2, boot mode:(3,7) 21:37:21.799 -> 21:37:21.799 -> load 0x4010f000, len 3424, room 16 21:37:21.799 -> tail 0 21:37:21.799 -> chksum 0x2e 21:37:21.799 -> loa…

13.5-13.8. 计算机视觉【2】

文章目录 13.5. 多尺度目标检测13.5.1. 多尺度锚框13.5.2. 多尺度检测13.5.3. 小结 13.6. 目标检测数据集13.6.2. 读取数据集13.6.3. 演示 13.7. 单发多框检测&#xff08;SSD&#xff09;13.7.1. 模型13.7.1.1. 类别预测层13.7.1.2. 边界框预测层13.7.1.3. 连结多尺度的预测13…

RSS解析并转换为JSON的API集成指南

RSS解析并转换为JSON的API集成指南 引言 随着互联网的发展&#xff0c;信息的传播和共享变得越来越重要。RSS&#xff08;简易信息聚合&#xff09;作为一种广泛采用的格式&#xff0c;用于发布经常更新的内容&#xff0c;如博客文章、新闻头条或播客等。它允许用户订阅这些内…

java数据类型详解篇

1、8种基本数据类型 数据类型分类字节数内存位数是否最高位为符号位&#xff08;0正数1负数&#xff09;取值范围&#xff08;数值形式&#xff09;取值说明byte整数类型18是-128 ~ 127-2^7 ~ 2^7 - 1 &#xff08;幂形式&#xff09;short整数类型216是-32,768 ~ 32,767-2^15…

vue 浏览器样式警告:“unknown property name“

浏览器样式警告&#xff1a;"unknown property name"&#xff0c;但在部分电脑上的浏览器又是没有问题的。 这个问题因为没有安装sass或者less&#xff0c;却直接使用了他的语法&#xff0c;比如嵌套样式&#xff1a; body {/* 按钮 */.el-button {background: lin…