ITPub博客

首页 > IT职业 > IT职场 > 【编测编学】接口测试必备面试题必背(下)

【编测编学】接口测试必备面试题必背(下)

原创 IT职场 作者:bcbxhome 时间:2021-01-15 17:46:45 0 删除 编辑

1 、什么是 DNS ?
DNS
是域名系统 (Domain Name System) , DNS 是用来做域名解析的 , 它会在你上网输入网址后,把它转换成 IP ,然后去访问对方服务器;没有它,你想上百度就要记住百度的 IP ,但有了 DNS 的处理,你只需要记住对应网站的域名,即网址就可以了。

2 、请问你们公司是如何做接口测试的?
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口文档。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选 / 必选,还有考虑参数有互斥或关联的情况)。
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句 / 条件 / 分支 / 判定 / …)
⑥接口能并发执行吗、安全吗,性能满足要求吗 ?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样,该提 bug 提 bug ,该跟踪状态的跟踪状态。

3 、怎么设计接口测试用例?
①是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token
逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计 1 条用例
③业务规则、功能需求
这里根据时间情况,结合接口参数说明,可能需要设计 N 条正向用例和逆向用例
④参数是否必填
逆向用例:针对每个必填参数,都设计 1 条参数值为空的逆向用例
⑤参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
⑥参数数据类型限制
逆向用例:针对每个参数都设计 1 条参数值类型不符的逆向用例
⑦参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计 1 条每个参数的参数值在数据范围内为最大值的正向用例

4 、你做接口测试,测什么?
可用性测试
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:

  • 接口功能是否正确实现;
  • 返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
  • 参数值边界值、等价类测试;

错误和异常处理测试

  • 输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
  • 输入错误的参数,接口能正确处理,并按预期响应;
  • 多输入、少输入参数,接口能正确处理,且按预期响应;
  • 错误传输数据格式(如 json 格式写成 form 格式)测试;

安全性测试,主要指传输数据的安全性:

  • 敏感数据(如密码、秘钥)等是否加密传输;
  • 返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
  • 接口是否对传入的数据做安全校验,如身份 ID 加 token 类似校验;
  • 接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);

性能测试,如接口的响应时间、并发处理能力、压测处理情况:

  • 并发请求相同的接口(特别为 POST 请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);
  • 接口响应时长在用户可忍受的范围内;
  • 对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

5 、平常用什么工具测接口的?
答:常用 http 协议接口测试工具,如: postman 、 fiddler 、 jmeter ; webService 接口用 SoapUI 、 jmeter 等。

6 、没有接口文档,如何做接口测试?

用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。

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

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

8 、依赖于第三方数据的接口如何进行测试?
mock
接着面试官会问你,如果 mock 的,然后你就顺着坑继续挖,搭建 mock 服务等

9 、接口测试中,依赖登录状态的接口如何测试?

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

10 、如何模拟弱网做测试?
Fiddler
和 charles 都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。

11 、你平常做接口测试的过程中发现过哪些 bug?
常规错误,接口没实现,没按约定返回结果,边界值处理出错等。
输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
输入错误的参数、多输入、少输入参数,接口可能出现的错误;
安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请求拦截等;
性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;

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

13 、如何分析一个 bug 是前端还是后端的?
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。

14 、你们做接口测试自动化吗?

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

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985967/viewspace-2750382/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
行业在岗10年+大牛集合地,线下坐标西安,多年致力于企业新人的培养,擅长职业规划,零基础转行学测试方向咨询师。

注册时间:2020-10-24

  • 博文量
    34
  • 访问量
    23976