自动测试的方法、介质、装置和计算设备与流程

文档序号:25957456发布日期:2021-07-20 17:17阅读:112来源:国知局
自动测试的方法、介质、装置和计算设备与流程

本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及自动测试的方法、介质、装置和计算设备。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

以测试对象为服务端为例。目前,相关技术在对服务端进行测试时包括手动测试和自动测试。手动测试中,需要人工手动操作业务页面或使用接口测试工具向服务端的待测接口发送请求,验证服务端的接口的返回值是否符合预期。自动测试将需要发送的请求数据存储在测试工具或测试平台上,使用测试工具或测试平台自动向服务端的接口发起请求,并自动验证返回结果是否符合预期。

手动测试存在着耗时长、待测场景不完整等缺陷。而自动测试所覆盖的待测场景来源于人工逻辑梳理,而人工逻辑梳理可能存在遗漏或者误判,从而无法克服待测场景不完整的缺陷。



技术实现要素:

本发明期望提供一种自动测试的方法和装置。

在本发明实施方式的第一方面中,提供了一种自动测试的方法,可以包括:

确定测试请求中的多个待测接口,以及每个待测接口对应的待测场景;

利用每个待测接口和/或每个待测场景,在已有数据库中查询,以确定已有数据库中未覆盖的待测场景;

生成与未覆盖的待测场景对应的测试用例,测试用例用于执行对未覆盖的待测场景的测试。

在本发明的一个实施例中,所述利用每个所述待测接口和/或每个所述待测场景,在已有数据库中查询,以确定所述已有数据库中未覆盖的待测场景,包括:

获取所述测试请求中的每个所述待测接口的数据,所述待测接口的数据用于表征该待测接口对应的待测场景;

利用所述待测接口的数据在已有数据库中查询,在满足预定条件的情况下,确定已有数据库中未覆盖该待测场景。

在本发明的一个实施例中,在所述待测接口的数据包括资源地址、接口入参名称、接口入参数值中的至少一种的情况下,确定满足所述预定条件,包括:

利用所述资源地址、所述接口入参名称、所述接口入参数值中的至少一种,确定对应待测场景的标识;

利用所述待测场景的标识在已有数据库中查询,在不存在相同标识的情况下,确定满足所述预定条件。

在本发明的一个实施例中,确定满足所述预定条件,还包括:

在所述接口入参名称不属于待测场景区分参数集合的情况下,确定满足所述预定条件;

所述待测场景区分参数集合的确定方式包括:

对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

利用所述历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

在所述出现次数与获取次数的比例超过对应阈值的情况下,将所述相同入参数值对应的接口入参名称确定为所述待测场景区分参数集合中的元素。

在本发明的一个实施例中,确定满足所述预定条件,还包括:

在所述接口入参数值不属于待测场景区分参数集合的情况下,确定为满足预定条件;

所述待测场景区分参数集合的确定包括:

对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

利用所述历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

在所述出现次数与获取次数的比例超过对应阈值的情况下,将所述相同接口入参数值确定为所述待测场景区分参数集合中的元素。

在本发明的一个实施例中,利用每个所述待测接口和/或每个所述待测场景,在已有数据库中查询,以确定所述已有数据库中未覆盖的待测场景,包括:

获取所述测试请求中的每个待测接口的资源地址;

利用每个所述资源地址在已有数据库中查询,在查询结果为已有数据库中不包括所述资源地址的情况下,将与所述资源地址对应的待测接口确定为已有数据库中未覆盖的待测接口;

将所述未覆盖的待测接口对应的待测场景确定为已有数据库中未覆盖的待测场景。

在本发明的一个实施例中,还包括:

获取所述已有数据库中未覆盖的待测接口的相关信息;

利用所述相关信息生成可用于展示的通知内容,在所述相关信息中包含未覆盖的待测接口的责任人信息的情况下,将所述通知内容向所述责任人信息对应的责任人进行展示。

在本发明的一个实施例中,生成与所述未覆盖的待测场景对应的测试用例,包括:

获取过去预定时间中包含对所述未覆盖的待测场景的测试请求;

展示所述测试请求中的候选测试数据,并根据接收到的对所述候选测试数据的选择指令确定目标测试数据;

利用所述目标测试数据生成与所述未覆盖的待测场景对应的测试用例。

