接口测试面试题,等你来看

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试面试题,等你来看相关的知识,希望对你有一定的参考价值。

参考技术A 1.你们公司的接口测试流程是?

接口测试我们是在xx项目做的,主要有xx接口,xx接口等

1.首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、接口方式、入参、出参、token鉴权,返回格式等信息。

2.然后使用postman或jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:

3.最后调试并执行用力,最后编写接口测试报告。

4.其实我们做接口的时候也碰到过很多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登陆后才能取得token鉴权编码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等等。

2.简述cookie、session及token的区别

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

2.cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应到使用seesion,seesion会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie。

3.可以将登录信息等重要信息存放为session;其他信息需要保存,可以放在coolie。

3.对于加密接口,如何进行测试?

在调用接口的时候,要搞清楚接口的加密方式是什么。

如果是对称加密,要先从开发哪里获取对称密钥,基于对称密钥可以加密请求数据,以及解密响应报文。

如果是非对称加密,先从开发获取服务器公钥和私钥,也要知道当前用户的公钥和私钥信息。以便完成接口的数据加密和解密。

4.接口测试执行中比对数据库吗?

肯定,因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查!

5.如何分析一个bug是前端还是后端

这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没有问题,有问题就是前端发的数据不对;

请求报文没问题,那就看返回报文,返回的数据不对那就是后端开发的问题。

6.谈谈你对HTTP协议的了解?

超文本传输协议,端口为80,特点(无记忆功能、快速)是由请求和响应两部分组成请求由请求头、请求行、请求正文组成;响应是由响应头、响应行、响应正文组成,之前我们公司的接口是采用https协议的。

httpshttp+ssl协议端口443面向安全的超文本传输协议。

7.get和post请求有什么区别?

get和post请求都是客户端向服务器提交的一种请求方式;

get是明文传输参数、倾向于请求服务器资源。比如打开网站;

post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等。

8.依赖于第三方数据的接口如何进行测试

可以使用SoapUI等工具直接调用第三方数据接口的webservice,通过返回值来查看第三方数据的接口是否调用正常。

也可以利用一些工具来模拟第三方的数据返回,最大限度地降低对第三方数据接口的依赖。

9.接口测试中要注意的测试点有哪些?

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

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

10.接口执行测试返回结果比对哪部分?

之前必须要对比的就是返回状态码,其次再去对比返回其它关键内容。

11.做接口测试工作的意义是什么?

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

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

12.用过抓包工具吗?如何使用?

之前在项目中用过fiddler抓包工具进行HTTP协议请求的抓取。

打开fiddler之后,默认浏览器配置了127.0.0.18888端口的代理,在fiddler设置好过滤策略后,打开需要进行抓包的网站进行操作,就可以进行抓包。

13.接口测试中需要哪些注意点?

14.postman中设置环境变量有什么用?

在之前项目中,接口测试测试的环境有开发环境,测试环境等,为了测试的时候方便,就在postman设置环境变量,到时所有接口都引用该环境变量,这样就不用为了切换环境导致每次都去修改被测系统接口的主机地址;点击右上角环境变量管理按钮-新建环境变量,在脚本中使用undefined变量名去调用。

15.关联是什么?如何postman设置关联?

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行。

在postman中设置关联的步骤如下:

先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来;

使用设置全局变量的代码把取出来的值保存到全局变量;

在下一个接口中,使用undefined全局变量代替要替换的静态值。

接口测试面试题

1.什么是接口测试(Interface Testing)?

测试系统组件间接口的一种测试

2.为什么要做接口测试?(接口测试一般指测试接口的功能,性能,稳定性和安全性测试)

找出后端接口的功能和安全性的缺陷。比如:我测试红星图书网时,个人中心有余额提现,假设我余额有100元,在页面上输入负数,肯定是无法提交(前端页面会判断金额),但是如果我不走前端,直接用第三方接口工具(例如jmter)发请求,输入一个负数,然后提交。假设服务端没做提现金额数据判断,那么余额=当前余额(100)-提现余额(-100),结果是提现-100,余额反而变成200元,也就是越提现,余额反而越大!!!

参考链接:https://blog.csdn.net/weixin_30363263/article/details/80151436

3.怎么做接口测试?

接口测试和功能测试的流程一样,准守V模型:需求分析,需求评审,场景设计,用例设计,数据准备,执行

参考链接:https://blog.csdn.net/weixin_30363263/article/details/80151436

4.你平常做接口测试的过程中发现过哪些bug?

提现输入框,在页面上输入负数,肯定无法提交(前端页面会判断金额),如果跳过前端,直接用第三方接口工具发送请求,输入一个负数。

5.平常你是怎么测试接口的?

通过性验证,参数组合,接口安全,异常验证,性能测试

6.平时用什么工具测接口

jmeter

7.webService接口是如何测试的

8.没有接口文档如何做接口测试?

没有接口文档,那就需要先跟开发沟通,然后整理接口文档;没有接口文档,可以抓包看接口请求参数,然后不懂的跟开发沟通

9.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理

用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数

10.依赖于第三方数据的接口如何进行测试

mock

11.当一个接口出现异常时候,你是如何分析异常的

  • 抓包,用fiddler工具抓包,或者浏览器上按F12;APP上的话,那就用fiddler设置代理,去看请求报文和返回报文
  • 查看后端日志,xshell(安全终端模拟软件,在windows界面下用来访问远端不同系统下的服务器)或者secureCRT连上服务器,查看日子

12.如何模拟弱网测试

fiddler可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试

  • 模拟一种稳定的网速
  1. Rules>>Customize Rules  弹出一个ScriptEditor编辑框,ctrl+f:找到并修改requ-trickle_delay(默认是300ms)和response-trickle-delay(默认是150ms)      -- 模拟一种稳定的网速
  2. Rules>>Performance>>Simulate Modem Speeds(模拟调制解调器的速度)     
  3. 设置完成后,需要重新开启模拟调制解调器来启用新的设置
  • 实际情况中,网速是不稳定的,所以要模拟不稳定的网速
  1. Rules>>Customize Rules 弹出一个ScriptEditor编辑器,修改代码
  2. Rules>>Performance>>Simulate Modem Speeds
  3. 设置完成后,需要重新开启模拟调制解调器来启用新的设置

参考链接:https://blog.csdn.net/qq_41714308/article/details/82894686

https://blog.csdn.net/u010618194/article/details/76652513

https://blog.csdn.net/eleven521/article/details/19089671

https://blog.csdn.net/qq_41714308/article/details/79368843

13.如何分析一个bug是前端的还是后端的

先抓包看请求报文,对着接口文档,看请求报文有没有问题,有问题就是前端发的数据不对,请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题

notes:状态码以4开头,表明是客户端错误,请求包含语法错误或无法完成请求

     状态码以5开头,表明是服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码参考链接:https://blog.csdn.net/mjp_erhuo/article/details/80138283

Fiddler中修改请求和响应的方法:https://blog.csdn.net/aduocd/article/details/53331390

接口测试面试题参考链接:https://www.cnblogs.com/yoyoketang/p/10144581.html

 

以上是关于接口测试面试题,等你来看的主要内容,如果未能解决你的问题,请参考以下文章

接口测试持续集成是如何进行的呢?

测试通用面试题大全

接口测试面试题

软件测试简历编写以及软件测试面试题大全(接口自动化测试面试题)赶快收藏

软件测试面试题目—接口测试面试题,梦寐以求的答案来了

目前所做的接口测试属于哪一类呢?