电子装置、接口自动化测试方法及存储介质与流程

文档序号:17441847发布日期:2019-04-17 04:52阅读:115来源:国知局
电子装置、接口自动化测试方法及存储介质与流程

本发明涉及接口自动化测试领域,尤其涉及一种电子装置、接口自动化测试方法及存储介质。



背景技术:

在接口测试的过程中,通常需要根据接口文档来编写测试脚本。接口文档用于描述接口的属性,例如描述接口的输入参数的格式、输出参数的格式或通信协议等。通常,在一个接口开发过程中,开发人员会编写一份与接口对应的接口文档,以便其他开发人员能够通过接口文档清楚地了解相应的接口。目前,由于接口和接口文档是分开编写的,且接口文档的编写没有统一的规定格式,导致在接口测试过程中,需要与开发人员进行不断的沟通来了解接口文档对应的接口属性,才能编写出可准确执行的接口测试脚本,整个过程不仅耗费大量的人力,且会出现接口文档与接口属性不一致的现象,导致测试效率低且容易出现测试错误。



技术实现要素:

有鉴于此,本发明提出一种电子装置、接口自动化测试方法及存储介质,能够提高接口测试的效率和准确性,节约人力成本。

首先,为实现上述目的,本发明提出一种电子装置,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的接口自动化测试程序,所述接口自动化测试程序被所述处理器执行时实现如下步骤:

a1、接收到接口测试指令后,获取该接口的属性信息;

a2、将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;

a3、根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;

a4,执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。

优选地,在所述步骤a1中,所述获取该接口的属性信息的步骤,包括:

获取所述接口对应的接口数据;

对所述接口数据进行解析,以解析出所述接口的属性信息。

优选地,在所述步骤a2中,所述预先存储的接口文档模板为excel文档,所述excel文档中设置有接口属性信息添加框;所述步骤a2包括:

将所述接口的属性信息对应添加至所述excel文档中设置的添加框,生成所述接口的接口文档。

优选地,在所述步骤a3中,所述预先确定的接口文档与jmeter测试脚本之间对应的转化规则为:

a.将所述接口文档中包含的接口名称转换为所述目标测试脚本的测试案例名称;具体地,各个接口名称分别对应一个测试案例名称;

b.将所述接口文档中的统一资源定位符(接口url)转换为所述jmeter脚本中的“httpsampler.path”;

c.将所述接口文档中的请求方式转换为所述jmeter脚本中的“httpsampler.method”;

d.将所述接口文档中的请求参数转换为所述jmeter脚本中的“argument.value”;

e.将所述接口文档中的输出参数转换为所述jmeter脚本中的“responseassertion”中的关键判断值。

优选地,在所述步骤a1中,所述接口的属性信息包括:接口名称、统一资源定位符、请求参数、请求方式、输出参数。

此外,为了实现上述目的,本发明还提出一种接口自动化测试方法,所述方法包括如下步骤:

s1、接收到接口测试指令后,获取该接口的属性信息;

s2、将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;

s3、根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;

s4、执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。

优选地,在所述步骤s1中,所述获取该接口的属性信息的步骤,包括:

获取所述接口对应的接口数据;

对所述接口数据进行解析,以解析出所述接口的属性信息。

优选地,在所述步骤s2中,所述预先存储的接口文档模板为excel文档,所述excel文档中设置有接口属性信息添加框;所述步骤a2包括:

将所述接口的属性信息对应添加至所述excel文档中设置的添加框,生成所述接口的接口文档。

优选地,在所述步骤s3中,所述预先确定的接口文档与jmeter测试脚本之间对应的转化规则为:

a.将所述接口文档中包含的接口名称转换为所述目标测试脚本的测试案例名称;具体地,各个接口名称分别对应一个测试案例名称;

b.将所述接口文档中的统一资源定位符(接口url)转换为所述jmeter脚本中的“httpsampler.path”;

c.将所述接口文档中的请求方式转换为所述jmeter脚本中的“httpsampler.method”;

d.将所述接口文档中的请求参数转换为所述jmeter脚本中的“argument.value”;

e.将所述接口文档中的输出参数转换为所述jmeter脚本中的“responseassertion”中的关键判断值。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有接口自动化测试程序,所述接口自动化测试程序可被至少一个处理器执行,以使所述至少一个处理器执行如上所述的接口自动化测试方法的步骤。