在本发明的一个实施例中,根据接收到的对所述候选测试数据的选择指令确定目标测试数据,包括:

在接收到所述选择指令的情况下,显示被选中的所述候选测试数据的扩展入口;

根据所述扩展入口接收的内容,确定被选中的所述候选测试数据的扩展数据;

将所述候选测试数据与所述扩展数据确定为所述目标测试数据。

在本发明的一个实施例中,在待测接口为已有数据库中未覆盖的待测接口的情况下,所述获取过去预定时间中包含所述未覆盖的待测场景对应的测试请求,包括:

获取所述待测接口的配置参数;

利用所述配置参数生成所述待测接口的接口用例;

执行所述接口用例,利用所述待测接口的资源地址获取过去预定时间中包含所述未覆盖的待测场景对应的测试请求;所述待测接口的资源地址是在所述过去预定时间中通过所述测试请求获取的。

在本发明实施方式的第二方面中,提供了一种自动测试的装置,包括:

待测对象确定模块,用于确定测试请求中的多个待测接口,以及每个所述待测接口对应的待测场景;

未覆盖的待测场景确定模块,用于利用每个所述待测接口和/或每个所述待测场景,在已有数据库中查询,以确定所述已有数据库中未覆盖的待测场景;

测试用例生成模块,用于生成与所述未覆盖的待测场景对应的测试用例,所述测试用例用于执行对所述未覆盖的待测场景的测试。

在本发明的一个实施例中,未覆盖的待测场景确定模块,包括:

待测接口的数据获取子模块,用于获取所述测试请求中的每个所述待测接口的数据,所述待测接口的数据用于表征该待测接口对应的待测场景;

未覆盖的待测场景确定执行子模块,用于利用所述待测接口的数据在已有数据库中查询,在满足预定条件的情况下,确定已有数据库中未覆盖该待测场景。

在本发明的一个实施例中,在所述待测接口的数据包括资源地址、接口入参名称、接口入参数值中的至少一种的情况下,所述未覆盖的待测场景确定执行子模块,包括:

标识确定单元,用于利用所述资源地址、所述接口入参名称、所述接口入参数值中的至少一种,确定对应待测场景的标识;

预定条件满足情况确定单元,用于利用所述待测场景的标识在已有数据库中查询,在不存在相同标识的情况下,确定满足所述预定条件。

在本发明的一个实施例中,预定条件满足情况确定单元,还用于:

在所述接口入参名称不属于待测场景区分参数集合的情况下,确定满足所述预定条件;

所述未覆盖的待测场景确定执行子模块还包括:

历史数据获取单元,用于对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

出现次数获取单元,用于利用所述历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

待测场景区分参数集合确定单元,用于在所述出现次数与获取次数的比例超过对应阈值的情况下,将所述相同入参数值对应的接口入参名称确定为所述待测场景区分参数集合中的元素。

在本发明的一个实施例中,预定条件满足情况确定单元,还用于:

在所述接口入参数值不属于待测场景区分参数集合的情况下,确定为满足预定条件;

所述未覆盖的待测场景确定执行子模块还包括:

历史数据获取单元,用于对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

出现次数获取单元,用于利用所述历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

待测场景区分参数集合确定单元,用于在所述出现次数与获取次数的比例超过对应阈值的情况下,将所述相同接口入参数值确定为所述待测场景区分参数集合中的元素。

在本发明的一个实施例中,未覆盖的待测场景确定模块,包括:

资源地址获取子模块,用于获取所述测试请求中的每个待测接口的资源地址;

未覆盖的待测接口确定子模块,用于利用每个所述资源地址在已有数据库中查询,在查询结果为已有数据库中不包括所述资源地址的情况下,将与所述资源地址对应的待测接口确定为已有数据库中未覆盖的待测接口;

未覆盖的待测场景确定执行子模块,用于将所述未覆盖的待测接口对应的待测场景确定为已有数据库中未覆盖的待测场景。

在本发明的一个实施例中,还包括:

相关信息获取模块,用于获取所述已有数据库中未覆盖的待测接口的相关信息;

展示模块,用于利用所述相关信息生成可用于展示的通知内容,在所述相关信息中包含未覆盖的待测接口的责任人信息的情况下,将所述通知内容向所述责任人信息对应的责任人进行展示。

