软件测试面试必备,一文带你彻底掌握接口测试

news2024/11/14 22:03:07

一、什么是接口测试?

所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据库的对接。而接口测试,则是通过接口的不同情况下的输入,去对比输出,看看是否满足接口规范所规定的功能、安全以及性能方面的要求。

二、为什么要做接口测试?

1、相比系统测试,更早介入测试,提高效率

2、可以发现前端测试不了的问题,提高版本质量

3、接口标准化了,更容易实现自动化和持续集成,降低测试成本

因此在软件测试招聘岗位的要求中,无论是功能测试、自动化测试、性能测试亦或测试开发岗位,接口测试都是必须掌握的!

同时,我也准备了一份软件测试面试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

 三、如何开展接口测试?

接口测试的开展一般包含5个部分:接口文档分析、接口用例设计、执行接口用例、定位bug提交并跟踪、输出接口测试报告。

1、接口文档分析

接口文档一般是由后端开发提供,可以是在线的swagger也可以是word。

若开发未提供接口文档,则可通过抓包工具fiddler或charles去抓取接口信息进行分析,进行接口测试。

获取到接口文档后,我们需要理清楚每个接口包含的请求、响应信息,概括为 接口信息五要素:

1)接口地址url:

例注册接口地址:http://api.lemonban.com:8765/futureloan/member/register

http-请求协议,api.lemonban.com-域名或ip,8765-端口号,/futureloan/member/register-资源路径

2)请求方法:

看开发定义的请求方法是什么,测试就对应用什么方法。restful风格中常见的请求方法为post、get、put、patch、delete等

3)请求头:

发送请求到服务器,包含的头部信息。常见的content-type。

4)请求体:

发送请求到服务器,具体传递的数据。例如要完成注册接口的调用,请求体包含手机号mobile_phone、密码pwd、用户名reg_name、验证码verification_code。

5)响应内容:

接口文档中描述的响应内容,与接口测试的实际结果做比较,可以判断当前接口是否通过。响应内容包含:响应码-http状态码、响应头、响应体。

2、接口用例设计

接口用例设计跟功能测试思维相通,需要:1)清楚项目业务 2)运用用例设计8大方法:等价类、边界值、场景法、因果图、判定表、正交试验法、状态迁移法、错误推测法。

以下是接口用例模板参考:

3、执行接口用例,进行接口测试

接口测试原理: 模拟客户端发送请求到服务器,服务器接收请求并处理,返回响应到客户端, 客户端接收响应这样的一个过程。

通过接口测试原理可知,进行接口测试需要借助工具或代码。主流的接口测试工具Jmeter、postman。使用工具编写脚本,需要结合接口项目具体应用场景来设计,运用关联、参数化、断言等技术。

4、发现bug、定位、提交并跟踪

怎么判断是否是bug呢?

1)接口测试中响应结果错误,返回了错误的code码、msg信息:

  • 判断请求:请求地址、方式、请求头、请求正文是否正确,如果不正确则修改对应请求信息再做发送;如果正确,则说明是服务器端问题
  • 进一步查看服务器日志、数据库信息,并整理信息提交bug

2)接口测试中响应结果,code码、msg正确,但返回的data数据不正确:

  • 查看数据库数据正确完整性,并结合服务器日志,整理信息提交bug

3)接口测试中响应结果正确,但若是增删改业务操作:

  • 需进一步确认到数据库层面,数据增删改的正确性

4)考虑安全性:一般接口对请求会做出一些限制,比如请求次数、请求频率限制;涉及敏感信息是否加密

5、接口测试报告

接口测试报告的整理这个看公司要求。有些公司是在整个项目测试结束后,整理一份统一的测试报告。有些公司会要求输出阶段性的测试报告。

