软件测试必问接口面试题【建议收藏】面试成功率增加60%

187 篇文章 15 订阅
121 篇文章 14 订阅

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法,并应用到实际中。

小编整理了一些零基础入门软件测试到精通全套自学资料,还有不少工具和视频的【网盘资源】,

 

文末有官方推荐微信、申请好友去领取全套软件测试学习资料吧!!! 
————————————————

 

GET与POST的区别

(1)GET请求用来获取数据资源,POST请求用来创建、发送数据资源。(详见下方补充说明)

(2)GET无请求主体,POST有请求主体。

(3)GET有幂等性,PSOT非幂等。(幂等性即用户对于同一操作发起的一次或多次请求结果一致,不会因为多次点击而产生其他效果)

(4)GET可以进行缓存,POST一般不缓存。

(5)GET可存放历史记录和书签,POST不可存放。

(6)POST相对GET更加安全(详见补充说明)

(7)GET请求有长度限制、POST几乎无限制。(详见下方补充说明)

补充说明:

 1、GET请求:请求的数据会附加在URL后,以“?”分割URL以及传输的数据,多个参数会使用“&”进行连接,URL采用的是ASCLL编码格式,而非Unicode的编码格式,所有的非ASCLL编码的字符都需要在编码后进行传输。

  2、POST请求:POST请求会把请求的数据放在HTTP的Body数据中,形式分为两种,一种是参数名与参数值,一种是键值对(JSON),普遍的JSON是通用型的格式。

  3、HTTP没有对传输的数据大小进行限制,也没有对URL的长度进行限制,而我们所说的GET请求的长度限制实际上是特定的浏览器和服务器对URL进行的长度限制,限制为2083Byte。POST并非通过URL传值,理论上就不会受到大小限制,但理论终究是理论,实际上服务器还是会对POST所提交的数据进行大小限制,例如IIS6、Apache等,它们均有独特的配置规则。

  4、POST方式比GET的安全性高的原因主要是因为GET能够在地址栏直接看到请求的数据(问号后面的数据),采用GET传输可能会受到 CSRF跨站请求伪造攻击。

而POST的请求方式需要通过破解、拦截方式才能够获取到数据,例如常见的抓包工具获取,从而使用POST请求方式相对于使用GET请求方式安全度更高(相对提高不代表绝对安全,互联网的安全中只有相对安全的概念,不存在绝对安全)

HTTP状态码详解

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599) -↓文本表格摘自菜鸟教程:

ps:最常见的HTTP状态码为200、300、404、500、502等

session和Token详解

HTTP是一种无状态的协议,服务器本身没有记忆功能,无法记住客户端之前是否有发送过请求,因此客户端每次发送的请求都是独立的。

 缺点比如当客户端必须要登录才能进行的操作,客户端频繁发送敏感信息,会产生严重的安全隐患。

session会话机制:

  原理:当用户登录时,发送用户名和密码之后,服务端会给客户端生成一个sessionid,标明这是属于哪一个用户,然后在sessionid中存储该用户的数据。服务端通过cookie的形式把sessionid返回给客户端。每次客户端请求该服务时,会自动带上sessionid这个cookie。服务器接收到后查询有没有存储sessionid的信息

session特点:

  1.存储在服务端,占用服务器非常多的存储资源,导致服务器压力增大

  2.响应速度慢

  3.CSRF跨站伪造请求攻击

  4.Cookie无法跨越,涉及到多个服务的跨域操作,有很大的局限性,拓展性不强

解决方法:配置redis集群

  当单点数据库挂掉时,可以使用其他数据库中的数据。集群要做好数据同步,保证每个节点得到数据一致性,也要做好负载均衡,尽量不让节点因为负载挂掉。就算其中有节点挂掉了,也不影响服务执行。唯一的缺点是维护成本巨大。(类似于计算机网络中的多生成树技术)

