接口测试|超详细面试题【附答案】

news2024/12/23 3:36:39

今天给姐妹们整理了一套超详细的附答案的接口测试面试题,姐妹们快学起来吧~

接口测试的重要性,相信不用我多说了。接口测试是现在软件测试工程师一个加分项。因为很多朋友一开始做了几年的软件测试都是在做功能测试,做界面UI的测试,然而没有做过接口测试。(很正常很普遍)

那么接口测试它在企业中,能达到非常好的收益。后端、服务端的测试,特别是现在!像是前面几年,物联网公司没有做一个前后端分离,现在基本上都是微服务架构,前后端分离。接口非常重要,现在2023年了,未来几年你去做测试,很多都是接口。

一个接口它可以支持安卓、IOS、H5、Web端。而且接口测试可以测很多你在界面上无法去测试的一些范围和类型。

那么关于接口测试,面试官通常会问哪些问题呢?

1、按你的理解,软件接口是什么?

答:
就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。

2、HTTP和HTTPS协议区别?

答:
https协议需要到CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用;
http是超文本传输协议,信息是明文传输,Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全;
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;

3、HTTPS在哪一层?

以前我面试很喜欢提网络协议的问题,有朋友说我装X,不实用。稍有点研究网络知识,实际就不难回答
答:HTTPS在应用层。

4、get和post区别是什么?

答:POST和GET都是向服务器提交数据,并且都会从服务器获取数据。
区别:
1)传送方式:get通过地址栏传输,post通过报文传输
2)传送长度:get参数有长度限制(受限于url长度),而post无限制
3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)
4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留
5)在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式

5、常见的POST提交数据方式

答:
主要有四种方式:
application/x-www-form-urlencoded、multipart/form-data、application/json、text/xml等。

6、什么是Http协议无状态协议?怎么解决HTTP协议无状态协议

答:

无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。客户端与服务器进行动态交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。

7、cookie和session的区别

答:
cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

8、请求接口中常见的返回状态码

答:
1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
2xx -- 成功(表明服务器成功地接受了客户端请求)
3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)
4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)
5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的返回码有:

  • 200 OK - [GET]:服务器成功返回用户请求的数据
  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功
  • 202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)
  • 204 NO CONTENT - [DELETE]:用户删除数据成功
  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
  • 401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)
  • 403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止
  • 404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的
  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

现在还想从事软件测试行业的小伙伴们,想要心仪的工作,要多努力学习哟。我给大家整理了一份800多道软件测试面试真题的PDF文档。高清打印版打包带走,横扫软件测试面试高频问题,涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来...)

1、阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪些?

2、什么是版本控制,常用的版本控制系统有哪些?

3、数据库三大范式是什么?

4、mysq|有关权限的表都有哪几个?

5、MySQL的binlog有有几种录入格式?分别有什么区别?

6、存储引擎选择?

7、什么是索引?

8、索引有哪些优缺点?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1、切换目录用什么命令?

2、怎么查看进程信息?

3、怎么查看当前路径?

4、删除文件用哪个命令?

5、对文件的内容进行统计?(行号、单词数、字节数)

6、grep命令有什么用?

在这里插入图片描述

在这里插入图片描述

1、请写出table标签下面会包含哪些标签元素?

2、很多网站不常用table iframe这两个元素,知道原因吗?

3、 jpg和png格式的图片有什么区别?

4、常用浏览器有哪些,内核都是什么?

5、form标签上定义请求类型的是哪个属性?定义请求地址的是哪个属性?

6、简述一下src与href的区别?

7、before和::before区别?

8、如何让一个div.上下左右居中?

在这里插入图片描述

在这里插入图片描述

1、自动化工具选择的关注点?

2、常用移动应用自动化测试工具有哪些?

3、什么是 自动化测试?

4、自动化测试优点?

5、Jmeter的作用优点以及缺点?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1、JMeter中处理器的类型是什么? 

2、解释什么是预置处理器元件?列出一些预处理器元件?

3、是否提到测试元件的执行顺序?