在本发明的一个实施例中,测试用例生成模块,包括:

测试请求获取子模块,用于获取过去预定时间中包含对所述未覆盖的待测场景的测试请求;

目标测试数据确定子模块,用于展示所述测试请求中的候选测试数据,并根据接收到的对所述候选测试数据的选择指令确定目标测试数据;

测试用例生成执行子模块,用于利用所述目标测试数据生成与所述未覆盖的待测场景对应的测试用例。

在本发明的一个实施例中,目标测试数据确定子模块,包括:

扩展入口显示单元,用于在接收到所述选择指令的情况下,显示被选中的所述候选测试数据的扩展入口;

扩展数据确定单元,用于根据所述扩展入口接接收的内容,确定被选中的所述候选测试数据的扩展数据;

目标测试数据确定单元,用于将所述候选测试数据与所述扩展数据确定为所述目标测试数据。

在本发明的一个实施例中,在待测接口为已有数据库中未覆盖的待测接口的情况下,所述测试请求获取子模块,包括:

配置参数获取单元,用于获取所述待测接口的配置参数;

接口用例生成单元,用于利用所述配置参数生成所述待测接口的接口用例;

测试请求获取单元,用于执行所述接口用例,利用所述待测接口的资源地址获取过去预定时间中包含所述未覆盖的待测场景对应的测试请求;所述待测接口的资源地址是在所述过去预定时间中通过所述测试请求获取的。

在本发明实施方式的第三方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述自动测试的方法的步骤。

在本发明实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现自动测试的方法的步骤。

根据本发明实施方式的自动测试的方法和装置,可以提升接口覆盖率,根据测试请求自动找出已有数据库未覆盖的接口,从而节省大量人力,提高效率。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明一实施方式的自动测试的方法实现流程图一;

图2示意性地示出了根据本发明一实施方式的自动测试的方法中,步骤s102的流程图一;

图3示意性地示出了根据本发明一实施方式的自动测试的方法中,确定满足预定条件的流程图一;

图4示意性地示出了根据本发明一实施方式的自动测试的方法中,确定满足预定条件的流程图二;

图5示意性地示出了根据本发明一实施方式的自动测试的方法中,步骤s102的流程图二;

图6示意性地示出了根据本发明一实施方式的自动测试的方法实现流程图二;

图7示意性地示出了根据本发明一实施方式的自动测试的方法中,步骤s103的流程图;

图8示意性地示出了根据本发明一实施方式的自动测试的方法中,展示候选测试数据的示意图;

图9示意性地示出了根据本发明一实施方式的自动测试的方法中,步骤s702的流程图;

图10示意性地示出了根据本发明一实施方式的自动测试的方法中,扩展入口的示意图;

图11示意性地示出了根据本发明一实施方式的自动测试的方法中,步骤s701的流程图;

图12示意性地示出了根据本发明一实施方式的用于自动测试的方法的介质示意图;

图13示意性地示出了根据本发明一实施方式的自动测试的装置结构示意图;

图14示意性地示出了根据本发明一实施方式的计算设备的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种自动测试的方法、介质、装置和计算设备。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,现有的测试技术中,待测场景覆盖不全且测试效率较低。

有鉴于此,本发明提供一种自动测试的方法和装置,根据测试请求确定未覆盖的待测场景,并针对未覆盖的待测场景生成测试用例,由此可以提高效率。更进一步的,可以克服待测场景覆盖不全的缺陷。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

示例性方法

下面参考图1来描述根据本发明示例性实施方式的自动测试的方法。

如图1所示,本发明实施例的自动测试的方法包括以下步骤:

s101:确定测试请求中的多个待测接口,以及每个待测接口对应的待测场景;

s102:利用每个待测接口和/或每个待测场景,在已有数据库中查询,以确定已有数据库中未覆盖的待测场景;

s103:生成与未覆盖的待测场景对应的测试用例,测试用例用于执行对未覆盖的待测场景的测试。

