接口自动化面试题超全,助你离Offer又近一步!

news2024/11/30 6:39:04

一 、请问你是如何做接口测试的?

大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下步:

第一步:分析出测试需求,并请开发提供接口说明文档;
第二步:从接口说明文档中整理出接口测试用例,里面要包括详细的入参(正常情况,异常情况包括输入参数个数,类型,可选/必选,考虑参数有互斥或关联的情况)和出参数据(符合接口文档需求)以及明确的格式和检查点;
第三步:与开发一起对接口测试用例进行评审;
第四步:结合开发库,准备接口测试用例中的入参数据和出参数据,并整理成Excel格式的文件;
第五步:结合接口测试用例文档和Excel格式的数据文档,编写接口自动化测试的业务逻辑代码;
第六步:开始执行接口自动化测试用例;
第七步:执行如有bug,提交至缺陷管理平台;
第八步:开发修改完成后,回归bug,跟踪状态;
第九步:完成后进行自动化持续集成;

二、 接口测试如何设计测试用例?

主要从个方面来设计接口用例:功能,业务逻辑,异常,安全。

功能:是否符合需求

1)从用户角度出发看接口能否实现业务需求,功能是否正常;

2)功能是否按照接口文档实现;

举例:比如博客园添加随笔,需要登录才能添加。也就是业务要求不支持游客添加随笔功能,如果设计一个没有登录的用户,然后去测试添加随笔接口,结果接口能添加到随笔,说明功能不正常,不符合需求和接口文档描述。

业务逻辑:是否依赖业务

1)接口实现逻辑;

2)业务逻辑覆盖(语句/条件/分支/判定/…);

举例:该接口调用之前,需要调用登录接口,如果不登录也能请求数据,不符合业务逻辑。

异常:参数异常和数据异常

1)参数异常:关键字参数,参数为空,多,少参数,错误参数;

2)数据异常:关键字数据,数据为空,长度不一致,错误数据;

举例:不管数据异常还是参数异常,测试点差不多,一个参数有key和value,key表示参数,value表示数据。第一,看看参数和数据能不能支持关键字,例如Java中的保留关键字等等;第二就是参数和数据都为空,看看是否做了判断;第三,参数多和少,例如有两个参数的接口,需要设计一个包含三个参数的用例,一个只有一个参数的用例。数据长度不一致,例如设计很长的字符串是否支持,因为数据库创建表过程都设置好了每个字段的长度。输入错误的参数和数据,如故意输错单词等等。

安全测试用例设计:

1)cookie:有cookie才能获取数据,如果不带cookie还有信息返回,说明有问题;
2)header:正常接口带header信息,删除header看是否能够返回数据;
3)唯一识别码:app手机识别码,一般是唯一的;

4)文本输入框sql注入和xss攻击。

三 、接口测试执行中需要比对数据库吗?

接口的返回关键字段和字段值是需要校验的,不然接口测试就没有意义了。
一般有种方式:

1)数据库预置数据,接口校验返回;

2)接口调用,比对数据库查询结果。

四 、接口测试质量评估标准是什么?

一般来说,从以下个方面评估:

1) 业务功能覆盖是否完整;
2) 业务规则覆盖是否完整;
3) 参数验证是否达到要求(边界、业务规则);
4) 接口异常场景覆盖是否完整;
5) 接口覆盖率是否达到要求;
6) 代码覆盖率是否达到要求;
7) 性能指标是否满足要求;
8) 安全指标是否满足要求;

五 、接口产生的垃圾数据如何清理

造数据和数据清理,需用Python连数据库了,做增删改查的操作测试用例前置操作。

  • setUp做数据准备后置操作;
  • tearDown做数据清理;

六、 其他接口要先获取接口信息,如何让登录的接口只在其他接口调用一次?

解决方法如下:

  • 使用单例模式;
  • 使用自定义缓存机制;
  • 使用测试框架中的 setup 机制;
  • pytest 中 fixture 机制;

七、 接口测试断言从哪些方面去设计?

接口测试断言可以从以下个方面进行设计:

1)响应码:检查响应码是否符合预期,用来判断测试用例是否执行成功(针对http接口);

