专利名称:基于应用程序接口的自动测试方法
技术领域:
本发明涉及基于测试仪表的测试技术,尤其涉及一种基于应用程序接口(API, Application Programming Interface )的自动测试方法。
背景技术:
随着通信技术在全球范围的不断推广和完善,通信产品的应用越来越广泛, 涵盖了无线通信、计算机通信、光通信等领域。在技术优势日益不突出的今天, 如何把握好通信产品的质量就成为占领市场配额的重要因素。在产品研发成功 推向市场之前,测试工作是必要的,也是确定产品质量好坏的重要依据。产品 测试的目的就是对产品的功能、性能、可靠性、兼容性、稳定性等进行严格的 检查,提前体验用户感受,以提高产品的市场竟争力。图1为现有的控制测试仪表的测试装置结构示意图,如图l所示,现有的 控制测试仪表的测试装置包括应用程序接口客户端(API Client)、测试仪表控 制服务器和测试仪表,其中,程序接口客户端调用测试仪表提供的API以执行 测试仪表的自动化测试脚本,以完成相应测试项,程序接口客户端可以通过测 试仪表控制服务器与测试仪表建立基于传输控制协议(TCP, Transmission Control Protocol)的远程连接来操作测试仪表,也可以直接通过测试仪表控制 服务器来操作测试仪表,或者直接将应用程序接口客户端与测试仪表连接,通 过应用程序接口客户端直接操作测试仪表。测试仪表控制服务器是一台安装了 测试仪表控制软件的服务器,其可以管理多个测试会话,作为服务器端接受多 个应用程序接口客户端的远程操作或图形用户接口客户端的本地操作。测试仪表中包括有支持测试功能的测试仪表硬件、搡作系统、底层函数,其中,在硬 件与操作系统之间定义了一个硬件抽象层,向下直接控制硬件,向上为操作系统提供接口,屏蔽硬件之间的差异。接收到测试指令后,通过操作系统来解析 指令,调用相应的底层函数库中的函数,经硬件抽象层对函数解析后,由相应 的硬件完成测试。在实际的数据通信设备测试过程当中,为保证产品大规模的生产,保证产 品质量,测试工程师使用的测试仪表类型往往不止一种,并且所要测试的数据 通信设备的功能也很多,由于测试仪表之间存在较大的差异性,不得不向用户 提供差异性的测试界面,也就是说,必须针对不同的测试仪表生成相应的测试 平台,才能实现用户对各测试仪表的操作。这无疑增加了测试的复杂度,不容 易实现,在测试仪表更新时,需重新开发相应的测试平台,维护成本较高。发明内容有鉴于此,本发明的主要目的在于提供一种基于应用程序接口的自动测试 方法,能向测试用户提供统一的测试接口,并降低了开发人员的工作强度。为达到上述目的,本发明的技术方案是这样实现的 一种基于应用程序接口的自动测试方法,包括A、 确定测试系统中各测试仪表所支持的测试应用程序接口 API及其调用 指令,为各测试API设置标识,建立测试API库,所述测试API库中记录有测 试API标识、测试API、测试API调用指令与测试仪表之间的对应关系;B、 选取待测试项, 一艮据所述测试API标识生成本地测试脚本;C、 执行并解析所述测试脚本,才艮据所述测试API标识在所述测试API库 中确定出所述测试API及其调用指令,根据所述测试API与测试仪表的对应关 系将所述测试API调用指令发送至所述测试仪表;所述测试仪表调用所述测试 API,执行所述测试API对应的测试程序。优选地,步骤B具体为用户根据选取需要测试的测试项,确定所述测试项的执行顺序或执行条件, 根据所述测试项选取相应的测试API标识,利用本地编程语言生成本地测试脚 本。优选地,该方法还包4舌测试系统中测试4义表的测试项更新时,所述测试API库对应更新。 优选地,所述测试API库中, 一个以上的测试API的调用指令相同时,一 个以上的测试API与一个测试API调用指令对应。本发明通过建立测试API库,对测试系统中所有的测试4义表进行测试项进 行统计,记录测试项的API、 API调用指令等,为API设置标识。测试人员测 试时,直接根据API标识,利用本地语言生成测试脚本,由本地客户端根据API 解析测试脚本,并将解析后的API调用指令发送给相应的测试仪表,由测试仪 表调用相应的API而完成测试工作。本发明向用户4是供了统一的测试平台,屏 蔽了测试仪表之间的差异性,方便了用户的使用。在生成测试脚本时,不用考 虑测试仪表底层的API情况,根据所需的测试项,直接选用相应的API标识即 可,测试脚本的开发相当简单,不需要具备专门的开发知识即可完成。在测试 系统的测试仪表增加或功能增加时,直接更新测试API库即可,维护难度小。
图1为现有的控制测试仪表的测试装置结构示意图;图2为本发明基于应用程序接口的自动测试方法的流程图。
具体实施方式
本发明的核心思想是目前的通信产品测试方法中,测试仪表种类较多、 功能更新速度非常快,而现有测试方法需要根据不同的测试仪表提供相应的测 试平台,这非常不利于测试的操作,维护成本极高。本发明通过建立测试API 库,对测试系统中所有的测试4义表进行测试项进行统计,记录测试项的API 、 API调用指令等,为API设置标识。测试人员测试时,直接根据API标识,利 用本地语言生成测试脚本,由本地客户端根据API解析测试脚本,并将解析后 的API调用指令发送给相应的测试仪表,由测试仪表调用相应的API而完成测 试工作。本发明向用户提供了统一的测试平台,屏蔽了测试仪表之间的差异性,方便了用户的使用。在生成测试脚本时,不用考虑测试仪表底层的API情况, 根据所需的测试项,直接选用相应的API标识即可,测试脚本的开发相当筒单, 不需要具备专门的开发知识即可完成。在测试系统的测试仪表增加或功能增加 时,直接更新测试API库即可,维护难度小。以下结合附图对本发明进行详细 描述。图2为本发明基于应用程序接口的自动测试方法的流程图,如图2所示, 本发明基于应用程序接口的自动测试方法包括以下步骤步骤201:确定测试系统中各测试仪表所支持的测试应用程序接口 API及 其调用指令,为各测试API设置标识,建立测试API库,所述测试API库中记 录有测试API标识、测试API 、测试API调用指令与测试仪表之间的对应关系。为用户提供一个测试脚本生成的测试终端,该测试终端连接于测试系统中 的各测试仪表,测试仪表上设置有串口或网口,测试终端通过串口或网口与这 些测试仪表连接,以完成对测试4义表各API的调用。对测试系统中各测试仪表 所支持的API进行统计,也即是确定各测试仪表的测试能力、所支持的测试项 到底有哪些、通过哪些API来实现等。关于测试仪表的API情况,可通过测试 仪表的使用说明书、测试仪表的配置说明来确定,或者直接由有经验的测试人 员来根据测试仪表的型号等信息来确定。在测试终端上建立测试仪表测试API 库,将前述所确定的各测试仪表的API存储到测试API库中,同时,根据各测 试API所支持的测试能力,为其设置可表示测试能力的标识,所述标识并不限 定具体的格式,只要能清晰表达API所支持的测试能力,方便用户通过标识确 定测试项即可。各测试API还与所提供API的测试仪表对应,即记载测试API 是来自哪个测试仪表,还需要记载触发该测试API的调用指令具体是什么。对 于不同的测试API,提供者不同时,调用该测试API的指令可能会不同,在测 试API库中记载其调用指令即可,该调用指令是极小的指令段,占用的存储空 间不大。本发明的测试API库可才艮据测试API的情况进4亍凄t据优化,例如, 一个以 上的测试API的调用指令相同时,可将该一个以上的测试API与相应的测试API调用指令对应。当测试系统中的测试仪表增加或测试仪表的API增加时,在测试API库中 增加相应的测试API,为这些新增测试API添加相应标识,再建立这些新增测 试API与测试仪表、测试API标识、测试API调用指令之间的对应关系即可。 而当测试系统中的测试仪表减少或测试仪表的API减少时,在测试API库中删 除相应的对应项即可,当然,测试4义表减少时,也可不删除测试API库中的API 对应项,不会影响到API的匹配和调用指令的确定。因此,本发明的测试方法 维护相当简单。步骤202:选耳又待测试项,根据所述测试API标识生成本地测试脚本。进行测试时,首先确定需要测试哪些测试项,例如需要测试数据包流量中 帧长、流量负载以及帧间隔等测试项时,可通过测试API标识来直接确定,例 如上述测试项,可直接以"帧长测试"、"流量负载测试,,及"帧间隔测试"等 字段作为实现上述测试功能的测试API标识。测试用户根据测试需要可直接通 过选取相应的测试API标识而生成本地测试脚本。这里,测试脚本由测试终端 支持的编程语言实现。需要说明的是,本发明的测试脚本实现根据测试需要直 接用高级语言确定调用的测试API标识,确定调用测试API标识的触发条件或 调用时间即可,不需要专门的编程人员即可实现。由于本发明提供的是测试仪表的调用脚本,而很多测试仪表虽然所支持的 API格式不同,但所提供的能力比较类似,因此,测试脚本的实现方式基本一 致,测试脚本有很强的移植性。在利用多测试仪表完成多测试项时,可大大降 低测试人员的工作强度。步骤203:执行并解析所述测试脚本,根据所述测试API标识在所述测试 API库中确定出所述测试API及其调用指令,根据所述测试API与测试仪表的 对应关系将所述测试API调用指令发送至所述测试仪表。测试终端自动执行测试脚本,实现本地的测试脚本解析。这里,主要是确 定测试API标识对应的测试API调用指令、提供测试API的测试仪表是哪个仪 表,同时获取测试脚本的触发条件。触发条件到来,将所解析出的测试API调用指令发送到测试API所属的测试仪表。这里,测试API调用指令是测试仪表 所支持本地的调用指令,测试仪表可直接识别并执行该指令。本发明支持任何方式的测试API调用指令的传输,如测试终端与测试仪表 直接连接时,直接通过数据串口发送所确定的测试API调用指令,而如果测试 终端与测试4义表网络连4妄时,通过相应的网络接口 、 IP地址发送所确定的测试 API调用指令。步骤204:所述测试仪表调用所述测试API,执行所述测试API对应的测 试程序。测试仪表接收到测试API的调用指令后,通过操作系统来解析指令,调用 相应的底层函数库中的函数,经通过在硬件与操作系统之间的硬件抽象层对函 数解析后,由相应的硬件完成测试。测试完成后通过相应的数据接口向测试终 端返回测试结果。本发明在测试仪表底层API层之上增加了 一个通用的API用户界面,统一 定义测试仪表应用程序接口,对下层的测试仪表API进行封装,向用户屏蔽测 试仪表差异。测试脚本在不需要任何改变的情况下在另 一测试仪表平台下运行, 极大提高了脚本通用性。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种基于应用程序接口的自动测试方法,其特征在于,该方法包括A、确定测试系统中各测试仪表所支持的测试应用程序接口API及其调用指令,为各测试API设置标识,建立测试API库,所述测试API库中记录有测试API标识、测试API、测试API调用指令与测试仪表之间的对应关系;B、选取待测试项,根据所述测试API标识生成本地测试脚本;C、执行并解析所述测试脚本,根据所述测试API标识在所述测试API库中确定出所述测试API及其调用指令,根据所述测试API与测试仪表的对应关系将所述测试API调用指令发送至所述测试仪表;所述测试仪表调用所述测试API,执行所述测试API对应的测试程序。
2、 根据权利要求1所述的基于应用程序接口的自动测试方法,其特征在于, 步骤B具体为用户根据选取需要测试的测试项,确定所述测试项的执行顺序或执行条件, 根据所述测试项选取相应的测试API标识,利用本地编程语言生成本地测试脚 本。
3、 根据权利要求1或2所述的基于应用程序接口的自动测试方法,其特征 在于,该方法还包4舌测试系统中测试仪表的测试项更新时,所述测试API库对应更新。
4、 根据权利要求1或2所述的基于应用程序接口的自动测试方法,其特征 在于,所述测试API库中, 一个以上的测试API的调用指令相同时, 一个以上 的测试API与一个测试API调用指令对应。
全文摘要
本发明公开了一种基于应用程序接口的自动测试方法,涉及基于测试仪表的测试技术,为解决目前基于测试仪表的测试方法繁杂而提出,所采用的方案为确定测试系统中各测试仪表所支持的测试应用程序接口API及其调用指令,为各测试API设置标识,建立测试API库,测试API库中记录有测试API标识、测试API、测试API调用指令与测试仪表之间的对应关系;选取待测试项,根据测试API标识生成本地测试脚本;执行并解析测试脚本,确定出测试API及其调用指令,根据测试API与测试仪表的对应关系将测试API调用指令发送至测试仪表;测试仪表调用测试API,执行测试API对应的测试程序。本发明实现简单,维护成本低。
文档编号H04L12/26GK101227345SQ20081000814
公开日2008年7月23日 申请日期2008年2月5日 优先权日2008年2月5日
发明者樊志强, 许生海, 密 谢, 马汝胜 申请人:中兴通讯股份有限公司