2W字诚意满满的新活:常见接口测试69道面试题,附带答案

 最近发现面试题热度 挺好的,不过大家博客都只有面试题,从来都不带答案,顺手就码了点收集到的博客问题的答案

共69道,2W字,耗时两天(疯狂暗示)关注微信公众号:程序员万金油  免费领取

欢迎催更吹水,来一个人就是一份催更动力点击并输入暗号:CSDN

目录

1. 按你的理解,软件接口是什么?
2.HTTP 和 HTTPS 协议区别?
3.HTTPS 在哪一层?
4.get 和 post 区别是什么?
5.常见的 POST 提交数据方式
6.什么是 Http 协议无状态协议?怎么解决 HTTP 协议无状态协议
7.cookie 和 session 的区别
8.请求接口中常见的返回状态码
9.什么是 DNS?
10.请问你们公司是如何做接口测试的?
11.怎么设计接口测试用例?
12.你做接口测试,测什么?
13.平常用什么工具测接口的?
14.没有接口文档,如果做接口测试?
15.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
16.依赖于第三方数据的接口如何进行测试?
17.接口测试中,依赖登录状态的接口如何测试?
18.如何模拟弱网做测试?
19.你平常做接口测试的过程中发现过哪些 bug?
20.当一个接口出现异常时候,你是如何分析异常的?
21.如何分析一个 bug 是前端还是后端的?
22.你们做接口测试自动化吗?
23.列出几个 JMeter 监听器?
24.在 python 中进行数据驱动测试
25.接口自动化中的关联怎么处理?
26.自动化测试怎么校验结果?
27.自动化使用的测试框架是什么?简述自动化框架的设计、维护
28.具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
29.什么是 HTTP 请求,HTTP 请求方式有哪些
30.常用工具的使用,postman,jmeter,Fiddler
31.你对http请求跟webservice请求的了解
32.接口测试为你什么要参数化
33描述一下Http协议
35.请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?
36.系统间的接口联调测试
37.参数化具体用在哪些路径上?
38.你们公司接口中常见的错误码及含义,及返回信息参数有哪些等,举例说明
39. 常见接口:
40.接口组成
41.为什么要做接口测试:
42.GET请求和POST请求的区别:
43.常见状态码:
44.通用接口用例设计
45.根据业务逻辑来设计用例
46.用什么工具测
47.接口测试用例模板 (可根据项目实际情况设计增减)
48.接口测试注意事项
49.浏览器输入 url 按回车背后经历了哪些?
50.cookies 机制和 session 机制的区别
51.http 协议请求方式
52.报文格式
53.什么是 DNS?
54.什么是 Http 协议无状态协议?怎么解决 Http 协议无状态协议?
55.webService 接口是如何测试的
56.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
57.json 和字典 dict 的区别?
58.测试的数据你放在哪?
59.什么是数据驱动,如何参数化?
测试数据
60.下个接口请求参数依赖上个接口的返回数据
61.依赖于登录的接口如何处理
62.依赖第三方的接口如何处理
63.不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
64.接口产生的垃圾数据如何清理
65.一个订单的几种状态如何全部测到?
66.python 如何连接数据库操作?
67.如果模块请求 http 改为了 https,测试方案应该如何制定、修改?
68.常用 HTTP 协议调试代理工具有什么?详细说明抓取 HTTPS 协议的 设置过程?
69.描述 TCP/IP 协议的层次结构,以及每一层中重要协议
最后
 

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 - [*]:服务器发生错误,用户将无法判断发出的请求是
 

9.什么是 DNS?
答:DNS 是域名系统 (Domain Name System),DNS 是用来做域名解析的,它会在你上网输入
网址后,把它转换成 IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的 IP,
但有了 DNS 的处理,你只需要记住对应网站的域名,即网址就可以了。

10.请问你们公司是如何做接口测试的?
答:
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑
盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还 有考虑参数有互斥或关联的情况)。
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
⑥接口能并发执行吗、安全吗,性能满足要求吗?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样,该报 bug 报 bug,该跟踪状态的跟踪状态。

11.怎么设计接口测试用例?
答:
通常,设计接口测试用例需要考虑以下几个方面:
①是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token
逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值