2)关键字:验证关键字是否符合预期,用来判断测试用例是否执行成功;

3)正则匹配:当一个接口返回的内容较多,并且有一定规律时,可通过正则表达式来校验接口返回的信息来判定测试用例是否执行成功;

4)数据库匹配核对:比如对查询一个接口返回的数据进行验证时,可通过编写sql语句查询结果,然后将sql语句执行后数据库返回的结果与接口返回的结果进行核对,以此来判定测试用例是否执行成功;

5)通过相关接口进行辅助验证:比如,当测试一个删除接口时,删除一条记录后,想验证这条记录真的被删除,可调用查询接口,若删除的记录没被查询到,则说明删除这条记录成功。

八 依赖于第三方数据的接口如何进行测试?

可以利用一些Mock工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖。Mock服务是指在测试过程中对于某些复杂(或者不太好构造)的对象,用一个虚拟的对象替代它。如现在有A和B两个接口, A需要调用接口B才能完成业务需求。这个时候B接口有如下三种情况:

1)B接口还没有开发完成:需要等待接口的数据来进行开发,这时候完善的接口Mock服务能大大缩短开发联调等待时间。

2)B的某些场景很难去模拟:比如超时、未知错误或者不稳定的第三方接口。

3)性能测试中隔离B接口(第三方接口):在进行压测的时候就会遇到问题。

九 API测试有哪些优势?

API是(Application Programming Interface),即应用程序编程接口。API是一组用于构建软件应用程序的规程,协议和工具。API充当软件应用程序之间的接口,并允许两个软件应用程序相互通信。API是一组软件功能,可以由其他软件执行。API测试具备如下优势:

  • 更快及更高的测试覆盖率。
  • API测试有助于我们降低测试成本。通过API测试,我们可以在GUI测试之前找到小错误。在GUI测试期间,这些小错误将变得更大。因此,在API测试中发现这些错误将对公司具有成本效益。
  • API测试与语言无关。
  • API测试在测试核心功能方面非常有用。我们可以在没有用户界面的情况下测试API。在GUI测试中,我们需要等到应用程序可用于测试核心功能。
  • API测试有助于我们降低风险。

十 接口调不通,如何去排查?

接口调不通的原因:

1)接口没有任何响应

很多时候在做接口测试时,会发现接口没有任何返回,比如浏览器一直在转圈,或者返回一个空白页面。用接口测试工具时,工具报错,提示“no response”。

排查思路:

1.先检查接口ip是否正确,可以通过在本机ping 接口的ip,检查网络是否通畅;

2. 检查接口的端口号是否正确,可以通过在本机telnet接口的ip和端口号,检查端口是否能连通;

3.检查项目是否启动或者部署成功,可以找研发确认,或者自己登录到服务器上,通过ps命令检查项目的进程是否存在,然后用tail命令查看部署日志;

4.检查服务器防火墙是否关闭,如果因为安全或者权限问题不能关闭,需要找运维进行策略配置,开放对应的ip和端口号;

5.检查你的客户端(浏览器/测试工具),是否设置了网络代理,网络代理可能会造成请求失败;

6.检查操作系统的host文件,是否绑定了一个错误的ip映射;

2)接口有响应但是返回了错误的状态码

有些时候接口会返回一些错误的HTTP状态码,需要根据不同的状态码来确定具体的原因。

排查思路:

400:客户端请求错误,比如请求参数格式错误(如json字符串不合法);

401:未授权,比如在请求header里,缺乏必要的信息头(如token、auth等字段);

403:禁止,常见的原因是用户的账号没有对应的url权限,还有就是项目所用的中间件,不允许远程访问(比如Apache);

404:资源未找到,导致这种情况的原因很多,比如:

  • url拼写错误;
  • url后有空格;
  • 项目没有启动成功;
  • 请求协议不对,如http/https;

405:方法不允许,常见的原因是请求方式不正确,比如GET类型接口,使用POST方式去请求;

415:不支持的媒体类型,常见原因是请求数据的类型和服务端支持的类型不匹配,比如json接口,需要添加一个信息头Content-type:application/json;