四、接口测试常见面试题

  1. 什么是接口?
  2. 如果模块请求http 改为了https,测试方案应该如何制定,修改?
  3. 用HTTP 协议调试代理工具有什么?详细说明抓取 HTTPS 协议的设置过程?
  4. 接口产生的垃圾数据如何清理?
  5. 下个接口请求参数依赖上个接口的返回数据?
  6. 接口测试的步骤有哪些?
  7. 接口测试中依赖登录状态的接口如何测试?
  8. 依赖于第三方数据的接口如何进行测试?
  9. 文件上传的接口如何处理?
  10. 解释什么是SOAP?
  11. 解释什么是REST API?
  12. API测试发现的Bug类型是什么?
  13. 我们测试的接口属于哪一类?
  14. 说下你接口测试问题如何定位?
  15. Cookie 保存在哪里?
  16. HTTP有哪些请求方法?
  17. 接口自动化测试的流程?
  18. 接口测试用例的编写要点有哪些?
  19. 提到UI级别测试和API测试之间的关键区别?
  20. HTTPS的工作原理?
  21. HTTPS和HTTP的区别?
  22. POST和GET有什么区别?
  23. Session与Cookie有什么区别?
  24. TCP和UDP有什么区别?
  25. 在API测试中测试的常用协议是什么?
  26. Jmeter、postman工具的区别?
  27. 说下接口工具如何去操作数据库?
  28. 传参数据格式除了json格式还有哪些?
  29. 接口测试数据过多时如何进行测试?
  30. 你们请求参数加密怎么处理的?
  31. 接口测试中有哪些印象深刻的bug?
  32. 项目中有测试过多少个接口?写过多少用例?

加油吧,测试人!如果你需要自我提升,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!

PS:如需要软件测试学习资料,可在公众号(互联网杂货铺),后台回复1,小编后面会逐步完善自己收藏的资料。

整理不易,给个关注点个赞吧,谢谢各位大佬!

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

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

相关文章

Python vs C#:首先学习哪种编程语言最好?

进入编码可能很困难。 最艰难的部分? 决定先学什么语言。 当谈到 Python 与 C# 时,可能很难知道在您的决定中要考虑哪些因素。 我们为您提供了有关这些全明星编程语言的所有信息。 什么是 C#? 自 2000 年作为 Microsoft Visual Studio 的一部分开发 C# 以来,它一直是开发人…

【CSS】画个三角形或圆形或环

首先通过调整边框&#xff0c;我们可以发现一些端倪 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style>.box{width: 150px;height:150px;border: 50px solid black;}</style&g…

Python编程语言学习笔记

目录 1 书写格式1.1 程序框架格式1.1 注释1.2 保留字 2 数据2.1 整数类型2.2 浮点类型2.3 复数类型2.4 数值运算符2.5 数值运函数2.6 数值类型转换函数2.7 math 库2.8 字符串2.8.1 字符串的表示2.8.2 字符串的区间访问2.8.3 字符串操作符2.8.4 字符串操作函数 2.9 字符串类型的…

[杂谈]-二进制到十进制转换

二进制到十进制转换 文章目录 二进制到十进制转换1、概述2、十进制计数系统3、二进制计数系统4、二进制到十进制转换示例5、十进制到二进制转换6、二进制数的名称和前缀7、总结 1、概述 二进制数在数字系统和计算机中用于计算数据。 此外&#xff0c;数字系统之间的数据传输或…

【iOS】浅析static,const,extern关键字

文章目录 前言一、staticstatic修饰局部变量static修饰全局变量总结 二、const三、extern声明全局变量声明函数在头文件中使用总结 前言 笔者本周在学习单例模式时&#xff0c;用到了static关键字&#xff0c;特此总结博客记录学习static&#xff0c;const&#xff0c;extern关…

文件名批量重命名与翻译的实用指南

随着电脑使用的普及&#xff0c;我们经常需要处理大量的文件和文件。有时&#xff0c;我们可能希望将文件的名称进行批量修改&#xff0c;并且还希望将这些名称翻译成其他语言&#xff0c;以便更好地管理和查找文件。在这篇文章中&#xff0c;我们将介绍一种实用的技巧&#xf…

【面试经典150 | 数组】删除有序数组中的重复项 II

文章目录 写在前面Tag题目解读题目来源解题思路方法一&#xff1a;原地操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等…

Hadoop生态圈中的数据同步工具SQOOP

Hadoop生态圈中的数据同步工具SQOOP 一、sqoop的概念二、sqoop的核心功能1、数据导入import2、数据导出export 三、sqoop的底层实现四、sqoop的安装和部署五、sqoop的基本操作1、sqoop查看RDBMS中有哪些数据库2、sqoop查看某一个数据库下有哪些数据表3、通过sqoop执行sql语句 …

