接口测试常见面试题

252 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情 **没有接口文档,如果做接口测试?
本题主要考情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时做好背锅的准备,当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
答:用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具Fiddler、Charles等)

在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
答:用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数。

依赖于第三方数据的接口如何进行测试?
答:
接着面试官会问你,如果mock的,然后你就顺着坑继续挖,搭建mock服务,参考这篇www.51ste.com/share/det-4…

接口测试中,依赖登录状态的接口如何测试?
答:依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie

如何模拟弱网做测试?
答:Fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。具体可以看《几种弱网模拟方法,总有一种适合你》

你平常做接口测试的过程中发现过哪些bug?
面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历经过包装(不包装连面试机会都没有,没办法,为了生存,能理解)
答:
常规错误,接口没实现,没按约定返回结果,边界值处理出错等。
输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
输入错误的参数、多输入、少输入参数,接口可能出现的错误;
安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请求拦截等;
性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;

当一个接口出现异常时候,你是如何分析异常的?
答:
先抓包,用fiddler(charles)工具抓包,或者浏览器上F12调试工具;APP上的话,那就用Fiddler做代理,通过手机设置代理去看请求和返回报文;
查看后端日志,如Linux系统通过xhell连上服务器,查看接口日志,查看是否有报错信息(命令:tail -f 日志文件);

如何分析一个bug是前端还是后端的?
答:
平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug。
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。

你们做接口测试自动化吗?
答:现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有许多,如Jmeter、Robot Framework、pytest等。

列出几个JMeter监听器?

一些JMeter监听器是:

集合报告

汇总报告

查看结果树

用表格查看结果

图形结果

BeanShell Listener

摘要报告等

在python中进行数据驱动测试

在unittest中,没有自带的数据驱动,我们得借助ddt来实现,首先,我们得在python运行环境中安装ddt,用下列命令安装

pip install ddt

另外一个测试框架pytest,它自带数据驱动实现,是通过@pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。

 也可以根据自己需求用python实现数据的读取和驱动。

接口自动化中的关联怎么处理?****

把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使用setattr()函数),下一个请求去调用这个类属性

自动化测试怎么校验结果?

断言 ,预期结果与实际结果对比

数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对