本申请的实施方法可以设置于测试端与被测端之间的测试用例生成平台。测试用例生成平台接收测试端发送的测试请求,一方面将测试请求发送至被测端,并且接收被测端的测试结果,将测试结果反馈至测试端。另一方面,测试用例生成平台对测试请求进行解析,得到解析结果。解析结果中至少包括测试请求中的多个待测接口,以及每个待测接口对应的待测场景。其中,待测接口可以对应不同的业务线。以被测对象为具有社交属性的音乐播放类应用程序为例,业务线可以包括直播、曲库、翻唱等。以待测接口对应的业务线为直播为例,待测场景可以包括用户登录、为主播点赞、将直播进行分享等多个场景。

上述将测试请求进行转发的过程可以通过设置网关实现。

理想情况下,对于每个待测接口以及待测场景,在已有数据库中均已存储有对应的测试用例。针对已有数据库中未覆盖的待测接口或待测场景,可以利用每个待测接口和/或待测场景在已有数据库中查询以进行确定。

对于查询出的已有数据库中未覆盖的待测场景,可以根据该未覆盖的待测场景的相关信息生成通知。将通知以公开展示的形式进行告知。例如,可以告知给相关责任人,从而加速已有数据库中待测场景的覆盖。

另外,测试用例生成平台还可以自动生成测试用例以提高测试效率。

例如,可以通过获取未覆盖的待测接口的配置数据的方式,将未覆盖的待测接口导入测试用例生成平台。在已有数据库覆盖该待测接口的情况下,可以获取测试请求历史数据,提取对该待测接口对应的待测场景。将待测场景对应的测试数据以可供选择的方式进行展示,从而可以使测试人员方便的确定待测场景对应的测试参数。根据接收到的目标测试参数,可以生成与未覆盖的待测场景对应的测试用例。

通过上述过程,可以根据测试请求自动找出已有数据库未覆盖的接口,从而提升接口覆盖率。达到节省人力,提高效率的效果。

如图2所示,在一种可能的实施方式中,步骤s102可以进一步包括以下子步骤:

s201:获取测试请求中的每个待测接口的数据,待测接口的数据用于表征该待测接口对应的待测场景;

s202:利用待测接口的数据在已有数据库中查询,在满足预定条件的情况下,确定已有数据库中未覆盖该待测场景。

一般情况下,测试请求中会包含多个待测接口。对于每个待测接口的数据可以包括统一资源定位符(url,uniformresourcelocator),统一资源定位符中包含的资源地址(path)可以对应待测场景。

另外,每个待测接口的数据还可以包括接口入参名称、接口入参数值等测试参数。仍以直播为例,接口入参名称可以是直播的房间标识、主播的标识、观众的标识等。接口入参数值与接口入参名称相对应,示例性地,房间标识可以是数值1至数值9999中的任意值,对应表示不同主播所在的频道。主播的标识、观众的标识等可以是由字母、数字以及符号等组成的注册号或者用户名等。

利用待测接口的数据,在已有数据库中查询,以确定已有数据库中未覆盖该待测场景。查询结果可以以满足预定条件为准。例如,预定条件可以是在已有数据库中是否存在与待测接口的数据中相同的资源地址。或者,也可以利用接口入参名称、接口入参数值确定是否满足预定条件,具体确定过程将在后文详述。

通过上述过程,可以利用测试请求中的每个待测接口的数据确定已有数据库中未覆盖的待测场景,从而可以确定出未覆盖的待测场景。相对于常规技术,可以自动确定出未覆盖的待测场景,无需人工查找。达到节省人力,提高效率的效果。

如图3所示,在一种可能的实施方式中,在待测接口的数据包括资源地址、接口入参名称、接口入参数值中的至少一种的情况下,确定满足预定条件,可以具体包括:

s301:利用资源地址、接口入参名称、接口入参数值中的至少一种,确定对应待测场景的标识;

s302:利用待测场景的标识在已有数据库中查询,在不存在相同标识的情况下,确定满足预定条件。

可以利用资源地址、接口入参名称、接口入参数值中的至少一种进行计算,以得到对应待测场景的标识。可以利用消息摘要算法(md5,message-digestalgorithm5)、哈希算法等对资源地址、接口入参名称、接口入参数值中的至少一种进行计算。较佳的,可以同时利用资源地址、接口入参名称、接口入参数值进行计算,得到对应待测场景的标识。对应待测场景的标识可以是唯一值。