SOLIDWORKS有限元分析怎么做?

在许多专业领域中&#xff0c;尤其是在机械行业&#xff0c;为了缩短开发周期&#xff0c;设计完成后通常需要进行仿真分析。通常情况下&#xff0c;大家会使用专业的有限元仿真软件如ANSYS进行仿真分析。但其实&#xff0c;SOLIDWORKS软件因其简单易用的制图功能以及内置的专用…

bigcache

bigcache 介绍 借用下图片&#xff0c;实际上&#xff0c;这张图还不太全&#xff0c;queueItem 中&#xff0c;entrydata的最前端 8 字节是时间戳&#xff0c;用来计算过期时间的。 bigcache 的思想主要有以下几点&#xff1a; 大并发下&#xff0c;尽量减少同步带来的时…

3 分钟,带你了解低代码开发

一、低代码平台存在的意义 传统软件开发交付链中&#xff0c;需求经过3次传递&#xff0c;用户→业务→架构师→开发&#xff0c;每一层传递都可能使需求失真&#xff0c;导致最终交付的功能返工。 业务的变化促使软件开发过程不断更新、迭代和演进&#xff0c;而低代码开发即是…

2023!6招玩转 Appium 自动化测试

Appium是个什么鬼 Appium是一个移动端的自动化框架&#xff0c;可用于测试原生应用&#xff0c;移动网页应用和混合型应用&#xff0c;且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用&#xff0c;移动网页应用是指网页…

合约谈崩,3大汽车厂工人集体罢工 | 百能云芯

周五&#xff0c;美国联合汽车工会&#xff08;UAW&#xff09;在底特律三大汽车制造商通用汽车、福特汽车和克莱斯勒母公司Stellantis旗下的各一家工厂同步举行了罢工&#xff0c;可能因工资和就业保障问题引发一场代价高昂且长时间的对峙。 协商签订新劳资协议的最后期限已过…

【多线程】死锁 详解

死锁 一. 死锁是什么二. 死锁的场景1. 一个线程一把锁2. 两个线程两把锁3. N 个线程 M 把锁 三. 死锁产生的四个必要条件四. 如何避免死锁 一. 死锁是什么 死锁是这样一种情形&#xff1a; 多个线程同时被阻塞&#xff0c;因为每个进程都在等其他线程释放某些资源&#xff0c;…

在波卡区块链学院学习 Web3 是种什么体验?

成立于 2022 年的 Polkadot Blockchain Academy&#xff08;波卡区块链学院&#xff0c;以下简称 PBA&#xff09;是由波卡生态成立的一个深入的、开创性的区块链课程&#xff0c;致力于帮助 Web3 创新者和未来的顶级编程人员实现他们的想法和抱负。 波卡区块链学院由波卡创始…

LeetCode 1222. 可以攻击国王的皇后【数组,模拟】1391

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

Yakit学习

Yakit下载 下载地址&#xff1a; yaklang/yakit: Cyber Security ALL-IN-ONE Platform (github.com) MITM交互式劫持 这个模块相当于burpsuite的proxy模块&#xff0c;MITM 操作台可百分百替代 BurpSuite执行所有操作(下载并安装证书、劫持请求、响应、编辑劫持到的数据包等)。…

Datax 数据同步-使用总结(二)

一、前言 这部分主要记录 datax 实现增量同步的方案。 二、核心思路 结合datax 提供的preSql、 postSql以及占位符&#xff0c;外加另外一张表同步日志表来记录相关同步信息。 三、版本迭代 3.1 初版本 where tbq.opera_date > cast(date_format(DATE_SUB(NOW(), inte…

图论第四天|127. 单词接龙、841. 钥匙和房间、463. 岛屿的周长

127. 单词接龙 ★ 文档讲解 &#xff1a;代码随想录 - 127. 单词接龙 状态&#xff1a;开始学习。&#xff08;★&#xff1a;需要多次回顾并重点回顾&#xff09; 思路&#xff1a; 本题需要解决两个问题&#xff1a; 图中的线是如何连在一起的 题目中并没有给出点与点之间的…