本发明所提出的电子装置、接口自动化测试方法及存储介质,通过接收到接口测试指令后,获取该接口的属性信息;将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。能够提高接口测试的效率和准确性,节约人力成本。

附图说明

图1是本发明提出的电子装置一可选的硬件架构的示意图;

图2是本发明电子装置一实施例中接口自动化测试的程序模块示意图;

图3是本发明接口自动化测试方法较佳实施例的实施流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明提出的电子装置一可选的硬件架构示意图。本实施例中,电子装置10可包括,但不仅限于,可通过通信总线14相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-14的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,存储器11至少包括一种类型的计算机可读存储介质,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器11可以是电子装置10的内部存储单元,例如电子装置10的硬盘或内存。在另一些实施例中,存储器11也可以是电子装置10的外包存储设备,例如电子装置10上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器11还可以既包括电子装置10的内部存储单元也包括其外包存储设备。本实施例中,存储器11通常用于存储安装于电子装置10的操作系统和各类应用软件,例如接口自动化测试程序等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。处理器12通常用于控制电子装置10的总体操作。本实施例中,处理器12用于运行存储器11中存储的程序代码或者处理数据,例如运行的接口自动化测试程序等。

网络接口13可包括无线网络接口或有线网络接口,网络接口13通常用于在电子装置10与其他电子设备之间建立通信连接。

通信总线14用于实现组件11-13之间的通信连接。

图1仅示出了具有组件11-14以及接口自动化测试的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

可选地,电子装置10还可以包括用户接口(图1中未示出),用户接口可以包括显示器、输入单元比如键盘,其中,用户接口还可以包括标准的有线接口、无线接口等。

可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled触摸器等。进一步地,显示器也可称为显示屏或显示单元,用于显示在电子装置10中处理信息以及用于显示可视化的用户界面。

可选地,在一些实施例中,电子装置10还可以包括音频单元(音频单元图1中未示出),音频单元可以在电子装置10处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将接收的或者存储的音频数据转换为音频信号;进一步地,电子装置10还可以包括音频输出单元,音频输出单元将音频单元转换的音频信号输出,而且音频输出单元还可以提供与电子装置10执行的特定功能相关的音频输出(例如呼叫信号接收声音、消息接收声音等等),音频输出单元可以包括扬声器、蜂鸣器等等。

可选地,在一些实施例中,电子装置10还可以包括警报单元(图中未示出),警报单元可以提供输出已将事件的发生通知给电子装置10。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或者视频输出之外,警报单元可以以不同的方式提供输出以通知事件的发生。例如,警报单元可以以震动的形式提供输出,当接收到呼叫、消息或一些其他可以使电子装置10进入通信模式时,警报单元可以提供触觉输出(即,振动)以将其通知给用户。

在一实施例中,存储器11中存储的接口自动化测试程序被处理器12执行时,实现如下操作:

a1,接收到接口测试指令后,获取该接口的属性信息;

具体地,在本实施例中,所述接口可以为已开发完成的任一应用程序编程接口(applicationprogramminginterface,api),api可以实现同一系统不同功能层之间的相互通信。通常,开发人员可根据实际需求开发各种用于实现不同功能的接口。可以理解的是,开发人员在开发接口(即编写接口程序)时,可以对接口程序进行相应的注解,以为后续根据已注解的接口程序生成相应的接口文档提供基础。在本实施例中,对接口程序进行注解具体包括对接口的属性信息进行标注和解释。接口的属性信息包括但不限于接口的名称、接口的统一资源定位符(uniformresourcelocator,url)、接口的请求参数(requestbody)、接口的请求方式、接口输出参数等。

