最新接口面试题
1、什么是HTTP协议无状态协议?怎么解决HTTP协议无状态协议
是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。
解决方案:通过cookie和session来保持状态。
2、HTTP协议学了哪几个版本
http协议目前有4个版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。
3、Session和Cookies区别
cookie数据存放在客户的浏览器上,session数据放在服务器上。
cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
4、HTTPS在哪一层, 会话层在第几层
https工作在应用层.
会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。
5、你熟悉OSI协议吗?原理是什么
OSI是一个开放性的通信系统互连参考模型,它是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 ;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端,点到点的数据流。
6、从HTTP变化到HTTPS协议,测试点
注意一些配置是否同步修改
有些url是否是写死在代码的,需要同步修改
有些通过类cms配置的页面,需要更新检查是否更新域名
如果有存在和第三方接口联调的,需要检查是否彼此都更新了。
相关联业务系统之间互相调用是否存在问题,比如http调用https的情况。
7、购物车模块, 加入购物车接口测试点分析
接口入参校验:是否必填,临界值,默认值,枚举值,参数组合
业务逻辑校验:新增商品进购物车,当购物车达到最大值是否可以添加,重复添加单一商品验证最大添加次数,没有库存的商品是否可以添加到购物车,一次添加超过库存量的商品。
安全性:是否校验登录状态
异常:接口的异常返回结果是否有专有提示,如网络异常,接口超时,系统异常
性能:多用户并发操作购物车,同一商品被多用户同时操作到购物车
8、http://...?orderId=,**, 接口设计用例
接口入参长度是否满足get接口url的长度
不同的orderid是返回不同的订单信息
orderid不存在的情况,接口返回
orderid过长过短的情况,接口返回
删除一些非必填项入参,调用接口,返回什么
删除一些必填项入参,调用接口,返回什么
不同的入参组合,正常的组合异常的组合,返回什么
9、一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成功
未处理和处理成功都好测试,正常流程就可以覆盖
处理中可以通过制造网络延迟来观测处理中的状态,或者用fiddler来打断点
处理失败可以通过网络超时来呈现处理失败的状态,或者抓包修改接口返回值为处理失败的状态。
10、你平常做接口测试的过程中发现过哪些Bug
权限未处理,导致一般用户可以通过接口获取管理员权限
可以输入一些前端限制过的值,比如提取积分接口,通过修改积分为负数,这个在前端无法测试,因为前端会限制你的输入值不能为负,而接口没做相关限制,导致你的积分越提取越多。
11、平常你是怎么测试接口的
根据接口文档设计接口测试用例,使用postman工具实现测试用例,根据不同的用例设置不同的断言,并且保存在集合中。可以通过执行集合的方式重复批量执行接口测试用例。
把接口的url设置为环境变量,当需要切换不同的环境的时候,只需要使用postman的切换环境功能就可以自由切换,在不同环境下测试接口。
设计接口与接口之间有关联的测试用例,通过postman在断言中设置环境变量的方式,保存上游接口的返回值,下游接口调用这个变量,完成接口与接口的关联场景的测试
12、平常用什么工具测接口的
postman SoapUI jmeter
13、不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
关注接口的返回值是否正常
关注数据库中的订单表的数据是否被删除
关注是否有删除记录表存放相关删除的记录,方便日后可以追溯
14、测试的数据你放在哪
本地文件的形式存放
15、response怎么验证, 参数特别多
postman使用断言的方式进行判断
16、做接口测试如何分析是前端还是后端的问题
抓包,查看接口的返回值,根据返回值和前端页面的展示作比较,判断是前端对这个值的处理有问题
还是后端返回的值是错误的。
17、在测试接口中怎么知道请求成功还是失败
根据接口文档查看具体入参应该返回什么值,和接口实际上返回的值做对比。
18、请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?
有些ui测试无法实现的场景可以用接口进行辅助测试,比如前端ui会对某些输入框作出限制,
导致某些负值,超出最大长度限制的值无法测试,而通过接口就可以发送这样的值。
ui有时候还会对某一个功能重复点击作出限制,如果想测试用户在网络系统异常的情况下连续点击了2次这个按钮,那么通过前端点击可能测试不了,就要通过接口连续并发的方式测试
19、很多接口都需要登录怎么处理?
如果是postman工具的话,把登录的cookie值存储在环境变量中,需要登录状态的接口直接引用该环境变量去实现。
20、依赖于登录的接口如何处理 -token 和 session的管理
答案同19题
21、在手工接口测试或自动化接口测试的过程中,上下游接口有数据依赖如何处理?
postman工具,使用断言工具中的设定环境变量。对上游接口的返回值中的依赖数据进行变量化,然后在下游接口的入参中引用该变量,完成依赖。
22、接口测试中依赖登录状态的接口如何测试
答案同19题
23、下个接口请求参数依赖上个接口的返回数据
答案同21题
24、Web Service接口是如何测试的
开发人员要到接口的wsdl地址和接口设计说明书。
在soapui中新建工程,导入wsdl地址。
选择自己要测试的接口的方法,选择request。
根据接口设计说明书选择要测试方法的xml请求,并粘贴到soapui的请求栏,然后用自己的测试数据替换原有的xml请求中的参数。
点击运行,查看返回的xml响应,并参照接口设计说明书及自己的输入参数,确定接口返回的xml响应是否是预期结果,以判断接口是否是通的
25、TCP报头格式
(1)16位端口号:告诉主机该报文段是来自哪里,以及传给哪个上层协议或者应用程序(目的端口)的。
(2)32位序号:给发送的数据编号。(随机值+偏移量(偏移量决定序号的大小));32位序号能够指定数据传送过去的序号。
作用:A、保证发送的数据有序;B、保证重复的数据报被丢弃。
(3)32位确认号:对A端发送的数据进行确认并回馈的序号。(在32位序中的序号值加1返回回去)。
作用:保证数据能够有效地到达对端。
(4)4位头部长度:因为4位最大能表示15,所以最大为60个字节。
(5)6位标志位:
PSH:通知尽快读取数据;
RST:请求重新建立连接;
SYN:请求建立连接;
FIN:请求断开连接;
ACK:表示确认号是否有效;
URG:表示禁忌之阵是否有效。
(6)16位窗口大小:控制发送数据的速度或流量。
(7)16位校验和:由发送端填充,接收端对TCP报文段在传输过程中是否损坏。检验不仅包括头部部分,还包括数据部分。
(8)16位紧急指针:一个正的偏移量(相当于当前序号的偏移)。紧急指针是发送端向接收端发送紧急数据的方法。
TCP的特点的可靠性就体现在:32位序号,32位确认号16位校验和。面向连接体现在:URG、RST、SYN、FIN、ACK、PSH等六位标志。