4、正则表达式中的“包含"和“匹配”表示什么?

5、服务器CPU指标异常怎么办?

6、你们的性能测试需求哪里来?

7、你们性能测试做的是前台还是后台?

8、性能测试指标有哪些?

在这里插入图片描述

在这里插入图片描述

1、说说你最大的缺点?

2、你对加班的看法?

3、你对薪资的要求?

4、在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做?

5、如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?

在这里插入图片描述

在这里插入图片描述

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

(二)Go的Mysql、Redis、Cookie、Logger等的文件配置

初始化配置 文章目录 初始化配置一、配置yaml文件二、Go读取配置文件三、初始化日志Logger四、初始化数据库(MySQL或SqlLite)五、初始化缓存(Redis)六、中间件服务(middleware) 一、配置yaml文件 Server:M…

2024.4.24

求圆半径和周长 #include <iostream> using namespace std;struct Cir { private:int r; public:void set_r(int i);void show(); }; void Cir::set_r(int i)//设置半径 {r i; } void Cir::show()//打印周长面积 {double Pi 3.14;double l 2*Pi*r;double s Pi*r*r;c…

【pycharm】调试模式中四个常用按钮介绍

【pycharm】调试模式中四个常用按钮介绍 在 PyCharm 的调试模式中&#xff0c;有四个常用的按钮&#xff0c;它们的功能如下&#xff1a; Step Over (F8)&#xff1a;单步执行&#xff0c;但在遇到函数调用时&#xff0c;不会进入函数内部&#xff0c;而是将整个函数作为一步执…

技术速递|Java on Azure Tooling 3月更新 - Java on Azure 开发工具未来六个月路线图发布

作者&#xff1a;Jialuo Gan - Program Manager, Developer Division At Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎阅读 Java on Azure 工具的三月更新。在本次更新中&#xff0c;我们将分享未来几个月对 Java on Azure 开发工具的投资。此外&#xff0c;我…

基础SQL DCL语句

DCL是数据控制语言&#xff0c;用来管理数据库用户&#xff0c;还有控制用户的访问权限 1.用户的查询 MySQL的用户信息存储在mysql数据库中&#xff0c;查询用户时&#xff0c;我们需要使用这个数据库。 后面&#xff0c;还有很多数据&#xff0c;因为篇幅的问题&#xff0c;就…

码头船只出行及配套货柜码放管理系统-毕设

毕业设计说明书 码头船只出行及配套货柜码放 管理系统 码头船只出行及配套货柜码放管理系统 摘要 伴随着全球化的发展&#xff0c;码头的物流和客运增多&#xff0c;码头业务迎来新的高峰。然而码头业务的增加&#xff0c;导致了人员成本和工作量的增多。为了解决这一基本问题&…

SpringBoot Bean管理(扫描、注册、注册条件)

Bean扫描 一般的扫描包路径 需要使用xml标签或者是ComponentScan(basePackages “xxx.xxx”) ,但是在SpringBoot中不需要。 在springBoot 项目的启动类中有一个注解&#xff1a;SpringBootApplication,这个注解包含以下注解&#xff1a; 但是ComponentScan并没有指明包路径…

consul ui访问安全加固

本文侧重介绍访问ui安全加固部分。 安装配置以及集群搭建请参考官方文档 下载安装 官方下载地址&安装教程 Install | Consul | HashiCorp Developer 修改配置&#xff0c;开启acl 首先自行规划好 server和client机器。 按照下述流程在server 生成 bootstrap token。 修改ac…

【大语言模型LLM】-基础语言模型和指令微调的语言模型

&#x1f525;博客主页&#xff1a;西瓜WiFi &#x1f3a5;系列专栏&#xff1a;《大语言模型》 很多非常有趣的模型&#xff0c;值得收藏&#xff0c;满足大家的收集癖&#xff01; 如果觉得有用&#xff0c;请三连&#x1f44d;⭐❤️&#xff0c;谢谢&#xff01; 长期不…

openEuler 22.03 LTS SP3(华为欧拉)一键安装 Oracle 11GR2 RAC(231017)

