• 最新接口面试题


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

  • 相关阅读:
    CentOS 7中cAdvisor的安装过程
    怎么查看centos版本
    使docker命令不用加sudo的方法
    Linux进程相关函数system,fork,exec函数族的区别
    git pre-commit hook failed 解决办法
    lint-staged 教程
    用webpack将多个scss文件打包成一个css文件
    js连按键盘事件
    vscode快捷键
    vim 操作命令大全
  • 原文地址:https://www.cnblogs.com/vvvviptest/p/12963598.html
Copyright © 2020-2023  润新知