从零开始学习接口测试--概述、目的、问题、内容

  • 如何学习接口测试

  测试行业,大多数人结束的都是所谓的功能测试,实际上有很多的细节逻辑并无法覆盖到。虽然表面看似没有问题,但是经常会发生所谓的不可重现错误、异常错误、出现错乱数据、甚至被外界攻击的现象。

  从另一个角度来说,这样的功能测试仅仅满足了基本功能需求,但实际上系统非常的脆弱。如果系统应用于内部且有监管机制,那么没有人敢恶意操作,但是如果放在互联网中,那就像没有保护的小鸡🐤一样,会被老鹰🦅轻松叼走。

  测试的初衷本身就不是蛋蛋验证需求的正确性,还有另一个很重要的部分,就是证明程序是有错误的【❓】。为了更好的防止可能造成损失的情况发生,引入接口测试,让测试的细节、准确度、深度产生质的变化。

  什么是接口测试?

  接口测试,测试的主要对象是接口,是测试系统组件间接口的一种测试方法,主要用于检测外部系统与被测系统之间以及内部各系统之间的交互点,其中会包括数据的交互、传递、关系等等。实际上接口测试也是功能测试中的一个环节,只是对于测试新手常常是忽略的状态。

  接口实际上是无处不在的,要解决接口这个抽象的概念,首先要分离两个大概念:

  第一种是代码内部所谓的接口,代码A与代码B在组合的时候,必然需要定义一些名称以及参数、类型,这种在测试中一般划分在白盒测试中,也算是集成测试阶段,需要与开发有类似的代码知识才能上手。

  而另一种接口,是系统与系统之间,通过网络数据的传递进行交互,此类测试属于黑盒层面,也就是看不到代码,但是可以通过各种手段将网络数据发送到接口从而得到接口的相应信息,达到测试的目标。

  第一种接口很抽象,可以算是完全代码层面的东西,测试射击机会很少。第二种黑盒层面通过网络交互方式的接口,无处不在,即使最简单的功能测试也会涉及。只要你能测试的不是单机软件,就离不开接口。就算是网页从服务器上读取一张图片,实际上也是通过HTTP接口地址去获取图片文件,然后在界面上显示。只是这种类型的静态文件接口没有逻辑,确保图片地址和文件是匹配的即可。

  但是程序动态接口则不一样,会涉及到各种各样的参数,即使同一个接口,也会因为接口传递的参数内容不同、用户不同、权限不同等等出现不一样的情况。

  接口、参数就是一种程序的输入,而接口的返回信息就是一种程序的输出,其实这也类似于在界面输入测试用例一样,但在接口中,用例的数量会大大提升,因为不受界面文本输入限制、不受选择内容限制,甚至还有很多界面上你根本看不到的东西。

  输入项内容多了,自然用例也会复杂很多,除了满足需求以外,还要根据接口的数据交互设计定制用例和预期结果,好的用例无非更能发现有深度的问题。

  接口测试的方法有很多,比较常见的是通过一些接口测试工具来实现接口数据的传递,也有编写代码来实现数据传递,以上都是可以在没有客户端界面的情况下做的,但需要对接口的实现比较熟悉。

  另外其实还有别的方式,比如在网络中将接口数据调包修改,或者以修改客户端的方式达到某些目的,且非常真实有效,最终达到测试的目的,找出程序的错误。

 

一、接口测试概述:

  在软件进行测试时,为了验证软件对外的接口服务是否可以正常提供服务及软件在不同场景中执行路径的安全性和可操作性,需要对接口进行测试。

 

二、接口测试的目的:

  接口测试的目的是测试与系统相关联的外部接口,测试的重点是检查数据的交互,传递和控制管理过程,提供测试质量和测试覆盖,更好地重现软件缺陷和定位错误。

 

三、主要考虑问题

  接口测试主要考虑的问题是:

      模块接口

      系统接口

  1、模块接口    【❓】

    模块接口测试主要内容

      • 各个模块连接集成起来的时候,穿越模块接口的数据会不会丢失
      • 各个子功能组合起来,能否达到预期要求
      • 一个模块的功能是否对另外一个模块的功能产生不利的影响
      • 全局数据结构是否有问题
      • 模块的积累误差是否达到了不可接受的程度
      • 系统环境的测试

  2、系统接口    【❓】

      系统接口测试主要内容

 

        • 服务器接口测试:

 

              包括服务器与交换机【❓】接口,以及服务器与磁盘阵列【❓】的接口。

              重点测试在线的状态。测试当服务器发送故障时,交换机或者磁盘阵列能否与备用服务器【❓】连接上。

        • 交换机接口测试

              包括交换机与防火墙接口、交换机与磁盘阵列的接口、交换机与路由器【❓】接口的测试

        • 路由器与调制解调器【❓】的接口测试

              包括路由器与单个调制解调器的接口,以及交换机与多个调制解调器的接口

        • 调制解调器与通信平台【❓】接口的测试

              包括调制解调器与通信平台的DDN【❓】接口,调制解调器与通信平台的ISDN【❓】接口,调制解调器与通信平台的X.25【❓】接口,以及调制解调器与通信平台的FR(帧中继)【❓】接口。

 

四、接口测试的内容

  接口测试主要包括两项内容:

      接口逻辑测试

      模块接口测试

  1、接口逻辑测试

      接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

  2、模块接口测试

      模块接口测试是为了保证数据的安全及程序在一场情况下的逻辑的正确性而进行的测试。

      模块接口测试主要包括以下四个方面:

          1)空值(Null)输入,检查模块接口对空值(Null)的反应能力

          2)参数属性的测试,输入一个未赋值的参数会出现的情况

          3)异常测试,制造一些异常的测试场景,测试异常描述是否清晰

          4)参数的个数设计与模块接口参数的个数不一致时,检查模块接口的反应能力。包括以下两种情况:

              A  模块接口参数的个数不一致(或多于原设计的参数个数,或少于原设计的参数个数)

              B  模块接口参数的类型不一致(字符串和数值型混用)

 

 

posted @ 2018-02-28 12:55  梦风灵舞  阅读(174)  评论(0编辑  收藏  举报