前言 Oracle 一键安装脚本&#xff0c;演示 openEuler 22.03 LTS SP3 一键安装 Oracle 11GR2 RAC&#xff08;231017&#xff09;过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地…

【学习记录】autoware标定相机与激光雷达外参

一、autoware选择 这里踩了好几个坑&#xff0c;首先autoware作为一个无人驾驶知名框架&#xff0c;其内部实际上是有两套标定的东西的&#xff0c;这一点绝大多数博客没有提到。其中最常用的是一个叫标定工具箱的东西&#xff0c;这个ros包已经在1.10往后的版本中被删掉了&am…

独立搭建UI自动化测试框架分享

今天给大家分享一个seleniumtestngmavenant的UI自动化&#xff0c;可以用于功能测试&#xff0c;也可按复杂的业务流程编写测试用例&#xff0c;今天此篇文章不过多讲解如何实现CI/CD&#xff0c;只讲解自己能独立搭建UI框架&#xff0c;如果有其他好的框架也可以联系我&#x…

springboot基于点餐码 二维码在线点餐系统vue.js+java

Maven: 项目管理和构建自动化工具&#xff0c;用于java项目。 java: 广泛使用的编程语言&#xff0c;适用于构建跨平台应用。 Springmvc:从而在使用Spring进行WEB开发时&#xff0c;可以选择使用Spring的Spring MVC框架。 MyBatis: java持久层框架&#xff0c;支持定制化SQL、存…

网络中其他协议

目录 DNS协议 域名简介 ICMP协议 ICMP功能 ICMP协议格式 ping命令 NAT技术 NATP NAT技术的限制 代理服务器 DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 为什么有这个协…

随机森林原理及应用

目录 一、随机森林原理、优点、应用场景 1.1基本原理 1.2主要优点 1.3使用场景 二、具体实例 一、随机森林原理、优点、应用场景 随机森林是一种流行且强大的机器学习算法&#xff0c;属于集成学习方法的一部分&#xff0c;主要用于分类和回归任务。它通过组合多个决策树…

Java文件流练习

1 扫描指定目录&#xff0c;并找到名称中包含指定字符的所有普通文件&#xff08;不包含目录&#xff09;&#xff0c;并且后续询问用户是否要删除该文件 import java.io.File; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanne…

工业相机和镜头参数和选型

工业相机和镜头参数和选型 文章目录 工业相机和镜头参数和选型前言一、相机参数解释和选型1.相机参数1.1快门-shutter1.2曝光-exposure1.3增益-gain1.4 感光芯片类型&#xff08;CCD/CMOS&#xff09;1.5 感光芯片&#xff08;靶面&#xff09;尺寸1.6 分辨率1.7 像元尺寸1.8 帧…

海康NVR接入视频监控平台部分视频浏览失败,显示503错误的解决办法

目录 一、问题概述 二、问题排查 &#xff08;一&#xff09;排查思路介绍 &#xff08;二&#xff09;平台排查 1、确定排查的思路 2、信令控制模块的排查 3、媒体转发模块的排查 &#xff08;三&#xff09;客户设备排查 1.观察正常视频的设置 2. 调查问题原因 三…

crossover和wine哪个好 wine和crossover有什么本质区别 苹果电脑运行Windows crossover24

CrossOver是Wine的延伸产品&#xff0c;CrossOver可以简单的理解为类虚拟机&#xff0c;那么wine是什么&#xff0c;许多小伙伴就可能有些一知半解。CrossOver和wine哪个好&#xff0c;wine和CrossOver有什么本质区别呢&#xff1f;下文将围绕着这两个问题展开。 一、CrossOve…

【C++】---STL之list详解

【C】---STL之list详解 一、了解list的基本信息二、成员函数1、构造2、迭代器3、empty()4、size()5、front()6、back()7、push_front()8、pop_front()9、push_back()10、pop_back()11、insert()12、erase()13、swap()14、sort()15、reverse() 一、了解list的基本信息 1、库里面…