利用待测场景的标识在已有数据库中查询,在已有数据库中存在该待测场景的标识的情况下,表示该待测场景在已有数据库中已被覆盖。反之,在已有数据库中不存在该待测场景的标识的情况下,可以确定为满足预定条件,即已有数据库中未覆盖该待测场景。

通过上述过程,利用待测接口的数据中的资源地址、接口入参名称、接口入参数值中的至少一种,即可实现对于已有数据库中未覆盖该待测场景的确定。简化了确定流程,提高效率。

在一种可能的实施方式中,确定满足预定条件,还可以包括以下步骤:

在接口入参名称不属于待测场景区分参数集合的情况下,确定满足预定条件;

待测场景区分参数集合的确定方式包括:

对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

利用历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

在出现次数与获取次数的比例超过对应阈值的情况下,将相同入参数值对应的接口入参名称确定为待测场景区分参数集合中的元素。

本步骤可以在前述步骤s302中已有数据库中不存在相同标识的情况下执行。即,在已有数据库中不存在待测场景的标识的情况下,可以进一步通过待测接口的数据中的接口入参名称是否属于待测场景区分参数集合,作为满足预定条件依据。

其中,待测场景区分参数集合可以是预先构建的。例如,测试用例生成平台可以以接收到测试请求为触发条件,或者采用定期轮询等方式,获取每个测试请求中待测接口的数据,以记录每个待测接口对应的资源地址、接口入参名称、接口入参数值。同时,对获取次数进行记录。

对于记录的信息可以进行统计,以分别确定每个待测接口对应的各接口入参名称出现的次数。

计算每个接口入参名称出现的次数与获取次数的比值,在比值高于对应阈值的情况下,可以将对应的接口入参名称作为待测场景区分参数集合中的元素。示例性的,比值阈值可以设定为70%。

在当前实施方式中,设定待测场景区分参数集合的目的包括:通过解析历史数据,可以筛选出被测频率较高的接口入参名称。由于被测频率较高的接口入参名称所对应的测试对象通常存在着较高的重要性。基于此,可以将被测频率较高的接口入参名称确定为待测场景区分参数集合中的元素。

在已有数据库中不存在待测场景的标识的情况下,可以进一步确定待测接口的数据中的接口入参名称是否属于待测场景区分参数集合。在待测接口的数据中的接口入参名称不属于待测场景区分参数集合中的元素的情况下,可以确定为作为满足预定条件。

在一种可能的实施方式中,确定满足预定条件,还可以包括以下步骤:

在接口入参数值不属于待测场景区分参数集合的情况下,确定为满足预定条件;

待测场景区分参数集合的确定包括:

对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

利用历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

在出现次数与获取次数的比例超过对应阈值的情况下,将相同接口入参数值确定为待测场景区分参数集合中的元素。

本步骤可以在已有数据库中不存在相同标识的情况下执行,或者,也可以在待测接口的数据中的接口入参名称不属于待测场景区分参数集合中的元素的情况下执行。

结合图4所示,以上述过程在待测接口的数据中的接口入参名称不属于待测场景区分参数集合中的元素的情况下执行为例进行说明。

首先,利用待测场景的标识在已有数据库中查询,以判断已有数据库中是否存在相同标识。

在存在相同标识的情况下,确定为不满足预定条件。即,已有数据库中已覆盖该待测场景。

在不存在相同标识的情况下,继续判断接口入参名称是否属于待测场景区分参数集合。

在接口入参名称不属于待测场景区分参数集合的情况下,确定满足预定条件。即,已有数据库中未覆盖该待测场景。

在接口入参名称属于待测场景区分参数集合的情况下,继续判断接口入参数值是否属于待测场景区分参数集合。

在接口入参数值不属于待测场景区分参数集合的情况下,确定满足预定条件。即,已有数据库中未覆盖该待测场景。

在接口入参数值属于待测场景区分参数集合的情况下,确定不满足预定条件。即,已有数据库中已覆盖该待测场景。

对于待测场景区分参数集合的构建还可以包括以下过程:

对于待测场景区分参数集合中的接口入参名称,可以获取该接口入参名称对应的接口入参数值。从而将获取到的接口入参数值作为待测场景区分参数集合中的元素。或者,还可以进一步统计不同接口入参数值出现的次数,将重复出现次数较多的接口入参数值作为待测场景区分参数集合中的元素。

