最新接口面试题

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等六位标志。

posted @ 2020-05-26 09:45  测试幼儿生  阅读(320)  评论(0编辑  收藏  举报