具体地,所述获取该接口的属性信息的步骤包括:获取所述接口对应的接口数据;对所述接口数据进行解析,以解析出所述接口的属性信息。可以理解的是,开发人员在接口开发过程中,可以根据预设的注解方式对接口程序进行注解。其中,预设的注解方式可以根据实际需求设置,此处不做限制。例如,预设的注解方式可以为hibernatevalidator注解工具,或者,预设的注解方式可以为开发人员自定义的注解方式。在本发明实施例中,接口数据根据已注解的接口程序生成,接口数据用于描述接口的属性信息,且接口数据为预设格式的数据。预设格式可以根据实际需求设置,此处不做限制。例如,预设格式可以为java脚本对象标记(javascriptobjectnotation,json)格式,json格式是轻量级的文本数据交换格式,其使用java脚本语法来描述数据对象,更易理解。进一步地,可以预先通过json解析器将已注解的接口程序转换为相应的json格式的接口数据,并将接口对应的接口数据存储至本地。当接收到接口测试指令后,可以从本地获取所述接口对应的接口数据;对所述接口数据进行解析,以解析出所述接口的属性信息。具体地,根据与接口数据的格式对应的解析方式对接口数据进行解析。例如,若接口数据为json格式的数据,则可以采用json解析器对接口数据进行解析,对接口数据进行解析后即得到所述接口的属性信息。

a2、将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;

具体地,在本实施例中,所述预先存储的接口文档模板可以根据实际需求设置,此处不做限制。例如,所述预先存储的接口文档模板可以为excel文档,所述excel文档中设置有接口名称、接口环境、接口url、接口请求方式、接口请求参数、接口输出参数等接口属性信息添加框,将所述接口的属性信息对应添加至所述excel文档中设置的添加框,生成所述接口的接口文档。

a3、根据预先确定的接口文档与jmeter测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;

具体地,所述预先确定的接口文档与jmeter测试脚本之间对应的转化规则为:

a.将所述接口文档中包含的接口名称转换为所述目标测试脚本的测试案例名称;具体地,各个接口名称分别对应一个测试案例名称;

b.将所述接口文档中的统一资源定位符(接口url)转换为所述jmeter脚本中的“httpsampler.path”;

c.将所述接口文档中的请求方式转换为所述jmeter脚本中的“httpsampler.method”;

d.将所述接口文档中的请求参数转换为所述jmeter脚本中的“argument.value”;

e.将所述接口文档中的输出参数转换为所述jmeter脚本中的“responseassertion”中的关键判断值。

进一步地,若所述接口文档还包括概序部分,则将所述接口文档中的概序部分转化为所述jmeter测试脚本的公共部分;例如:

a.testclass="cookiemanager"testname="httpcookie管理器";

b.testclass="headermanager"testname="http信息头管理器";

c.testclass="loopcontroller"testname="http请求默认值";

进一步地,若所述接口文档中还包括文档名称,则将所述文档名称转化为所述jmeter测试脚本的脚本名称;

进一步地,若所述接口文档中还包括接口环境,则将所述接口环境转换为所述jmeter测试脚本中的“httpsampler.domain”,“httpsampler.port”;

进一步地,若所述接口文档还包括接口说明,则所述接口说明转换为所述jmeter脚本中的“responseassertion”;

a4、执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。

由上述事实施例可知,本发明提出的电子装置,通过接收到接口测试指令后,获取该接口的属性信息;将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。能够提高接口测试的效率和准确性,节约人力成本。

此外,本发明的接口自动化测试依据其各部分所实现的功能不同,可用具有相同功能的程序模块进行描述。请参阅图2所示,是本发明电子装置一实施例中接口自动化测试的程序模块示意图。本实施例中,接口自动化测试依据其各部分所实现的功能的不同,可以被分割成获取模块201、添加模块202、转化模块203以及执行模块204。由上面的描述可知,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述接口自动化测试程序在电子装置10中的执行过程。所述模块201-204所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:

获取模块201用于接收到接口测试指令后,获取该接口的属性信息;

添加模块202用于将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;

转化模块203用于根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;

执行模块204用于执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。

此外,本发明还提出一种接口自动化测试方法,请参阅图3所示,所述接口自动化测试方法包括如下步骤:

s301,接收到接口测试指令后,获取该接口的属性信息;

具体地,在本实施例中,所述接口可以为已开发完成的任一应用程序编程接口(applicationprogramminginterface,api),api可以实现同一系统不同功能层之间的相互通信。通常,开发人员可根据实际需求开发各种用于实现不同功能的接口。可以理解的是,开发人员在开发接口(即编写接口程序)时,可以对接口程序进行相应的注解,以为后续根据已注解的接口程序生成相应的接口文档提供基础。在本实施例中,对接口程序进行注解具体包括对接口的属性信息进行标注和解释。接口的属性信息包括但不限于接口的名称、接口的统一资源定位符(uniformresourcelocator,url)、接口的请求参数(requestbody)、接口的请求方式、接口输出参数等。

