软件测试面试题汇总(接口方面)

目前互联网发展已经有二十年了,从最开始的简单的工业互联网到现在生活的方方面面,比如出行、聊天、医疗、汽车、管理等各个方面,从之前的开发兼任测试,就是开发测试一人都干,到现在的需要指标才能上线更新,保证项目质量,不管是大公司还是小公司,都注重质量。

话不多说,进入正文。本文是自己面试中碰见的,也是大部分公司经常问题。暂不牵扯到接口性能,性能的知识更多,更广、更细。

软件测试基础本文就暂不细说,一般都是测试方法,测试理论这些,随便看看就好了,这些不管是应届生和已经有工作经验的大佬来说都很少问了。

1.get和post的区别(经典)?

get通过URL传输数据,post用URL和请求体传输数据是

get没有post安全,但不是绝对的,因为可以抓包

get数据大小有限制,post没有

2.http与https的区别(经典)?

https需要申请ca证书,一般免费证书比较少,需要收费

http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议

http与https连接方式不同,端口不一样http:80 https:443

http连接无状态,https是由ssl+http协议构成的可加密传输,身份认证的网络协议,安全

3.https的连接过程?

把这个流程记下来,汇总一下变成自己的语言,到时候回答的时候尽量详细

4.请简述cookie与session、token的区别(经典)?

1.Cookie数据存放在客户的浏览器上,session是放到服务端 token是接口测试的鉴权码一般情况下登录后才可以获取token,然后每次请求接口都要带上token

2.Cookie不是很安全,别人分析存放本地的cookie并进行cookie七篇,考虑到安全应当使用session,session会在一定时间内保存在服务器上,当访问增加时,应该使用cookie,减轻服务器性能

3.可以将登录信息等重要信息存放为session,其他放在cookie上

5.http协议的了解?

超文本传输,端口80 特点(无记忆功能‘快速)是由请求和相应组成,请求有:请求头、请求行、请求正文组成,响应由响应头、相应行、响应正文组成

6.接口用例的设计与执行?

https://www.toutiao.com/i7012495041432142340/

7.多接口业务怎么测试?

自己可以举例一下自己测的接口,关联型接口都有都需要把参数传过来,需要设置全局变量,把上个接口的值作为下个接口的请求值。

8.举几个自己碰到的coke与说明?

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

简单的总结一下:

1xx - 信息提示:这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。

2xx - 成功:这类状态代码表明服务器成功地接受了客户端请求。

3xx - 重定向:客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。

4xx - 客户端错误:发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。

5xx - 服务器错误:服务器由于遇到错误而不能完成该请求。

9.在项目中如何用jmeter进行接口测试?

1) 把线程组数量设置为1,循环次数设置为1

2) 配置好全局变量URL通过配置元件---用户自定义的变量添加

3) 增加配置元件http请求默认值,放置在用户定义的变量之后

4) 添加事务控制器管理和组织测试用例

5) 在事务控制中添加http请求添加测试用例中的接口请求信息

6) 添加对应的断言元件进行断言

10、jmeter中如何设置断言?

右击请求---断言---响应断言---响应断言界面输入要检查比对的项,设置好断言后,执行接口测试如果是通过的,查看结果树不会有任何提示,如果断言失败,就会有红色报错。如果接口返回的数据是json数据,也可以添加json断言

11、jmeter参数化的方式有哪几种可以实现?

1) 配置元件---用户定义的变量元件可以设置全局变量

2) 函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化

3) 可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可

12、做接口测试工作的意义是什么?

这个是开放性题目,面试官主要考察对测试的理解。

根据测试的金字塔模型来说接口测试是测试左移的最方便,最简单的测试,当然牛B的测试做白盒测试,这个是在接口测试之前,相当于单元测试。

1.接口测试属于集成测试、测试介入越早、就越能在项目早期发现问题,其修复问题的成本越低

2.接口测试非常快速、UI自动化执行一个测试用例10S左右、接口测试用例执行的话,需要的时间是毫秒级的

3.丰富的工具框架与平台,相比UI自动化来说成本更低。

13.怎么抓包?

1.设置代理,需要被抓的对象跟抓包工具处于同个局域网

2.安装证书,不管是APP或者web都要安装证书,安装成功后iOS需要信任。

备注:https本人研究过一周,安卓因为系统限制,暂不能抓取https。

1.要么开发把证书写到代码中 2.要么使用iOS fiddle也可以抓取部分https但不能全部抓取。

14.怎么判断一个问题是前端还是后端?

抓包看接口数据,如果是数据问题就是后端,不是数据问题就是前端问题

15.接口测试中需要有那些注意点?

接口中返回的数据必用字段要看返回的类型是否跟接口文档一致,不然会导致前端出问题

接口中返回了图片地址,要手工去进行图片的测试(大小、内容)

接口完成查询功能的时候,数据返回的排序显示

接口测试的时候,关注参数的默认值、必填项

16.TCP的三次握手与四次挥手(经典)?

备注:(这是我自己的理解,简单通俗易懂,如果要看标准的请百度,那个太长了自己背不下来)

三次握手?

第一次:客户端发送请求到服务器,服务器知道客户端发送,自己接收正常。SYN=1,seq=x

• 第二次:服务器发给客户端,客户端知道自己发送、接收正常,服务器接收、发送正常。ACK=1,ack=x+1,SYN=1,seq=y

• 第三次:客户端发给服务器:服务器知道客户端发送,接收正常,自己接收,发送也正常.seq=x+1,ACK=1,ack=y+1

四次挥手:

第一次:客户端请求断开FIN,seq=u

• 第二次:服务器确认客户端的断开请求ACK,ack=u+1,seq=v

• 第三次:服务器请求断开FIN,seq=w,ACK,ack=u+1

• 第四次:客户端确认服务器的断开ACK,ack=w+1,seq=u+1

17.为什么三次握手和四次挥手?

• 三次握手时,服务器同时把ACK和SYN放在一起发送到了客户端那里

• 四次挥手时,当收到对方的 FIN 报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方是否现在关闭发送数据通道,需要上层应用来决定,因此,己方 ACK 和 FIN 一般都会分开发送。

18.为什么客户端最后还要等待2MSL?

• 客户端需要保证最后一次发送的ACK报文到服务器,如果服务器未收到,可以请求客户端重发,这样客户端还有时间再发,重启2MSL计时。

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anhao1007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值