如何进行接口测试用例的设计

作者:admin | 分类:接口测试教程 | 浏览:64 | 评论:

        接口测试是整个大的完整的项目的一部分 ,它主要测试的是接口,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点。测试的重点是检查数据交是接口 互、传递、和控制管理过程以及系统间的相互依赖关系等。

   如何设计接口测试用例?首先,明确出发点,和所有的测试一样 ,接口测试出发点是你要证明所测的程序是错误的。以这个出发点为导向 ,你的设计行为就会尽量朝这个方向,更易发现问题,既要考虑正常的接口测试同时我们也要考虑异常的接口测试

   其次,选择好测试对象。对于一个系统做接口测试选择好的测试对象是接口测试关键。一个系统有无数的接口 ,每个接口如果分别测试 ,那将是很痛苦的一件事情,而且任何一个内部接口的变动 ,都将导致我们用例的不可用。

   可将这些最外层的接口分为两类:一类是数据进入系统的接口;一类是数据流出系统的接口。进入系统的接口实际是我们用例的执行调用的接口。可通过变化参数对这些接口进行调用 ,模拟外部的使用;而流出的接口则是我们用例真正该验证的点。数据从哪里流出,流出时的状态如何 ,此时系统又是什么状态都是我们所应该验证的。

   然后,确认完整的测试对象的功能:确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要什么样的功能。此两个功能一定要准确详细,用例的设计要严格按照测试对象功能设计才是正确的用例。

   最后当出发点、对象、功能都确定了,就可以真正设计用例了。下面详细介绍下如何去设计一个结构好、可读性高、渗透性强的接口测试用例。

   接口测试用例设计和测试用例设计一样,用例设计的内容应该包括:主要测试功能点、测试环境、测试数据、执行操作以及预期结果。

   1)接口测试环境分为两种:一种是程序内部的环境;一种是程序的所调用外部接口的环境。

   2)接口测试测试数据分为接口参数数据和用例执行所需系统数据。数据的设计、准备测试用例的数据上需要花费更多的心思。要通过好的测试数据使用例查找问题。接口参数数据需对每个参数根据测试接口的实际的功能进行分析,在符合业务逻辑的情况下进行逻辑组合排列 ,不要遗漏了某些边界值和错误点的数据。每个用例执行所需系统数据和接口参数数据尽可能的采用不一样的数据 ,使用例更容易发现问题。

   3)测试功能点,如果一个接口功能复杂时推荐对接口用例进行结构划分 ,这样子用例具有更好的可读性和维护性。接口划分原则为以接口提供的功能点的不同进行合适粒度的划分。同一功能点的用例又可根据测试环境的不同、数据的不同进行用例的填充。

   4)接口测试用例执行操作非常简单,就是所测接口的调用。

   5)预期结果验证,这也是接口用例设计的很关键的一步 ,应该细而不冗余。每个用例均需验证 ,避免一个用例中重复做相同的验证 ,提高测试用例的效率。

   如何设计接口测试用例小例子:

   简单划分可以按照2个基本组成要素进行划分:1. 参数 2. 业务

   以下为最简单的一种划分用例的方法,可能涵盖不全,但只为说明一种划分接口用例的方法方式以及需要考虑的测试用例的测试点

   为何要如此设计,是为了更好的将用例分类为程序规定型以及业务限制型,尽量的保证覆盖,尽量细化到点的划分形式来保证工作时间的预估和计划。

   所有的自动化接口的测试用例  都基本围绕三部曲进行,传数据,执行,校验返回的数据和期望数据是否一致来构成每个简单的测试用例。

   有清晰的线路和清晰的思维,才能做好整体测试的掌控。

 

接口测试的原理是模拟客户端向服务器发送报文请求,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程.
  接口测试流程:
  模拟客户端连接服务器(服务器提供的端口是否可访问)
  ↓
  客户端发送报文请求
  ↓
  服务器端接收请求并做处理
  ↓
  检查返回的预期结果并与实际结果对比
  ↓
  结束
  接口测试用例设计
  接口测试的主要测试对象是接口,但随着系统复杂度越来越高,接口越来越多,完全覆盖所有接口是很难的一件事情,且实际过程中任意内部接口的变动都可能导致我们测试用例的不可用。
  所以通常情况下我们主要测试最外层的两类接口:数据进入系统接口和数据流出系统接口
  数据进入接口是模拟执行外部系统的接口(调用外部系统的参数为本系统使用)
  数据流出接口是验证系统处理后的数据是否正常
  在设计用例时还需要确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要什么样的功能
  接口测试用例设计和测试用例设计基本一致,用例设计的内容应该包括:主要测试功能点(测试目的)、预置条件(网络环境、系统状态)、测试数据、测试步骤以及预期结果。如:
  ————————————————————————————
  功能点:第三方用户注册
  测试目的:验证第三方平台与系统注册接口
  预置条件:第三个平台与系统连接正常
  注册子系统状态正常
  测试数据:参考接口测试数据
  测试步骤:
  1、登录系统并打开相关工具观测请求消息和响应消息;
  2、发送模拟第三方平台注册的请求报文
  3、检查系统是否有注册消息和用户注册结果
  预期结果:***********************

 

 

 

参数类(如果是http类接口,需要测试url参数的kv以及postdata参数的kv):
1、测试每个参数value类型非法的情况(普通非法(长度、类型、范围)、安全类非法(延展开去又是大话题,不同类型的接口有不同的安全检查方法))
2、测试每个参数value为特殊值的情况(空字符串、null、nil)
3、测试每个参数key非法(普通非法(长度、类型、范围)、安全类非法(延展开去又是大话题,不同类型的接口有不同的安全检查方法))
4、测试冗余参数key及value(例如key名错误、多个key顺序错误、增加不存在的key、value含有多余内容等)
5、测试缺少参数key及value
6、遍历正常参数及value(含边界)
7、遍历接口代码所有判断、循环语句条件

环境类:
1、接口数据输出环境异常,如目标数据库崩溃或未启动
2、接口数据输入环境异常,如源数据库崩溃或数据紊乱(类似上方参数类的测试了)

关联类:
这种用例类似用接口的方式做功能流程测试,防止出现上一个用例的数据对下一个用例有影响却没有被独立的接口测试覆盖到。

校验:
检查接口输出存储结果符合预期
检查接口返回结果符合预期

注意:并非上方所有情况都适用每种实际情况的,如果接口调用方自己做了过滤的话,有的用例其实是可以不测,或者优先级很低的,比如value、key为空之类的情况,如果调用方保证不会为空,那么这些用例最多算安全测试,实际开发人员会把它们导致的bug的优先级降到最低的,我也建议测试人员可以降低其重要程度。

上一篇:接口测试的重要性     下一篇:接口性能测试--JMeter介绍

网名:接口测试 | 博客官网

姓名:柠檬

籍贯:江苏省-南京市

现居:厦门市—思明区

职业:软件测试

填写您的邮件地址,订阅我们的精彩内容:

网站分类
接口测试教程官网

接口测试加群二维码