具体地,所述获取该接口的属性信息的步骤包括:获取所述接口对应的接口数据;对所述接口数据进行解析,以解析出所述接口的属性信息。可以理解的是,开发人员在接口开发过程中,可以根据预设的注解方式对接口程序进行注解。其中,预设的注解方式可以根据实际需求设置,此处不做限制。例如,预设的注解方式可以为hibernatevalidator注解工具,或者,预设的注解方式可以为开发人员自定义的注解方式。在本发明实施例中,接口数据根据已注解的接口程序生成,接口数据用于描述接口的属性信息,且接口数据为预设格式的数据。预设格式可以根据实际需求设置,此处不做限制。例如,预设格式可以为java脚本对象标记(javascriptobjectnotation,json)格式,json格式是轻量级的文本数据交换格式,其使用java脚本语法来描述数据对象,更易理解。进一步地,可以预先通过json解析器将已注解的接口程序转换为相应的json格式的接口数据,并将接口对应的接口数据存储至本地。当接收到接口测试指令后,可以从本地获取所述接口对应的接口数据;对所述接口数据进行解析,以解析出所述接口的属性信息。具体地,根据与接口数据的格式对应的解析方式对接口数据进行解析。例如,若接口数据为json格式的数据,则可以采用json解析器对接口数据进行解析,对接口数据进行解析后即得到所述接口的属性信息。

s302、将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;

具体地,在本实施例中,所述预先存储的接口文档模板可以根据实际需求设置,此处不做限制。例如,所述预先存储的接口文档模板可以为excel文档,所述excel文档中设置有接口名称、接口环境、接口url、接口请求方式、接口请求参数、接口输出参数等接口属性信息添加框,将所述接口的属性信息对应添加至所述excel文档中设置的添加框,生成所述接口的接口文档。

s303、根据预先确定的接口文档与jmeter测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;

具体地,所述预先确定的接口文档与jmeter测试脚本之间对应的转化规则为:

a.将所述接口文档中包含的接口名称转换为所述目标测试脚本的测试案例名称;具体地,各个接口名称分别对应一个测试案例名称;

b.将所述接口文档中的统一资源定位符(接口url)转换为所述jmeter脚本中的“httpsampler.path”;

c.将所述接口文档中的请求方式转换为所述jmeter脚本中的“httpsampler.method”;

d.将所述接口文档中的请求参数转换为所述jmeter脚本中的“argument.value”;

e.将所述接口文档中的输出参数转换为所述jmeter脚本中的“responseassertion”中的关键判断值。

进一步地,若所述接口文档还包括概序部分,则将所述接口文档中的概序部分转化为所述jmeter测试脚本的公共部分;例如:

a.testclass="cookiemanager"testname="httpcookie管理器";

b.testclass="headermanager"testname="http信息头管理器";

c.testclass="loopcontroller"testname="http请求默认值";

进一步地,若所述接口文档中还包括文档名称,则将所述文档名称转化为所述jmeter测试脚本的脚本名称;

进一步地,若所述接口文档中还包括接口环境,则将所述接口环境转换为所述jmeter测试脚本中的“httpsampler.domain”,“httpsampler.port”;

进一步地,若所述接口文档还包括接口说明,则所述接口说明转换为所述jmeter脚本中的“responseassertion”;

s304、执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。

由上述事实施例可知,本发明提出的接口自动化测试方法,通过接收到接口测试指令后,获取该接口的属性信息;将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。能够提高接口测试的效率和准确性,节约人力成本。

此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有接口自动化测试程序,所述接口自动化测试程序被处理器执行时实现如下操作:

接收到接口测试指令后,获取该接口的属性信息;

将所述接口的属性信息对应添加至预先存储的接口文档模板中,生成所述接口的接口文档;

根据预先确定的接口文档与测试脚本之间对应的转化规则,将所述接口文档中的接口参数转化为对应的jmeter测试脚本;

执行所述jmeter测试脚本并基于所述jmeter测试脚本的执行结果生成测试报告。

本发明计算机可读存储介质的具体实施过程,与上述电子装置以及基于混肴二进制码的图片删除方法的具体实施过程类似,在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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