马baoguo问我为甚么要做接口测试?

微信搜一搜公众号【窗外红叶】点下关注,关注后回复【资料】有我准备的全套测试自学资料和测试工具哦。

为甚么要做接口测试?

实际案例:一个提现功能

image.png
对输入框做用例设计
  • 输入一个负数点击提交
  • 输入为0点击提交
  • 输入0-100点击提交
  • 输入1位小数点提交
  • 输入2位小数点提交
  • 输入3位小数点提交
按照等价类,边界值用例测试完,页面上不能输入负数和大于三位数,就可以上线了。但是某一天数据库插入了一个提现金额为负数,测试在页面反复输入负数,无法提交,理所当然地认为没有问题。前端开发开发对输入框是做了限制的,前端的web开发肯定没有问题,那么如果用户不通过你的web页面,直接向后端发送请求提交了呢?所以接下来就是接口测试的重要体现了。

数据校验前端做还是后端做?

  • 前后端都要做数据校验。例如手机号码的输入,如果前端不做数据校验,每个错误的号码都要后端程序校验,那么服务器压力就会大大增加。网络速度不佳的情况下,用户还在等待着手误导致的后端反馈延迟... 所以提高前端体验度和节省后端的开销,前端校验必须做。
  • 后端校验的原因就比较简单,主要是安全和数据完整层面考虑。还是以手机号码输入为例子,因为理论上所有的前端都可以绕过,那么客户端提交你一个不规范的手机号码,如果没有后端校验,此时就开始发送验证短信,短信最后最后自然会发送失败,但你发送短信的钱就真真切切浪费了。所以一般短信发送会增加验证码以完善后端验证。

接口测试的必要性

  • 1)可以发现很多页面上操作发现不了的bug
  • 2 ) 检查系统的异常能力
  • 3)检查系统的安全性、稳定性
  • 4)前端随便变、接口测好了,后端不用变
  • 5)可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
  • 6)可以修改请求参数,突破前端页面输入限制(如金额)

接口测试怎么测?

1)通过性验证:保证接口功能正常,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。
2) 参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
3)接口安全:
  • 绕过验证,比如说购买一个商品,它的价格是999元,那我再提交订单时候,我把这个商品的价格改成3元,后端又没有做验证,我把钱这个参数改成9,那我是不是花9元可以完成购买呢?
  • 绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
  • 参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
  • 密码安全规则,密码的复杂程度校验
4)异常验证:
  • 所谓异常验证,就是不按照接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型,传入字符串类型,长度是10的,传11。就三种异常验证,必传非必传、参数类型、入参长度。
5)性能测试:
  • 接口并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单,接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别。

接口测试类型

image.png

用什么工具测试接口?

常用的接口测试工具有postman和jmeter

webService接口是如何测试的?

  • webService接口用SoapUI

没有接口文档你是怎么测试的?

  • 1、那就先和开发沟通,然后整理文档
  • 2、可以抓包看接口请求参数,然后不懂的跟开发沟通

当一个接口出现异常时候,你是怎么分析数据的?

  • 1、抓包、用fiddler工具抓包,或者浏览器的f12,app上的话,可以用fiddler设置代理,去看请求报文和返回报文。
  • 2、查看后端日志,xhell连上服务器,查看日志。

如何模拟弱网测试?

  • fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。

fiddler常见应用场景

image.png

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

  • 先抓包看请求报文,依照接口文档,看请求报文是否有问题,有问题就是前端发的数据不对。如果请求报文没有问题,那就看返回报文,返回的数据不对,那就是后端返回的数据不对。

微信搜一搜公众号【窗外红叶】点下关注,关注后回复【资料】有我准备的全套测试自学资料和测试工具哦。

你可能感兴趣的:(马baoguo问我为甚么要做接口测试?)