怎样才算是一个好的接口自动化测试用例

怎样才算是一个好的接口自动化测试用例

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

如何设计接口自动化测试用例?首先,明确出发点,和所有的测试一样 ,接口自动化测试出发点是你要证明所测的程序是错误的。以这个出发点为导向 ,你的设计行为就会尽量朝这个方向,更易发现问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

接口自动化测试的原理是模拟客户端向服务器发送报文请求,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程.

接口自动化测试流程:

  模拟客户端连接服务器(服务器提供的端口是否可访问)

  客户端发送报文请求

  服务器端接收请求并做处理

  检查返回的预期结果并与实际结果对比

  结束

 接口自动化测试用例设计:

  接口自动化测试的主要测试对象是接口,但随着系统复杂度越来越高,接口越来越多,完全覆盖所有接口是很难的一件事情,且实际过程中任意内部接口的变动都可能导致我们测试用例的不可用。

  所以通常情况下我们主要测试最外层的两类接口:数据进入系统接口和数据流出系统接口

  数据进入接口是模拟执行外部系统的接口(调用外部系统的参数为本系统使用)

  数据流出接口是验证系统处理后的数据是否正常

  在设计用例时还需要确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要什么样的功能

软件测试交流群:1017539290 欢迎加入一起讨论交流

  接口测试用例设计和功能测试用例设计基本一致,用例设计的内容应该包括:主要测试功能点(测试目的)、预置条件(网络环境、系统状态)、测试数据、测试步骤以及预期结果。如:

1.1 总部用户同步接口

1.1.1添加组织

编制人XXX审定人XX时间XXXX-XX-XX

用例名称添加组织接口名称urn:orgservice

项目名称C919大型客机客户服务应用系统集成平台编号/版本

参考信息C919大型客机客户服务应用系统集成平台详细设计V2.1

测试目的测试通过该接口能否正确添加一个组织。

接口方法名addOrg

用例编号步骤名称输入预期输出实际输出是否通过 备注

1正确添加一个组织输入所有必填字段。

组织编号<orgCode>不为空,不为null;

组织名称<orgName>不为空,不为null

上级组织编<parentOrgCode>号不为空,不为null;

组织类型<orgType>不为空,不为null;

组织排序位<orderNum>不为空,不为null。

返回正确结果;数据库中新增组织信息正确。符合预期结果通过

2组织编号为空组织编号<orgCode>为空,为null;其他四项不为空,不为null。无法返回正确结果。符合预期结果通过

3组织名称为空组织名称<orgName>为空,为null;其他四项不为空,不为null。无法返回正确结果。符合预期结果通过

4上级组织编号为空上级组织编<parentOrgCode>为空,为null;其他四项不为空,不为null。无法返回正确结果。符合预期结果通过

5组织类型为空组织类型<orgType>为空,为null;其他四项不为空,不为null。无法返回正确结果。符合预期结果通过

6组织排序位为空组织排序位<orderNum>为空,为null;其他四项不为空,不为null。无法返回正确结果。符合预期结果通过

备注

1.1.2 添加用户

编制人XXX审定人XX时间XXXX-XX-XX

用例名称新增用户接口名称urn:userservice

项目名称C919大型客机客户服务应用系统集成平台编号/版本

参考信息C919大型客机客户服务应用系统集成平台详细设计V2.1

测试目的测试通过该接口能否成功在指定组织下添加一个用户

接口方法名addUser

用例编号步骤名称输入预期输出实际输出是否通过 备注

15正确在指定组织下添加一个用户输入所有必填字段。

用户信息<user>不为空,不为null;

组织信息<org>不为空,不为null。

返回正确结果;数据库中更新组织信息正确。符合预期结果通过

16正确在多个指定组织下添加同一个用户输入所有必填字段。

用户信息<user>不为空,不为null;

需要添加的多个组织信息<org>不为空,不为null。

返回正确结果;数据库中更新组织信息正确。符合预期结果通过

17用户信息为空用户信息<user>为空,为null;组织信息不为空,不为null。无法返回正确结果。符合预期结果通过

18组织信息为空组织信息<org>为空,为null。用户信息不为空,不为null。无法返回正确结果。符合预期结果通过

备注

1.1.3 删除组织

编制人XXX审定人XX时间XXXX-XX-XX

用例名称删除组织接口名称urn:orgservice

项目名称C919大型客机客户服务应用系统集成平台编号/版本

参考信息C919大型客机客户服务应用系统集成平台详细设计V2.1

测试目的测试通过该接口能否成功删除一个组织

接口方法名deleteOrg

用例编号步骤名称输入预期输出实际输出是否通过 备注

7删除组织输入所有必填字段。

组织编号<orgCode>不为空,不为null。

返回正确结果;数据库中正确删除组织信息。符合预期结果通过

8组织编号为空组织编号<orgCode>为空,为null。无法返回正确结果。符合预期结果通过

备注

1.1.4 删除用户

编制人XXX审定人XX时间XXXX-XX-XX

用例名称删除用户接口名称urn:userservice

项目名称C919大型客机客户服务应用系统集成平台编号/版本

参考信息C919大型客机客户服务应用系统集成平台详细设计V2.1

测试目的测试通过该接口能否成功在指定组织下添加一个用户

接口方法名deleteOrg

用例编号步骤名称输入预期输出实际输出是否通过 备注

21删除指定组织下的一个用户输入所有必填字段。

用户ID<uid>不为空,不为null。

返回正确结果;数据库中更新组织信息正确。符合预期结果通过

22用户ID为空用户ID<uid>为空,为null。无法返回正确结果。符合预期结果通过

备注

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容