记接口测试小里程

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

                                                                                          -----------------百度百科后端

  接口测试,属灰盒测试范畴。可能都知道测试类型分黑盒测试,白盒测试,灰盒测试;黑盒测试又名功能测试,功能测试的范围局限于UI层面,主要测试产品的各个功能是否正常,是否如预期的同样。遗憾,一般与预期的需求相差甚远,催生了一系列的测试岗位诞生。安全

  固然,白盒测试则是基于代码进行测试、对一个函数进行测试,颗粒度与黑盒测试造成一个极端对比。那么,对于系统间的子模块与子模块之间的衔接,逻辑依赖、数据交换,接口之间的交互则是灰盒测试,也是接口测试。架构

  

      相似的图有不少,本图也是在百度进行搜索到的。并发

   “相似的图”说明的有不少,不管是从测试类型、技术角度以及收益角度都是能够说的通的。那么今天的主角即是接口测试(API)测试,能够抛出问题了。。框架

   秉行5w1H原则:前后端分离

     (why)为何要作接口测试?分布式

     (what)接口测试是测什么?函数

     (where)接口测试应该在什么地方进行?高并发

     (when)接口测试应该在什么时间、地点完成?

        (who)接口测试应该由谁来执行?

     (how)接口测试应该怎样来执行?采起哪些措施?

    衍生如下两个问题:

     接口测试技术深度如何?

     接口测试能达到什么样的效果?

     

   

  一、(why)为何要作接口测试?

    为了知足分布式、高并发、横向扩展、低耦合度等要求、业务复杂度不断上升。先后端分离的状况下,中间有不少夹层,层与层之间各司其职又相互关联,之间的通信协议以及报文格式并不彻底相同。

    从项目的角度来看,绕过前端太过于容易,不少UI层面的case已经不可以达到彻底的‘覆盖’要求。那么就必须对UI层面下方的API层进行测试。

 

  二、(what)接口测试是测什么?

    接口测试是对系统中的各个子交互点进行测试,其重点即是测试数据之间的交互过程,以及逻辑。其本质仍是协议!

 

  三、(where)接口测试应该在什么地方进行?

    执行接口测试的方法有太多,固然包括各类各样的工具、框架、平台等。

    对一些工具、代码框架作了些许整理。(本人观点、不表明所有、仅供参考)

    

  轻量工具级:Postman/Jmeter/soupUI

        该类工具级别具备包含经常使用协议,相似Postman,乃是Google的产品,开发经常使用于自行调试接口。简单实用、上手简单。

  高级工具级/代码框架:Jmeter/SoupUI/(Python)Request库/TestNG

        该类工具级/代码,具有多种协议支持、前置条件、后置条件、外部文件读取、检查点、结果图形化展现等功能。

  框架化:TestNG+Maven/Jmeter+Ant+Jenkins/Request+HTMLReport+Jenkins

      该级别的集成框架已是市场比较流行的一些框架,(向下兼容)多种协议支持,前置、后置条件、第三方集成、轻量自动化等功能。

  平台化:平台化的接口测试较为复杂,由于已经不只仅涉及到了接口测试单方面的东西,从执行代理、执行引擎、协议支持、到数据读写、任务分发调度、结果收集、集成CI/CD等等功能,俨然搭建一套这样的平台是一项工做量十分大的工做,并且技术要求较高。

 

  四、(when)接口测试应该在什么时间、地点完成?

    论起接口测试的介入时间,固然是越早越好,接口测试本就使整个项目的测试工做进行前移,减轻后期的功能测试成本,并且覆盖率可以大大提高,所以,宜早不宜晚!

  

  五、(who)接口测试应该由谁来执行? 

    测试人员。

 

  六、(how)接口测试应该怎样来执行?采起哪些措施?

    接口测试应该从立项和需求澄清开始跟进、熟悉系统的架构、了解内部、外部接口之间的关联,对接口文档进行分析、从小家到你们,小国到大国,持续推动。从最基础的作起,实现持续集成,接口测试的效果会愈来愈明显。

  

  七、接口测试技术深度如何?

    依项目状况、技术延伸、业务须要而定。从功能到性能、安全,步步加深。

 

  八、接口测试能达到什么样的效果?

    从项目工做成本的角度来看,彻底能够达到快速冒烟、快速回归的测试目的,后期功能测试的压力会随之下降。覆盖率也相对于UI测试而言,提升了不少。固然,也有部分可以弥补手工没法完成的任务。

   从技术角度看,彻底是对测试人员在一个新领域的考验。

相关文章
相关标签/搜索