接口测试面试题总结

本文全面解析接口测试,涵盖HTTP、WebService、RESTful等接口类型,深入讲解GET、POST请求方式及区别,探讨Cookie与Session差异,分析常见HTTP状态码含义,提供接口测试用例设计方法,解决接口依赖与第三方数据问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,目前市面上流行的接口大多有哪几种协议的接口?


答:http,https,dubbo,rpc【(Remote Procedure Call Protocol)远程过程调用协议】等即可。

2,接口的请求方式有哪几种?


答:get、post、head、put、delete、patch、options、connect、trace

 GET:发送一个请求来获取服务器上的某一资源,多用于查询数据(如列表查询);

 POST:将数据添加到服务器中的现有文件或资源(如提交表单或者上传文件),POST 请求可能会导致新的资源的建立或已有资源的修改;

 HEAD:响应与 GET 请求相同,但没有响应正文;

 PUT:替换服务器中的现有文件或资源,多用于向指定资源位置上传最新内容(如修改评价或笔记);

 DELETE:从服务器中删除数据(如取消收藏或删除评价);

 PATCH:是对 PUT 方法的补充,用于对资源进行局部更新;

 OPTIONS:用于描述目标资源的通信选项;

 CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器;

 TRACE:回显服务器收到的请求,主要用于测试或诊断;

3、get和post区别是什么?


答:POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

 (1)传送方式:get通过地址栏传输,post通过报文传输,故而post更相对来说私密性一点

 (2)传送长度:get参数有长度限制(受限于url长度),而post无限制

 (3)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留

 (4)get方式大多用作查询接口,获取响应数据;而post方式更多做数据添加、修改或删除等操作

4,post请求的请求类型有哪几种?


 application/json json字符串

 application/x-www-from-urlencoded 表单传递

 multipart/form-data 主要用于上传文件

5、cookie和session的区别


 1.存储位置不同:Cookie 是将用户数据通过加密的方式保存在客户端,大多数情况 Cookie 存储在浏览器;Session 是用于控制客户端和服务端的连接,Session 存储在服务器;

 2.存储容量不同:单个 Cookie 保存的数据不得超过 4kb,一个站点最多 20 个 Cookie,Session 一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

 3.存取方式不同:Cookie 只能用 ASCII 字符串,通过编码方式获取 Unicode 字符或者二进制数据,不好存储复杂的信息,而 Session 能存储任何类型的数据;

 4.隐私策略/安全性不同:Cookie 放在客户端,可以进行 Cookie 欺骗,所以不安全,Session 放在服务端,更加安全;

 5.有效期不同:Cookie 可以设置属性达到长期有效,Session 依赖于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的过期时间默认为-1,只需要关闭窗口 Session 就会失效,就算不依赖 Cookie,用 UrL 重写也不能完成,如果 Session 超时时间过长,容易导致内存溢出;

 6.服务器压力不同:Cookie 保存在本地,不存在服务端压力,Session 保存在服务端,每个用户产生一个 Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用 Cookie;

 7.浏览器支持不同:如果浏览器禁用 Cookie,那么 Cookie 直接失效,Session 比较好点,可以用 URL 重写;

 8.Cookie 和 Session 应用的场景:Cookie 一般用于记住用户的登录状态,如记录用户的习惯,购物车;而 Session 用于登录验证。

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

答:

 1xx – 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)

 2xx – 成功(表明服务器成功地接受了客户端请求)

 3xx – 重定向(客户端浏览器必须采取更多操作来实现请求,例如用户未登录就操作了修改的功能)

 4xx – 客户端错误(发送错误,客户端有问题)

 5xx – 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的有:

 200 OK:服务器成功返回用户请求的数据

 201:用户新建或修改数据成功

 202:表示一个请求已经进入后台排队(异步任务)

 301:请求永久重定向

 302:请求临时重定向

 303:建议客户访问其他URL或访问方式

 304:客户端已经执行了GET,但文件未变化

 400 :由于客户端请求有语法错误,不能被服务器所理解

 401:表示用户没有权限(令牌、用户名、密码错误)

 403 :表示用户得到授权(与401错误相对),但是访问被禁止

 404:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

 500:服务器发生错误,用户将无法判断发出的请求是否成功。

 502:服务器返回超时

7、接口测试用例如何进行设计


 针对输入,可按照参数类型进行设计,参数是否必填,参数之间是否存在关联,参数数据类型限制,参数数据类型自身的数据范围值限制;

 针对接口处理,可按照逻辑进行用例设计;

 针对输出,可根据结果进行分析设计。

8、如何分析是前端还是后端的问题


答:通常可以利用抓包工具来进行分析,可以从三个方面进行分析:请求接口、传参、响应

 1、请求接口url是否正确
 如果请求的接口url错误,为前端的bug

 2、传参是否正确
 如果传参不正确,为前端bug

 3、请求接口url和参数都正确,查看响应是否正确,如果响应内容不正确,为后端bug

9、接口测试中,下游接口需要依赖上游接口的数据,该如何处理?


答:在工具中可以使用全局变量等方式将需要的数据进行传送,或者使用对响应数据进行提取,传给下游接口。

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


答:可以使用fiddler进行调用接口时预设期望响应,mock返回自己设置的响应数据,最大限度的降低对第三方数据接口的依赖

11、若请求的接口需要先登录后方可请求,如何进行接口测试?


答:请求登录口获取返回的响应头,或者响应信息中的数据,cookie,token,session等,传递给依赖登录接口的请求头中,发起请求即可。

12、你所知道的常见接口类型有哪些?

 HTTP 接口:基于超文本传输协议(HyperText Transfer Protocol HTTP)开发的接口,是应用最广泛的网络协议之一,但并不排除没有使用其他协议。基于浏览器/服务器(Brower/Server)的软件系统大多数为 HTTP 接口;

 Web Service 接口:系统对外的接口,根据提供的方法引用提供的接口,从而获取数据;

 RESTful 接口:简称 REST,描述了一个架构式的网络系统;

13、常见的 HTTP Header 及其作用?

 Accept:用于告诉服务器,客户机支持的数据类型 (例如:Accept:text/html,image/、image/webp,/*);

 Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式;

 Accept-Language:客户机语言环境;

 Accept-Charset:用于告诉服务器,客户机采用的编码格式;

 Connection:告诉服务器,请求完成后,是否保持连接;

 Cookie:客户机通过这个头,将 Cookie 信息带给服务器;

 Host:客户机通过这个服务器,想访问的主机名;

 Referer:客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链);

 If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间;

 User-Agent:客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器型号和版本等);

 Date:告诉服务器,当前请求的时间;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值