500:服务器内部错误,出现这种情况,说明服务端内部报错了,需要登录到服务器上,检查错误日志,根据具体的提示信息再进行排查;

502/503/504(Bad Gateway/错误的网关、Service Unavailable/服务无法获得、Gateway Timeout/网关超时)。从以下两种情况分析:

  • 如果单次调用接口就报该错误,说明是后端服务器配置有问题,或者服务不可用,挂掉了;
  • 如果并发压测时出现此错误,说明是后端压力太大,出现异常,此问题一般是后端出现响应时间过长或者无响应造成

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

vue3基础ref,reactive,toRef ,toRefs 使用和理解

文章目录 一. ref基本用法在模板中使用ref 与 reactive 的区别使用场景 二. reactive基本用法在模板中使用reactive 与 ref 的区别使用场景性能优化 三. toRef基本用法示例在组件中的应用主要用途对比 ref 和 toRef 四. toRefs基本用法示例在组件中的应用主要用途对比 ref 和 t…

盘点16个有名气的进销存软件,你听说过哪一款?

进销存系统不仅能实现采购、销售、库存的一体化管理,精确记录每一笔业务数据,还帮助企业实时掌握库存状况,避免缺货或积压,降低成本。同时,通过数据分析,进销存还为企业决策提供了有力支持,助力…

职升网:二级建造师延续注册需要啥资料?

延续注册 注册周期:有效期为3年 组织管理:省、自治区、直辖市建设行政主管部门 申请时间:初始注册期满 申请表:二级建造师延续注册申请表下载 延续注册条件: 注册有效期满需要继续执业的,应当在注册有…

Macos M1 IDEA本地调试 HBase 2.2.2

# 1. 前提 执行 mvn clean package assembly:single -DskipTests没问题,并在hbase-assembly/target目录下生成hbase-2.2.2-bin.tar.gz 文件夹 证明Maven 下载依赖没问题 1.1 报错 1 这里应该是报错找不到 com.google.protobuf:protoc:exe:osx-aarch_64:3.5.1 …

视频监控汇聚算法平台训练站车辆类型算法分析车辆类型检测应用方案

车辆类型检测算法是计算机视觉和深度学习技术在交通管理和智能车辆系统中的重要应用之一。这种算法通过自动分析和识别车辆图像,能够准确判断车辆的类型,如轿车、SUV、货车等。 运用方案 数据采集与预处理 采集包含车辆的图像或视频数据,包…

AI制作PPT软件哪个好?这个国产Gamma工具真心推荐!

各种AI工具层出不穷,尤其是办公领域,诞生了诸多可让办公提效的AI工具,如AI制作PPT软件,笔者亲自体验过多款AI制作PPT软件,在权衡多个维度之后,最终选择了博思AIPPT。 博思AIPPT,是新一代的AI制…

CAPL在创建套接字时不绑定端口号时需要注意的地方

在CAPL中我们使用UdpOpen()和TcpOpen()两个函数创建Socket套接字,传入IP地址和Port口绑定IP地址和Port口,作为发送报文时的源IP地址和源Port口。 如果对源IP地址和源Port口没有要求,不需要绑定IP地址和Port口,可以在调用UdpOpen()和TcpOpen()时传入0,如此套接字绑定的IP地…

Numpy基本操作

1.什么是Numpy NumPy 是一个用于 Python 编程语言的开源库,它的主要功能是支持大型多维数组和矩阵,并提供了大量的数学函数来操作这些数组。NumPy 是 Python 科学计算生态系统的核心组成部分之一,广泛应用于数据分析、科学计算、机器学习等领…

海运专线面对的难题主要有哪些?突破口在哪里?

随着跨境电商的不断发展,跨境海运收益增加的同时,也面临着不少难题。 一、高昂的运输成本 由于跨境运输涉及多个国家和地区的多个运输环节,包括起运国、中转国和目的国,因此运输费用、中转费用、保险费用等都会累加,…

视频编辑与制作软件哪个好 视频编辑与制作软件哪个好学

学习剪辑技术,就是在学视频编辑软件的用法。选择一款适合自己的视频编辑与制作软件,能让你少走很多弯路。优秀的视频编辑软件,不仅能让用户快速掌握视频编辑的基本操作,还可以激发用户的创作灵感。有关视频编辑与制作软件哪个好&a…