通过上述过程,可以利用历史数据构建待测场景区分参数集合,以对覆盖情况进行更细粒度的判别。

如图5所示,在一种可能的实施方式中,步骤s102还可以包括以下步骤:

s501:获取测试请求中的每个待测接口的资源地址;

s502:利用每个资源地址在已有数据库中查询,在查询结果为已有数据库中不包括资源地址的情况下,将与资源地址对应的待测接口确定为已有数据库中未覆盖的待测接口;

s503:将未覆盖的待测接口对应的待测场景确定为已有数据库中未覆盖的待测场景。

待测接口的资源地址可以在待测接口的统一资源定位符中获取。可以直接利用待测接口的资源地址在已有数据库中进行查询。在查询结果为已有数据库中不包括资源地址的情况下,即可将与资源地址对应的待测接口确定为已有数据库中未覆盖的待测接口。

对应的未覆盖的待测接口对应的待测场景确定为已有数据库中未覆盖的待测场景。

通过上述过程,可以利用待测接口的资源地址快速确定已有数据库中未覆盖的待测场景。

如图6所示,在一种可能的实施方式中,还可以包括以下步骤:

s601:获取已有数据库中未覆盖的待测接口的相关信息;

s602:利用相关信息生成可用于展示的通知内容,在相关信息中包含未覆盖的待测接口的责任人信息的情况下,将通知内容向责任人信息对应的责任人进行展示。

未覆盖的待测接口的相关信息可以包括待测接口的名称、待测接口所属的业务线、待测接口所属的应用程序、待测接口所属应用程序的负责人信息以及测试人员信息等。

在确定已有数据库中未覆盖的待测接口的情况下,可以基于未覆盖的待测接口的相关信息生成通知内容。示例性的,可以将已有数据库中未覆盖的待测接口按照责任人进行归类,将相同责任人负责的待测接口生成列表清单。列表清单可以直接进行展示,或压缩后展示下载地址。以供责任人可以获取到已有数据库中未覆盖的待测接口,从而对数据库进行升级更新。

如图7所示,在一种可能的实施方式中,步骤s103可以包括以下步骤:

s701:获取过去预定时间中包含对未覆盖的待测场景的测试请求;

s702:展示测试请求中的候选测试数据,并根据接收到的对候选测试数据的选择指令确定目标测试数据;

s703:利用目标测试数据生成与未覆盖的待测场景对应的测试用例。

当前实施方式可以针对测试用例生成平台已覆盖待测接口,但并未覆盖与待测接口对应的待测场景的情况。基于此,可以通过输入待测接口的资源地址的方式,获取过去预定时间中对待测接口对应的待测场景的测试请求。

结合图8所示,可以将测试请求中的候选测试数据以可供选择的方式进行展示。示例性地,展示内容可以包括接口入参名称(对应图8中的“参数名”),接口入参类型(对应图8中的“类型名称”)以及接口入参的描述信息(对应图8中的“描述”)。

测试人员可以根据实际需求,从候选测试数据中选择目标测试数据。测试用例生成平台根据接收到的指令,确定对应的目标测试数据。根据目标测试数据,利用测试用例模板即可实现对于测试用例的创建。对于创建成功的测试用例,可以标记为新创建的测试用例。对于创建失败的情况,则会标记创建失败。

通过上述过程,可以提升测试用例的创建效率,相比于相关技术需要手动填入不同场景的逐项输入目标测试数据,上述过程可以通过选择的方式确定目标测试数据。

如图9所示,在一种可能的实施方式中,步骤s702可以进一步包括:

s901:在接收到选择指令的情况下,显示被选中的候选测试数据的扩展入口;

s902:根据扩展入口接收的内容,确定被选中的候选测试数据的扩展数据;

s903:将候选测试数据与扩展数据确定为目标测试数据。

结合图10所示的扩展入口示意图,示例性地,以候选测试数据“number”被选中为例。在候选测试数据“number”被选中的情况下,可以将候选测试数据“number”的扩展入口调整为可输入状态。

扩展入口可以用于接收候选测试数据的特殊值或边界值。示例性地,在输入的扩展数据为“-m,+m”的情况下,可以表示被选中的候选测试数据的取值范围可以是-m至+m。扩展入口可以对应图10中的“可膨胀值”,扩展数据为“-m,+m”可以对应图10中的“-2147483648,2147483648”。

