1、接口测试概念

     接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点

 

2、接口测试方法

    a、可以通过写脚本代码进行测试

    b、可以通过UI界面进行测试

 

3、接口测试范围

     接口范围包括:

          一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口

          二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)

          三、各个子系统之间的交互点(如App客户端调用了服务端的Http接口)

 

    被测接口范围:

    接口很多,依据公司的测试资源,项目特点来进行对部分接口/全部接口进行筛选被测API。在一般的中小型公司里,第1类的接口是由相应的开发同学去做。测试同学主要是测试第2种以及第3种。

 

   接口测试的重点测试范围:

   着重测试主要业务,业务复杂的接口

 

4、如何设计API测试用例

      接口测试出发点是被测程序是错误的,以这个为出发点,更容易发现问题。设计API测试用例最简单的就是按照2个基本要素进行划分,即参数(如业务中要求参数不能为null/空字符串,设计 用例为:当给相应的参数传null值/空字符串时,系统是否正确的处理了)与业务(如给API的各形参传入满足业务的实数后,系统是否做出了正确的处理)。

 

    接口测试用例有3类(逻辑测试,出错测试,路径测试):

       1)逻辑测试:主要是根据开发写的JavaDoc来编写测试用例,JavaDoc包含的要素(前提条件,输入参数,业务逻辑,输出值的描述)此类主要是测试在正常输入的情况下,是否能得出正确的结果。此类的测试用例和黑盒差不多,主要用的是等价类划分,边界值等。

 

       2)出错测试:接口逻辑的测试中主要测试的是正常逻辑,即对外提供的接口服务是能够工作的,但是这些测试不能保证数据的安全,以及程序在异常情况下的逻辑的正确性

             (a) 空值输入:如当传一个对象参数(形参类型为Object类型)时,需要值null值测试

             (b) 参数属性测试:如输入一个未赋值的参数(即参形参传的值也为变量,但此变量没有被赋值)

             (c) 异常测试:制造一些异常的测试场景,测试的异常描述是否清晰(如测试“按名称搜索”API,传的                   名称是系统中不存在的值,则返回回来的描述信息是否正确)

             (d) 对参数个数,参数类型时的出错测试(如在测试App的Http接口时,传的值个数不足时,返回的                     结果是否正确)

 

     3)路径测试:当被测API的实现方法中,有很多的判断,且判断中又调用了其他的接口,此时必须要进行路径测试。

5、接口自动化测试工具

       1)可直接使用Junit3/Junit4框架,这个框架一般是开发同学用于单元测试的

       2)可使用TestNG,且TestNG的功能强于Junit4,这个受到了广大测试同学的热爱

       3)  可使用Jmeter,Jmeter提供了一套相应的API供测试同学调用,且Jmeter有UI界面,对于不太懂开发语言的同学,可以使用JMeter进行录制。不过通过录制得来的脚本会或多或少产生一些对于我们没有用的数据。所以我建议写纯脚本