【Qt】 编辑框 | 按钮 | 坐标系 的 初步了解

文章目录 1. 编辑框图形化方式纯代码方式 2. 按钮图形化方式 3. 坐标系 1. 编辑框 这里以实现 hello world 为例 即 使用 编辑框 完成 Hello World 图形化方式 单行编辑框 QLineEdit 多行编辑框 QTextEdit 点击 widget.ui 并打开 调用 Qt designer 这个图形化工具 完成窗口…

生信分析入门:从基础知识到实践操作的全方位指南

随着生物学研究的数字化转型,生物信息学(简称生信)分析已经成为现代生命科学研究中的关键工具。对于刚开始接触生信分析的初学者来说,这个领域可能看起来复杂而陌生。然而,通过系统的学习和实践,生信分析可…

ISO 26262中的失效率计算:IEC 61709-Clause16_Relays

目录 概要 1 元器件分类和基准温度 2 失效率的计算 2.1 失效率预测模型 2.2 电应力系数 2.2.1 电应力区域划分 2.2.2 电应力系数选择 2.3 转换率系数 2.3.1 转换率系数计算 2.4 温度应力系数 2.4.1 温度应力系数计算模型 2.4.2 温度应力系数计算 概要 IEC 61709是…

百元蓝牙耳机哪一款好用?四款价格亲民高性价比耳机产品推荐

如果说当代最伟大的音频设备创新,蓝牙耳机绝对算得上是一款既便捷又实用的科技神器。它不需要繁琐的线路连接,只需要轻轻一戴,就能让你随时随地沉浸在高质量的音乐或通话体验中。最重要的是,它的无线设计让我们的生活更加自由无拘…

Opencv-C++笔记 (20) : 距离变换与分水岭的图像分割

文章目录 一、图片分割分水岭算法理解分水岭算法过程 二、距离变换与分水岭距离变换常见算法有两种分水岭变换常见的算法步骤 主要函数c代码四、结果展示 一、图片分割 图像分割(Image Segmentation)是图像处理最重要的处理手段之一 图像分割的目标是将图像中像素根据一定的规则…

linux定时自启动shell脚本

linux定时自启动shell脚本 前言操作问题 前言 需要设计一个脚本用来定时清理linux磁盘空间,自启动 操作 1.在指定目录编写shell脚本 给脚本加权限 chmod 755 origin_del.sh 或者 chmod x origin_del.sh 2.打开定时 执行 crontab -e 输入 0 0 * * * /home/o…

【极限性能,尽在掌控】ROG NUC:游戏与创作的微型巨擘

初见ROG NUC,你或许会为它的小巧体型惊讶。然而,这看似不起眼的机身内,蕴藏着游戏、创意的强大能量。 掌中风暴,性能无界 ROG NUC搭载英特尔高性能处理器,配合高速NVMe SSD固态硬盘以及可选的高端独立显卡&#xff08…

电子工程师必备:万用表测量电阻的正确方法

在电子学和电气工程领域,测量电阻是一项基本技能。无论是进行电路调试还是故障排除,了解如何使用万用表测量电阻都是至关重要的。下面就跟着道合顺来一起了解#万用表测量电阻的详细方法#指南。 一、理解电阻与万用表 什么是电阻? 电阻是导…

【python数据分析11】——Pandas统计分析(分组聚合进行组内计算)

分组聚合进行组内计算 前言1、groupby方法拆分数据2、agg方法聚合数据3、apply方法聚合数据4、transform方法聚合数据5 小案例5.1 按照时间对菜品订单详情表进行拆分5.2 使用agg方法计算5.3 使用apply方法统计单日菜品销售数目 前言 依据某个或者几个字段对数据集进行分组&…

Linux驱动开发基础(匹配详解)

所学来自百问网 目录 1. 简介 2. 函数路径 3. driver_override 4. 设备树匹配 5. id_table 6. name 7. 比较顺序 1. 简介 platform_device 与 platform_driver是挂载在platform_bus_type总线下的两条链表,通过分离的思想负责不同的功能实现,两者…