接口测试之what、why、how(一)

毕业后就开始做软件测试工作,一直想把自己工作中遇到坑、实践以及经验进行总结,但苦于知识、能力有限,无法深入,就一推再推,至今也没开始。“不管你怎么准备,永远都不会有准备好的那一天。所以准备好了再做其实是一个很坑爹的思维。不管你如何准备,如果没有行动,永远都不会都准备的那一天”,开始一点一点的做,去完善。

主要摘自(https://blog.csdn.net/jiary5201314/article/details/51429347)

从what、why、how去梳理接口测试

什么是接口测试(what)

        接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

为什么要做接口测试(why)

 前端+接口测试双保险 
    安全层面:
            a、现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
            b、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

  测试前移:如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。

        自动化测试: 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
接口测试的策略
  接口测试也是属于功能测试,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:1.测试接口文档(需求文档) 2.根据接口文档编写测试用例(用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法) 3. 执行测试,查看不同的参数请求,接口的返回的数据是否达到预期。
接口测试常用抓包工具: Fiddler、Charles、Firebug、开发者工具等等

怎么进行接口测试(how)

下面来说说时间测试过程中系统的接口测试从哪些方面进行考虑:

1、参数输入(入参)

2、接口逻辑处理:

    2.1约束条件分析:

        数值限制:分数限制、金币限制、等级限制

        状态限制:登录状态、失效等

        权限限制:管理员、权限绑定关系、主从关系等

        关系限制:好友关系、绑定换下

    常见问题和风险:约束条件判断不足,导致用户可以通过特殊手段获取利益

    2.2操作对象分析:操作通常是针对对象的,例如用户绑定手机号码,手机号码就是操作对象,二这个手机号码的信用等级、流量、话费,套餐余量也是对象

    常见问题和风险:用户可以访问非权限内的其他对象的信息、敏感信息,从而利用这些信息谋取利益

    2.3状态转换分析:如已提交,未审核,已审核,正常态:提交后,转为未审核,未审核的审核后转换为已审核;异常状态切换,未提交就可以审核

    2.4处理时序分析:如某流程要先登录,刷新,再变更;若数据顺序打乱后,导致其他系统或业务异常,从而谋利

3、接口返回(出参):接口正确处理的接口只有一个,而错误异常返回的结果却有很多种情况,甚至奇葩、出乎意料的的返回,比较不同开发人员有不同的书写习惯;返回状态码和信息

4、性能测试:响应时间(time)、并发数、吞吐量(--)、服务器资源使用情况(cpu、内存、io、)

        超时处理(未做超时处理;阻塞)

5、安全性测试:敏感信息加密(sign签名、时间戳、token机制、验证码、)

6、兼容性测试:(废弃接口、老接口、新接口)

接口测试中发现的典型问题:

1、传入参数处理不当,导致程序crash

2、类型溢出,导致写入如读取的不一致

3、对象权限未进行校验,可以访问其他敏感信息

4、状态处理不当,导致逻辑处理错乱

5、逻辑校验不完善,可利用漏洞获取利益



展开阅读全文

没有更多推荐了,返回首页