一种API接口的自动化测试方法与流程

文档序号:16880224发布日期:2019-02-15 22:03阅读:534来源:国知局
一种API接口的自动化测试方法与流程

本发明涉及一种字自动化测试方法,更具体地说,涉及一种api接口的自动化测试方法。



背景技术:

在进行软件开发的时候,对软件进行单元测试是一项重要的工作,单元测试可以帮助保证软件的质量。传统的软件开发,经常以类或者函数为边界划分单元,其单元测试即是对类或者函数进行测试。当前的软件设计过程中,经常会采用模块松耦合的方式,模块之间通过api接口来进行交互,把单个api接口作为一个单元进行测试是合理的。软件开发框架会提供一种称为api接口描述文件的json格式的文档,一般以在线的方式提供。可以根据api接口描述文件开发单元测试的页面或api接口单元测试程序来对api接口进行单元测试。现有api接口单元测试的技术方案之一是开发api接口单元测试页面对接口进行api接口单元测试,根据api接口描述文件逐个api接口开发测试页面,或者开发一个通用的测试页面用于所有的api接口的测试。使用这种方式,api接口单元测试需要依赖人工进行,并且在api接口发生变化的时候,可能需要人工来维护api接口测试页面。软件中一般都包含大量的接口,依赖人工测试和人工维护的方法会带来巨大的工作量。同时,这种方式无法自动给出测试报告,因此测试报告也需要人工来维护。现有api接口单元测试技术方案之二是人工编写api接口单元测试代码,这些代码实现对api接口的调用和结果检查,实现对api接口进行单元测试的目的。有多个单元测试框架可以辅助api接口单元测试代码的编写。这种方式可以实现一次编写,多次运行,同时能有助于自动化的生成api接口单元测试报告。这种方式api接口单元测试代码和api接口是一一对应的,新api接口需要再编写api接口单元测试框架,既有api接口如果发生变更,也需要同步修改api接口单元测试代码,这带来一定的维护工作量,如果api接口数量较多,则维护api接口单元测试代码的工作量也较多。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种api接口的自动化测试方法,解决api接口单元测试代码需要人工维护导致的api接口单元测试成本过高的问题。

本发明解决其技术问题所采用的技术方案是:构造一种api接口的自动化测试方法,首先使用api接口描述标准进行api接口的描述,再基于模板技术生成api接口单元测试代码的方法。

在本发明所述的api接口的自动化测试方法中,所述api接口的自动化测试方法流程为:

s1准备api接口描述文件,s11制定一套api接口描述标准,s12产生独立于api接口程序实现api接口描述,所述api接口描述为json格式;

s2生成api接口单元测试代码模板,所述代码模板包含可替换内容以及固定内容。所述可替换内容表示为列表和插值,所述列表和插值后续根据api接口描述的信息被替换成实际内容;

s3编写api接口单元测试代码生成程序,所述程序读取接口描述文件,并使用其中包含的信息替换所述代码模板的可替换内容,生成api接口单元测试代码;所述程序对每个api接口生成一份单元测试代码;所述api接口单元测试代码生成程序只需编写一次,并只需api接口描述文件有变化时重新运行一次即可;

s4编写单元测试调度程序,所述调度程序按照指定的规则,定时自动或人工运行,每次运行可以执行任意数量的接口单元测试代码并生成测试报告。

在本发明所述的api接口的自动化测试方法中,所述api接口描述标准的规范接口描述元素包括接口信息、接口参数、接口返回值、接口断言、接口聚合方式。

实施本发明的一种api接口的自动化测试方法,具有以下有益效果:本发明的api接口单元测试代码生成程序只需编写一次,并只需在api接口描述文件有变化时重新运行一次即可更新所有接口的单元测试代码,无需为api接口维护接口单元测试代码,降低了api接口单元测试的实施成本,便于实现api接口自动化单元测试。采用本发明方法可以显著的降低单元测试代码的维护工作量,缩短软件开发周期,进而降低整个软件开发过程的成本。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的api接口的自动化测试方法流程图

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,所述api接口的自动化测试方法流程为:

s1准备api接口描述文件,s11制定一套api接口描述标准,s12产生独立于api接口程序实现api接口描述,所述api接口描述为json格式;

s2生成api接口单元测试代码模板,所述代码模板包含可替换内容以及固定内容。所述可替换内容表示为列表和插值,所述列表和插值后续根据api接口描述的信息被替换成实际内容;

s3编写api接口单元测试代码生成程序,所述程序读取接口描述文件,并使用其中包含的信息替换所述代码模板的可替换内容,生成api接口单元测试代码;所述程序对每个api接口生成一份单元测试代码;所述api接口单元测试代码生成程序只需编写一次,并只需api接口描述文件有变化时重新运行一次即可;

s4编写单元测试调度程序,所述调度程序按照指定的规则,定时自动或人工运行,每次运行可以执行任意数量的接口单元测试代码并生成测试报告。

进一步地,所述api接口描述标准的规范接口描述元素包括接口信息、接口参数、接口返回值、接口断言、接口聚合方式。

本发明实施例以“一个发送短信的api接口,其参数为手机号,和短信内容”为例。

在开发此api接口的时候,开发人员依据api接口描述标准编写api接口描述。以下引用主要部分:

然后准备api接口的单元测试代码的模板,首先编写api接口编写出单元测试代码,然后将代码中和api接口有关的部分使用可替换内容改写,如下述代码是拼接api接口的请求参数的代码:

parameters.put("mobileno","13333333333");

parameters.put("content","hello");

使用可替换内容改写成如下:

<#listparametersasparam>

parameters.put("${param.name}","${param.default}");

</#list>

现在,使用api接口单元测试代码生成程序读取api接口的描述,使用上述模板生成单元测试代码。最后使用单元测试调度程序执行这些单元测试代码并根据需要查看测试报告,即可完成api接口的单元测试。

尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1