软件测试之接口面试题1

## 软件测试之接口面试题1

1. 请问你们公司是如何做接口测试的?

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

2. 怎么设计接口测试用例?

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

3. 你做接口测试,测什么

  • 答:可用性测试 根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:
    ①接口功能是否正确实现;
    ②返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
    ③参数值边界值、等价类测试; 错误和异常处理测试;
    ④输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
    ⑤输入错误的参数,接口能正确处理,并按预期响应;
    ⑥多输入、少输入参数,接口能正确处理,且按预期响应;
    ⑦错误传输数据格式(如 json 格式写成 form 格式)测试; 安全性测试,主要指传输数据的安全性:敏感数据(如密码、秘钥)等是否加密传输;
    ⑧返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
    ⑨接口是否对传入的数据做安全校验,如身份 ID 加 token 类似校验;
    ⑩接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);
    ⑪性能测试,如接口的响应时间、并发处理能力、压测处理情况:并发请求相同的接口(特别为 POST 请求),接口的处理情况(如插入了相同的记录导致 数据出错,引发系统故障);
    ⑫接口响应时长在用户可忍受的范围内;
    ⑬对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

4. 平常用什么工具测接口的?

  • 答:常用 http 协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、 jmeter 等。

5. 没有接口文档,如果做接口测试?

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

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

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

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

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

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

  • 答:先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就 是前端发的数据不对; 请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题。
  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值