在输入的扩展数据为“m”的情况下,可以表示被选中的候选测试数据的特殊值为m。其中,m可以表示任意数值。

在确定扩展数据的情况下,可以同时将候选测试数据与扩展数据确定为目标测试数据。

通过上述过程,可以灵活设置候选测试数据的范围。可以克服候选测试数据不能满足测试需求的缺陷。

如图11所示,在一种可能的实施方式中,在待测接口为已有数据库中未覆盖的待测接口的情况下,步骤s701可以包括:

s1101:获取待测接口的配置参数;

s1102:利用配置参数生成待测接口的接口用例;

s1103:执行接口用例,利用待测接口的资源地址获取过去预定时间中包含未覆盖的待测场景对应的测试请求;待测接口的资源地址是在过去预定时间中通过测试请求获取的。

待测接口的配置参数可以通过用户输入、第三方下载等方式获取。在获取到待测接口的配置参数的情况下,可以将待测接口导入测试用例生成平台,以生成待测接口的接口用例。

执行待测接口的接口用例。将待测接口的资源地址导入,从而可以通过输入待测接口的资源地址的方式,获取过去预定时间中对待测接口的所有待测场景的测试请求。示例性地,过去预定时间可以是过去7天。

通过上述过程,针对已有数据库未覆盖待测接口的情况,可以通过生成接口用例,导入资源地址的方式获取到对应的测试请求。为生成测试用例提供支持。

示例性介质

在介绍了本发明示例性实施方式的方法之后,接下来,参考图12对本发明示例性实施方式的介质进行说明。

在一些可能的实施方式中,本发明的每个方面还可以实现为一种计算机可读介质,其上存储有程序,当所述程序被处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的自动测试的方法中的步骤。

具体地,上述处理器执行上述程序时用于实现如下步骤:确定测试请求中的多个待测接口,以及每个待测接口对应的待测场景;利用每个待测接口和/或每个待测场景,在已有数据库中查询,以确定已有数据库中未覆盖的待测场景;生成与未覆盖的待测场景对应的测试用例,测试用例用于执行对未覆盖的待测场景的测试。

需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图12所示,描述了根据本发明的实施方式的介质120,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序,并可以在设备上运行。然而,本发明不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算设备。

示例性装置

在介绍了本发明示例性实施方式的介质之后,接下来,参考图13对本发明示例性实施方式的装置进行说明。

如图13所示,本发明实施例的自动测试的装置可以包括:

待测对象确定模块131,用于确定测试请求中的多个待测接口,以及每个待测接口对应的待测场景;

未覆盖的待测场景确定模块132,用于利用每个待测接口和/或每个待测场景,在已有数据库中查询,以确定已有数据库中未覆盖的待测场景;

测试用例生成模块133,用于生成与未覆盖的待测场景对应的测试用例,测试用例用于执行对未覆盖的待测场景的测试。

在一种可能的实施方式中,未覆盖的待测场景确定模块132可以包括:

待测接口的数据获取子模块1321,用于获取测试请求中的每个待测接口的数据,待测接口的数据用于表征该待测接口对应的待测场景;

未覆盖的待测场景确定执行子模块1322,用于利用待测接口的数据在已有数据库中查询,在满足预定条件的情况下,确定已有数据库中未覆盖该待测场景。

在一种可能的实施方式中,在待测接口的数据包括资源地址、接口入参名称、接口入参数值中的至少一种的情况下,未覆盖的待测场景确定执行子模块1322可以包括:

标识确定单元13221,用于利用资源地址、接口入参名称、接口入参数值中的至少一种,确定对应待测场景的标识;

预定条件满足情况确定单元13222,用于利用待测场景的标识在已有数据库中查询,在不存在相同标识的情况下,确定满足预定条件。

在一种可能的实施方式中,预定条件满足情况确定单元13222还可以用于:

在接口入参名称不属于待测场景区分参数集合的情况下,确定满足预定条件;

未覆盖的待测场景确定执行子模块1322还可以包括:

历史数据获取单元13223,用于对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

出现次数获取单元13224,用于利用历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