token安全令牌机制:

 原理 服务器并不存储用户数据,而是直接通过编码或者加密方式把用户数据作为令牌直接返回给客户端,传递的方式由服务端自己设置。每次客户端携带这个令牌,证明自己的身份,从而得到自己的状态和数据

本质用户信息通过编码(base64url)转化成另一种形态得到Token,再通过Token解码得到用户数据,未加签名的token会很容易被伪造

解决办法:

 签名 token是由服务端签发生成的,只有服务器才知道签名,从而保证信息不会被伪造

token特点:

  1、不需要存储在服务端,服务器可以节省大量的存储资源,加快了响应速度

  2、传递的方式也是由双方协定,不管是否跨域,都可以正常传递

  3、只消耗CPU资源计算资源(验签)

  4、token通常而言不能立即失效,部分需要立即失效:有些大厂采用配置redis集群,回到session

cookie和session token的联系:

  1、session可以通过Cookie实现,也可以不通过

  2、token也可以通过Cookie实现,也可以不通过

  3、Cookie+session一般都搭配做认证,Cookie是放在浏览器中的,session 是保存在服务端的数据库中的

  4、由于Cookie一般是和域名绑定的,一般很少和token搭配

后端接口与前端均测试了一遍,是否重复测试了?

答:有重复的内容,也有不重复的内容,重复的内容主要体现在:

业务功能: 业务功能重合率是最高的,在日常的接口测试中,业务功能上的检查也是占主要的部分,至于为何要测的原因就是一开始提到的要稳固底层。

边界值测试: 通常我们在进行接口测试时会进行传参,而传参和客户端正常的逻辑现象表现不同,例如购买王者荣耀游戏的每日免费礼包,礼包每日限购1个且免费购买,当你购买后礼包的次数为0并置灰且不可购买,但在接口测试时传参不受到前端的判断限制,可以自由输入,那么输入10个,输入100个就很可能会出现绕过前端逻辑的情况。在正常的客户端购买会受到代码逻辑限制,这里是其中的区别,在业务功能的检查是无法做到

性能测试:对于手机软件而言,更多的关注一些APP的性能、CPU、内存等情况, 对于手机游戏同样也会关注一些CPU、内存、再此之上会关注渲染、DC、包体大小、FPS、内存泄露等等,无论是游戏测试还是软件测试的接口,都会关注接口响应、服务器数据处理响应、接口并发等场景,关注点也会不同。

没有前端界面已经测试后端接口了,完成前端后还需要再次测试吗?

答:需要,无论是软件测试还是游戏测试,功能测试才是最核心的检查,测试后端的接口为了稳固底层代码、降低成本,提前介入测试(主要是防止底层出错,Bug“买一赠多”),并不意味着不需要进行功能测试,在5.2.1中也提及到了,有重复的内容也有不重复的内容,接口测试不能够完全取代功能(手工)测试,故此我们在进行了后端接口测试后,仍然需要对功能进行检查。

公司里没有接口需求文档,又收到了测试任务,如何处理?

答:通常而言在一些公司里没有接口需求文档是不会要求进行接口测试的,如果所处的公司收到了接口测试任务,但又没有接口需求文档时,可以通过抓包的方式抓取接口,还可以自动生成接口文档(网上相关的资料很多,大家可以查阅),当然笔者是不建议这样做的,但现实终究是残酷的鸭~

接口测试在执行测试中属于什么测试阶段?

答:集成测试阶段

什么样的接口是个好接口?

答:功能准确无误,响应速度快,支持多用户并发操作,安全性较高

好啦~以上就是本次文章分享的全部内容啦,你学会了吗?有问题记得留言讨论哦~

 


在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友特意花了一段时间整理编写了下面的《测试开发工程师学习路线》,也整理了不少【网盘资源】,需要的朋友可以点击下方箭头所指获取领取地址。希望会给你带来帮助和方向。

测试开发视频教程、学习笔记领取传送门!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值