待测场景区分参数集合确定单元13225,用于在出现次数与获取次数的比例超过对应阈值的情况下,将相同入参数值对应的接口入参名称确定为待测场景区分参数集合中的元素。

在一种可能的实施方式中,预定条件满足情况确定单元13222还可以用于:

在接口入参数值不属于待测场景区分参数集合的情况下,确定为满足预定条件;

未覆盖的待测场景确定执行子模块1322还可以包括:

历史数据获取单元13223,用于对于任意待测接口,获取该待测接口的数据中每个接口入参名称对应的接口入参数值的历史数据;

出现次数获取单元13224,用于利用历史数据,获取相同接口入参名称对应的相同接口入参数值的出现次数;

待测场景区分参数集合确定单元13225,用于在出现次数与获取次数的比例超过对应阈值的情况下,将相同接口入参数值确定为待测场景区分参数集合中的元素。

在一种可能的实施方式中,未覆盖的待测场景确定模块132可以包括:

资源地址获取子模块1323,用于获取测试请求中的每个待测接口的资源地址;

未覆盖的待测接口确定子模块1324,用于利用每个资源地址在已有数据库中查询,在查询结果为已有数据库中不包括资源地址的情况下,将与资源地址对应的待测接口确定为已有数据库中未覆盖的待测接口;

未覆盖的待测场景确定执行子模块1322,用于将未覆盖的待测接口对应的待测场景确定为已有数据库中未覆盖的待测场景。

在一种可能的实施方式中,还可以包括:

相关信息获取模块134,用于获取已有数据库中未覆盖的待测接口的相关信息;

展示模块135,用于利用相关信息生成可用于展示的通知内容,在相关信息中包含未覆盖的待测接口的责任人信息的情况下,将通知内容向责任人信息对应的责任人进行展示。

在一种可能的实施方式中,测试用例生成模块133可以包括:

测试请求获取子模块1331,用于获取过去预定时间中包含对未覆盖的待测场景的测试请求;

目标测试数据确定子模块1332,用于展示测试请求中的候选测试数据,并根据接收到的对候选测试数据的选择指令确定目标测试数据;

测试用例生成执行子模块1333,用于利用目标测试数据生成与未覆盖的待测场景对应的测试用例。

在一种可能的实施方式中,目标测试数据确定子模块1332可以包括:

扩展入口显示单元13321,用于在接收到选择指令的情况下,显示被选中的候选测试数据的扩展入口;

扩展数据确定单元13322,用于根据扩展入口接接收的内容,确定被选中的候选测试数据的扩展数据;

目标测试数据确定单元13323,用于将候选测试数据与扩展数据确定为目标测试数据。

在一种可能的实施方式中,在待测接口为已有数据库中未覆盖的待测接口的情况下,测试请求获取子模块1331可以包括:

配置参数获取单元13311,用于获取待测接口的配置参数;

接口用例生成单元13312,用于利用配置参数生成待测接口的接口用例;

测试请求获取单元13313,用于执行接口用例,利用待测接口的资源地址获取过去预定时间中包含未覆盖的待测场景对应的测试请求;待测接口的资源地址是在过去预定时间中通过测试请求获取的。

示例性计算设备

在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图14对本发明示例性实施方式的计算设备进行说明。

所属技术领域的技术人员能够理解,本发明的每个方面可以实现为系统、方法或程序产品。因此,本发明的每个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明实施方式的计算设备可以至少包括至少一个处理单元以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明的各种示例性实施方式的自动测试的方法中的步骤。

下面参照图14来描述根据本发明的这种实施方式的计算设备140。图14显示的计算设备140仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图14所示,计算设备140以通用计算设备的形式表现。计算设备140的组件可以包括但不限于:上述至少一个处理单元1401、上述至少一个存储单元1402,连接不同系统组件(包括处理单元1401和存储单元1402)的总线1403。

总线1403包括数据总线、控制总线和地址总线。

存储单元1402可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)14021和/或高速缓存存储器14022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(rom)14023。

存储单元1402还可以包括具有一组(至少一个)程序模块14024的程序/实用工具14025,这样的程序模块14024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

计算设备140也可以与一个或多个外部设备1404(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口1405进行。并且,计算设备140还可以通过网络适配器1406与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图14所示,网络适配器1406通过总线1403与计算设备140的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备140使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了自动测试的装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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