一种生成测试数据的方法及装置、电子设备
技术领域
本发明涉及软件测试技术领域,特别涉及一种生成测试数据的方法及装置、电子设备。
背景技术
在软件产品发布之前,需要构造大量的测试数据,用于在测试环境对软件产品进行测试,只有通过测试,软件产品才能发布上线。目前,构造测试数据的过程不仅涉及内部多个***的交互,还需要与多个外部关联方进行交互,才能构造一笔完整的数据供测试使用,过程非常复杂。
一款软件产品关联的内部***在业务流程上有相互依赖的关系,流程处于下游的***经常需要流程处于上游的***提供测试数据,以支持下游***的测试,上游***也需要专门安排测试人员支持构造数据。同时,产生业务数据的上游***,在测试某些特定需求时,也需要准备多笔符合条件的数据到某个业务节点进行相应的测试。随着软件产品的业务不断扩展,关联方的数量也在继续增加,同时一些关联方有定制化的流程,进一步提高了构造测试数据的复杂性。因此,为软件产品构造测试数据的复杂性较高。
发明内容
为了解决相关技术中存在的构造测试数据的复杂性较高的问题,本发明提供了一种生成测试数据的方法及装置、电子设备。
本发明实施例第一方面公开了一种生成测试数据的方法,所述方法包括:
获取第一测试环境参数;所述第一测试环境参数包括第一测试需求参数和第一业务流程节点;
将所述第一测试环境参数输入至初始脚本模板;
根据所述第一测试环境参数将所述初始脚本模板调整为第一目标脚本;
将所述第一目标脚本与所述第一测试环境参数对应的第一测试数据库相连接;其中,所述第一测试数据库包括各个所述第一业务流程节点的子数据库;
运行所述第一目标脚本,并调用所述第一测试数据库生成第一目标测试数据。
作为一种可选的实施方式,在本发明实施例第一方面中,在所述运行所述第一目标脚本,并调用所述第一测试数据库生成第一目标测试数据之后,所述方法还包括:
检测测试环境,判断所述测试环境是否发生改变;
如果是,获取第二测试环境参数;所述第二测试环境参数包括第二测试需求参数和第二业务流程节点;
根据所述第二测试环境参数将所述第一目标脚本调整为第二目标脚本;
将所述第二目标脚本与所述第二测试环境参数对应的第二测试数据库相连接;其中,所述第二测试数据库包括各个所述第二业务流程节点的子数据库;
运行所述第二目标脚本,并调用所述第二测试数据库生成第二目标测试数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述根据所述第二测试环境参数将所述第一目标脚本调整为第二目标脚本,包括:
将所述第一测试需求参数和所述第二测试需求参数进行对比,识别出业务流程中的关键变量;
根据所述第一业务流程节点和所述第二业务流程节点确定出节点更改信息;
根据所述关键变量和所述节点更改信息将所述第一目标脚本调整为所述第二目标脚本。
作为一种可选的实施方式,在本发明实施例第一方面中,所述将所述第二目标脚本与所述第二测试环境参数对应的第二测试数据库相连接,包括:
获取用于切换数据库连接的切换指示;
根据所述切换指示创建各个所述第二业务流程节点的子数据库的数据库连接对象;
向各个所述第二业务流程节点的子数据库发送连接请求,并通过各个所述第二业务流程节点的子数据库的数据库连接对象访问对应子数据库,以建立所述第二目标脚本与所述第二测试环境参数对应的第二测试数据库的连接。
作为一种可选的实施方式,在本发明实施例第一方面中,在所述将所述第一目标脚本与所述第一测试环境参数对应的第一测试数据库相连接之后,以及所述运行所述第一目标脚本,并调用所述第一测试数据库生成第一目标测试数据之前,所述方法还包括:
在各个所述第一业务流程节点设置监测点,监测各个所述第一业务流程节点的子数据库;
通过各个所述第一业务流程节点对应的所述监测点获取数据生成信息;所述数据生成信息包括数据生成时间点和数据生成所在的业务流程节点。
作为一种可选的实施方式,在本发明实施例第一方面中,所述运行所述第一目标脚本,并调用所述第一测试数据库生成第一目标测试数据,包括:
检测用户是否输入测试数据;
如果是,接收用户输入的测试数据;
根据所述用户输入的测试数据在所述第一业务流程节点中确定出第一运行开始节点,及确定出所述第一业务流程节点的结束节点,并将所述第一业务流程节点的结束节点作为第一运行结束节点;
基于所述第一运行开始节点和所述第一运行结束节点,运行所述第一目标脚本,并调用所述第一测试数据库生成所述第一目标测试数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
在检测到用户未输入测试数据时,定位到所述第一业务流程节点的开始节点,将所述第一业务流程节点的开始节点作为第二运行开始节点,运行所述第一目标脚本调用所述第二运行开始节点对应的子数据库开始生成子目标测试数据;
检测运行终止指令,所述运行终止指令携带控制所述第一目标脚本终止运行所在的第二运行结束节点;
当所述监测点反馈的节点与所述运行终止指令对应的所述第二运行结束节点相匹配时,控制所述第一目标脚本终止运行,并将所述第二运行开始节点和所述第二运行结束节点之间生成的所有子目标测试数据整合获得所述第一目标测试数据。
本发明实施例第二方面公开了一种生成测试数据的装置,所述装置包括:
第一获取单元,用于获取第一测试环境参数;所述第一测试环境参数包括第一测试需求参数和第一业务流程节点;
输入单元,用于将所述第一测试环境参数输入至初始脚本模板;
第一调整单元,用于根据所述第一测试环境参数将所述初始脚本模板调整为第一目标脚本;
第一连接单元,用于将所述第一目标脚本与所述第一测试环境参数对应的第一测试数据库相连接;其中,所述第一测试数据库包括各个所述第一业务流程节点的子数据库;
第一生成单元,用于运行所述第一目标脚本,并调用所述第一测试数据库生成第一目标测试数据。
本发明实施例第三方面公开了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现本发明实施例第一方面公开的一种生成测试数据的方法。
本发明实施例第四方面公开了一种计算机可读存储介质,其存储计算机程序,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种生成测试数据的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明所提供的一种生成测试数据的方法包括如下步骤:获取第一测试环境参数,第一测试环境参数包括第一测试需求参数和第一业务流程节点;将第一测试环境参数输入至初始脚本模板;根据第一测试环境参数将初始脚本模板调整为第一目标脚本;将第一目标脚本与第一测试环境参数对应的第一测试数据库相连接;其中,第一测试数据库包括各个第一业务流程节点的子数据库;运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据。
此方法下,通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性。另外,通过脚本生成测试数据,能够减少时间和人力成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是本发明实施例公开的一种装置的结构示意图;
图2是本发明实施例公开的一种生成测试数据的方法的流程图;
图3是本发明实施例公开的另一种生成测试数据的方法的流程图;
图4是本发明实施例公开的又一种生成测试数据的方法的流程图;
图5是本发明实施例公开的一种生成测试数据的装置的结构示意图;
图6是本发明实施例公开的另一种生成测试数据的装置的结构示意图;
图7是本发明实施例公开的又一种生成测试数据的装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
实施例一
本发明的实施环境可以是电子设备,例如智能手机、平板电脑、台式电脑。
图1是本发明实施例公开的一种装置的结构示意图。装置100可以是上述电子设备。如图1所示,装置100可以包括以下一个或多个组件:处理组件102,存储器104,电源组件106,多媒体组件108,音频组件110,传感器组件114以及通信组件116。
处理组件102通常控制装置100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件102可以包括一个或多个处理器118来执行指令,以完成下述的方法的全部或部分步骤。此外,处理组件102可以包括一个或多个模块,用于便于处理组件102和其他组件之间的交互。例如,处理组件102可以包括多媒体模块,用于以方便多媒体组件108和处理组件102之间的交互。
存储器104被配置为存储各种类型的数据以支持在装置100的操作。这些数据的示例包括用于在装置100上操作的任何应用程序或方法的指令。存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory,简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。存储器104中还存储有一个或多个模块,用于该一个或多个模块被配置成由该一个或多个处理器118执行,以完成如下所示方法中的全部或者部分步骤。
电源组件106为装置100的各种组件提供电力。电源组件106可以包括电源管理***,一个或多个电源,及其他与为装置100生成、管理和分配电力相关联的组件。
多媒体组件108包括在装置100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(Liquid Crystal Display,简称LCD)和触摸面板。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。屏幕还可以包括有机电致发光显示器(Organic Light Emitting Display,简称OLED)。
音频组件110被配置为输出和/或输入音频信号。例如,音频组件110包括一个麦克风(Microphone,简称MIC),当装置100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器104或经由通信组件116发送。在一些实施例中,音频组件110还包括一个扬声器,用于输出音频信号。
传感器组件114包括一个或多个传感器,用于为装置100提供各个方面的状态评估。例如,传感器组件114可以检测到装置100的打开/关闭状态,组件的相对定位,传感器组件114还可以检测装置100或装置100一个组件的位置改变以及装置100的温度变化。在一些实施例中,该传感器组件114还可以包括磁传感器,压力传感器或温度传感器。
通信组件116被配置为便于装置100和其他设备之间有线或无线方式的通信。装置100可以接入基于通信标准的无线网络,如WiFi(Wireless-Fidelity,无线保真)。在本发明实施例中,通信组件116经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在本发明实施例中,通信组件116还包括近场通信(Near Field Communication,简称NFC)模块,用于以促进短程通信。例如,在NFC模块可基于射频识别(Radio FrequencyIdentification,简称RFID)技术,红外数据协会(Infrared Data Association,简称IrDA)技术,超宽带(Ultra Wideband,简称UWB)技术,蓝牙技术和其他技术来实现。
在示例性实施例中,装置100可以被一个或多个应用专用集成电路(ApplicationSpecific Integrated Circuit,简称ASIC)、数字信号处理器、数字信号处理设备、可编程逻辑器件、现场可编程门阵列、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。
实施例二
请参阅图2,图2是本发明实施例公开的一种生成测试数据的方法的流程示意图。如图2所示该生成测试数据的方法可以包括以下步骤:
201、获取第一测试环境参数;第一测试环境参数包括第一测试需求参数和第一业务流程节点。
本发明实施例中,测试人员根据当前的测试环境信息得到第一测试环境参数,其中,第一测试需求参数反映当前的测试环境信息对应的测试条件,第一业务流程节点表示生成测试数据所涉及的业务流程节点,至少包括开始节点和结束节点。
本发明实施例中,可以对业务流程节点进行分块管理,保持各个业务流程节点的逻辑独立,使得在一个业务流程节点进行操作时,不会影响到另一个业务流程节点。
202、将第一测试环境参数输入至初始脚本模板。
本发明实施例中,初始脚本模板的结构设计可以兼容自动化造数平台,初始脚本模板上传到自动化造数平台之后,可以将第一测试环境参数输入至初始脚本模板,不需要安装测试工具,也不需要熟悉测试工具的使用方法,使得操作更加简便。
203、根据第一测试环境参数将初始脚本模板调整为第一目标脚本。
本发明实施例中,根据第一测试环境参数可以更改初始脚本模板的测试变量,以及更改初始脚本模板关联的业务流程节点,从而可以将初始脚本模板调整为第一目标脚本,实现自动化生成测试数据。
204、将第一目标脚本与第一测试环境参数对应的第一测试数据库相连接;其中,第一测试数据库包括各个第一业务流程节点的子数据库。
本发明实施例中,每一个业务流程节点都有一个子数据库,子数据库中可能存储有用户信息和操作信息,将第一目标脚本与各个第一业务流程节点的子数据库建立连接关系之后,第一目标脚本可以从各个第一业务流程节点的子数据库中提取数据,进而保证提取到的数据的完整性。
作为一种可选的实施方式,将初始脚本模板和***中存在的所有业务流程节点的子数据库进行连接,在初始脚本模板调整为第一目标脚本时,根据第一业务流程节点确定出第一目标脚本在所有业务流程节点中的运行区域,并将第一目标脚本与第一业务流程节点对应的子数据库建立数据通讯连接。实施该实施方式,能够在获得第一目标脚本时,同步与第一业务流程节点对应的子数据库建立数据连接,提高数据提取的可靠性。
205、运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据。
本发明实施例中,第一目标脚本运行时,可以定位到第一业务流程节点的开始节点,调用开始节点对应的子数据库从开始节点开始生成测试数据,一直运行到结束节点时停止运行,可以将开始节点和结束节点之间(包括开始节点和结束节点)符合测试条件的数据全部提取出来,生成大量的测试数据,组成第一目标测试数据。可见,使用第一目标脚本进行造数可以简化操作流程,同时可以自动化地生成大量测试数据,节省生成数据的时间和人力。
举例来说,在对一款贷款产品进行测试时,可以先获取该次测试对应的测试需求参数以及该次测试所涉及的业务流程节点,然后将测试需求参数和所涉及的业务流程节点输入至采用Jmeter测试工具编写的与贷款产品对应的初始脚本模板,即可获得目标脚本,进一步将目标脚本与所涉及的业务流程节点的数据库相连接,运行目标脚本,就可以从各个业务流程节点的数据库提取满足测试条件的目标测试数据,进而可以自动生成大批量的测试数据,为贷款产品的测试提供数据支持,同时简化造数操作,节省造数的时间和人力。
可见,实施图2所描述的方法,能够通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性。
实施例三
请参阅图3,图3是本发明实施例公开的另一种生成测试数据的方法的流程示意图。如图3所示,该生成测试数据的方法可以包括以下步骤:
步骤301~步骤305;其中,针对步骤301~步骤305的描述,请参照实施例二中针对步骤201~步骤205的详细描述,本发明实施例不再赘述。
306、检测测试环境,判断测试环境是否发生改变;如果是,执行步骤307~步骤310;如果否,结束本流程。
本发明实施例中,可以定位到产品测试所处的模块,并根据测试的类型确定出测试环境,从而判断出测试环境是否发生改变,为产品测试提供更有效的测试数据。
作为一种可选的实施方式,可以将目标脚本与需要进行测试的产品进行连接,当检测到用户在产品中的测试操作时,可以检测出测试环境是否发生改变,当测试环境发生改变时,目标脚本根据测试环境的改变进行调整,从而可以生成满足测试环境的测试数据。
307、获取第二测试环境参数;第二测试环境参数包括第二测试需求参数和第二业务流程节点。
308、根据第二测试环境参数将第一目标脚本调整为第二目标脚本。
作为一种可选的实施方式,在执行步骤308时,将第一测试需求参数和第二测试需求参数进行对比,识别出业务流程中的关键变量;
根据第一业务流程节点和第二业务流程节点确定出节点更改信息;
根据关键变量和节点更改信息将第一目标脚本调整为第二目标脚本。
实施上述方法,能够更加准确地根据测试环境调整目标脚本,进而生成大量用于产品测试的数据。
309、将第二目标脚本与第二测试环境参数对应的第二测试数据库相连接;其中,第二测试数据库包括各个第二业务流程节点的子数据库。
作为一种可选的实施方式,在步骤309时,获取用于切换数据库连接的切换指示;
根据切换指示创建各个第二业务流程节点的子数据库的数据库连接对象;
向各个第二业务流程节点的子数据库发送连接请求,并通过各个第二业务流程节点的子数据库的数据库连接对象访问对应子数据库,以建立第二目标脚本与第二测试环境参数对应的第二测试数据库的连接。
实施上述方法,能够将目标脚本与对应的业务流程节点的子数据库进行连接,遍历所有子数据库,避免遗漏任何一个业务流程节点。
310、运行第二目标脚本,并调用第二测试数据库生成第二目标测试数据。
本发明实施例中,在测试环境改变时,获得不同的测试环境参数,然后根据该测试环境参数,调整目标脚本去适应测试环境,然后运行目标脚本从该测试环境参数对应的开始节点出发生成测试数据,一直到结束节点,目标脚本停止运行,可以在开始节点和结束节点之间(包括开始节点和结束节点)生产出大量满足改变后的测试环境的数据,提高生成测试数据的效率。
可见,实施图3所描述的方法,能够通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性;此外,还能够在测试环境改变时,根据改变的测试环境参数调整目标脚本,从而可以生成新的目标测试数据,提高了生成测试数据的稳定性。
实施例四
请参阅图4,图4是本发明实施例公开的又一种生成测试数据的方法的流程示意图。如图4所示该生成测试数据的方法可以包括以下步骤:
步骤401~步骤404;其中,针对步骤401~步骤404的描述,请参照实施例三中针对步骤301~步骤304的详细描述,本发明实施例不再赘述。
405、在各个第一业务流程节点设置监测点,监测各个第一业务流程节点的子数据库。
406、通过各个第一业务流程节点对应的监测点获取数据生成信息;数据生成信息包括数据生成时间点和数据生成所在的业务流程节点。
本发明实施例中,通过在各个第一业务流程节点设置的监测点可以实时追踪数据生成的轨迹,获取数据生成的时间点和数据生成所在的业务流程节点,能够实时监控数据的生成。
407、检测用户是否输入测试数据;如果是,执行步骤408~步骤410;如果否,执行步骤411~步骤413。
408、接收用户输入的测试数据。
409、根据用户输入的测试数据在第一业务流程节点中确定出第一运行开始节点,及确定出第一业务流程节点的结束节点,并将第一业务流程节点的结束节点作为第一运行结束节点。
410、基于第一运行开始节点和第一运行结束节点,运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据。
本发明实施例中,通过用户输入的测试数据重新确定出目标脚本的运行开始节点,从该运行开始节点开始生成数据,在运行到运行结束节点时停止运行,即可生成一笔完整的满足测试环境的数据。
411、定位到第一业务流程节点的开始节点,将第一业务流程节点的开始节点作为第二运行开始节点,运行第一目标脚本调用第二运行开始节点对应的子数据库开始生成子目标测试数据。
412、检测运行终止指令,运行终止指令携带控制第一目标脚本终止运行所在的第二运行结束节点。
413、当监测点反馈的节点与运行终止指令对应的第二运行结束节点相匹配时,控制第一目标脚本终止运行,并将第二运行开始节点和第二运行结束节点之间生成的所有子目标测试数据整合获得第一目标测试数据。
本发明实施例中,在目标脚本从运行开始节点开始生成数据之后,检测到操作人员输入的运行终止指令,从而确定出目标脚本运行的运行结束节点,以及通过监测点检测目标脚本的运行轨迹,在监测点监测到目标脚本运行到运行结束节点时,结束生成数据的操作,能够根据测试需求实时控制目标脚本的运行,提高生成测试数据的效率。
作为一种可选的实施方式,在执行步骤413之后,还可以包括以下步骤:
检测第一目标测试数据是否满足产品测试需求,如果不满足,在测试环境为改变时,输入第一目标测试数据,从而可以确定出第一目标测试数据对应的开始节点和结束节点,运行第一目标脚本生成满足产品测试需求的完整数据。实施该实施方式,可以确保生成的数据满足产品测试需求。
可见,实施图4所描述的方法,能够通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性;此外,还能够在业务流程节点设置检测点,获取测试数据的生成信息,提高了测试数据生成的可靠性。
实施例五
请参阅图5,图5是本发明实施例公开的一种生成测试数据的装置的结构示意图。如图5所示,该生成测试数据的装置可以包括:第一获取单元501、输入单元502、第一调整单元503、第一连接单元504以及第一生成单元505,其中,
第一获取单元501,用于获取第一测试环境参数;第一测试环境参数包括第一测试需求参数和第一业务流程节点。
本发明实施例中,测试人员根据当前的测试环境信息得到第一测试环境参数,其中,第一测试需求参数反映当前的测试环境信息对应的测试条件,第一业务流程节点表示生成测试数据所涉及的业务流程节点,至少包括开始节点和结束节点。
本发明实施例中,可以对业务流程节点进行分块管理,保持各个业务流程节点的逻辑独立,使得在一个业务流程节点进行操作时,不会影响到另一个业务流程节点。
输入单元502,用于将第一测试环境参数输入至初始脚本模板。
本发明实施例中,初始脚本模板的结构设计可以兼容自动化造数平台,初始脚本模板上传到自动化造数平台之后,可以将第一测试环境参数输入至初始脚本模板,不需要安装测试工具,也不需要熟悉测试工具的使用方法,使得操作更加简便。
第一调整单元503,用于根据第一测试环境参数将初始脚本模板调整为第一目标脚本。
本发明实施例中,根据第一测试环境参数可以更改初始脚本模板的测试变量,以及更改初始脚本模板关联的业务流程节点,从而可以将初始脚本模板调整为第一目标脚本,实现自动化生成测试数据。
第一连接单元504,用于将第一目标脚本与第一测试环境参数对应的第一测试数据库相连接;其中,第一测试数据库包括各个第一业务流程节点的子数据库。
本发明实施例中,每一个业务流程节点都有一个子数据库,子数据库中可能存储有用户信息和操作信息,将第一目标脚本与各个第一业务流程节点的子数据库建立连接关系之后,第一目标脚本可以从各个第一业务流程节点的子数据库中提取数据,进而保证提取到的数据的完整性。
作为一种可选的实施方式,第一连接单元504,用于将初始脚本模板和***中存在的所有业务流程节点的子数据库进行连接,在初始脚本模板调整为第一目标脚本时,根据第一业务流程节点确定出第一目标脚本在所有业务流程节点中的运行区域,并将第一目标脚本与第一业务流程节点对应的子数据库建立数据通讯连接。实施该实施方式,能够在获得第一目标脚本时,同步与第一业务流程节点对应的子数据库建立数据连接,提高数据提取的可靠性。
第一生成单元505,用于运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据。
本发明实施例中,第一目标脚本运行时,可以定位到第一业务流程节点的开始节点,调用开始节点对应的子数据库从开始节点开始生成测试数据,一直运行到结束节点时停止运行,可以将开始节点和结束节点之间(包括开始节点和结束节点)符合测试条件的数据全部提取出来,生成大量的测试数据,组成第一目标测试数据。可见,使用第一目标脚本进行造数可以简化操作流程,同时可以自动化地生成大量测试数据,节省生成数据的时间和人力。
举例来说,在对一款贷款产品进行测试时,可以先获取该次测试对应的测试需求参数以及该次测试所涉及的业务流程节点,然后将测试需求参数和所涉及的业务流程节点输入至采用Jmeter测试工具编写的与贷款产品对应的初始脚本模板,即可获得目标脚本,进一步将目标脚本与所涉及的业务流程节点的数据库相连接,运行目标脚本,就可以从各个业务流程节点的数据库提取满足测试条件的目标测试数据,进而可以自动生成大批量的测试数据,为贷款产品的测试提供数据支持,同时简化造数操作,节省造数的时间和人力。
可见,实施图5所描述的生成测试数据的装置,能够通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性。
实施例六
请参阅图6,图6是本发明实施例公开的另一种生成测试数据的装置的结构示意图。图6所示的生成测试数据的装置是由图5所示的生成测试数据的装置进行优化得到的。与图5所示的生成测试数据的装置相比较,图6所示的装置还可以包括:检测单元506、第二获取单元507、第二调整单元508、第二连接单元509以及第二生成单元510,其中,
检测单元506,用于检测测试环境,判断测试环境是否发生改变。
本发明实施例中,可以定位到产品测试所处的模块,并根据测试的类型确定出测试环境,从而判断出测试环境是否发生改变,为产品测试提供更有效的测试数据。
作为一种可选的实施方式,检测单元506,用于将目标脚本与需要进行测试的产品进行连接,当检测到用户在产品中的测试操作时,可以检测出测试环境是否发生改变,当测试环境发生改变时,目标脚本根据测试环境的改变进行调整,从而可以生成满足测试环境的测试数据。
第二获取单元507,用于测试环境发生改变时,获取第二测试环境参数;第二测试环境参数包括第二测试需求参数和第二业务流程节点;
第二调整单元508,用于根据第二测试环境参数将第一目标脚本调整为第二目标脚本。
作为一种可选的实施方式,第二调整单元508用于根据第二测试环境参数将第一目标脚本调整为第二目标脚本的方式具体为:
第二调整单元508,用于将第一测试需求参数和第二测试需求参数进行对比,识别出业务流程中的关键变量;根据第一业务流程节点和第二业务流程节点确定出节点更改信息;根据关键变量和节点更改信息将第一目标脚本调整为第二目标脚本;能够更加准确地根据测试环境调整目标脚本,进而生成大量用于产品测试的数据。
第二连接单元509,用于将第二目标脚本与第二测试环境参数对应的第二测试数据库相连接;其中,第二测试数据库包括各个第二业务流程节点的子数据库。
作为一种可选的实施方式,第二连接单元509用于将第二目标脚本与第二测试环境参数对应的第二测试数据库相连接的方式具体为:
第二连接单元509,用于获取用于切换数据库连接的切换指示;根据切换指示创建各个第二业务流程节点的子数据库的数据库连接对象;向各个第二业务流程节点的子数据库发送连接请求,并通过各个第二业务流程节点的子数据库的数据库连接对象访问对应子数据库,以建立第二目标脚本与第二测试环境参数对应的第二测试数据库的连接;能够将目标脚本与对应的业务流程节点的子数据库进行连接,遍历所有子数据库,避免遗漏任何一个业务流程节点。
第二生成单元510,用于运行第二目标脚本,并调用第二测试数据库生成第二目标测试数据。
本发明实施例中,在测试环境改变时,获得不同的测试环境参数,然后根据该测试环境参数,调整目标脚本去适应测试环境,然后运行目标脚本从该测试环境参数对应的开始节点出发生成测试数据,一直到结束节点,目标脚本停止运行,可以在开始节点和结束节点之间(包括开始节点和结束节点)生产出大量满足改变后的测试环境的数据,提高生成测试数据的效率。
可见,实施图6所描述的生成测试数据的装置,能够通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性;此外,还能够在测试环境改变时,根据改变的测试环境参数调整目标脚本,从而可以生成新的目标测试数据,提高了生成测试数据的稳定性。
实施例七
请参阅图7,图7是本发明实施例公开的又一种生成测试数据的装置的结构示意图。图7所示的生成测试数据的装置是由图6所示的生成测试数据的装置进行优化得到的。与图6所示的生成测试数据的装置相比较,图7所示的装置还可以包括:监测单元511以及第三获取单元512,其中,
监测单元511,用于在各个第一业务流程节点设置监测点,监测各个第一业务流程节点的子数据库;
第三获取单元512,用于通过各个第一业务流程节点对应的监测点获取数据生成信息;数据生成信息包括数据生成时间点和数据生成所在的业务流程节点。
本发明实施例中,通过在各个第一业务流程节点设置的监测点可以实时追踪数据生成的轨迹,获取数据生成的时间点和数据生成所在的业务流程节点,能够实时监控数据的生成。
作为一种可选的实施方式,第一生成单元505用于运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据的方式具体为:
第一生成单元505,用于检测用户是否输入测试数据;如果是,接收用户输入的测试数据;根据用户输入的测试数据在第一业务流程节点中确定出第一运行开始节点,及确定出第一业务流程节点的结束节点,并将第一业务流程节点的结束节点作为第一运行结束节点;基于第一运行开始节点和第一运行结束节点,运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据。
本发明实施例中,通过用户输入的测试数据重新确定出目标脚本的运行开始节点,从该运行开始节点开始生成数据,在运行到运行结束节点时停止运行,即可生成一笔完整的满足测试环境的数据。
作为另一种可选的实施方式,第一生成单元505用于运行第一目标脚本,并调用第一测试数据库生成第一目标测试数据的方式具体为:
第一生成单元505,用于在检测到用户未输入测试数据时,定位到第一业务流程节点的开始节点,将第一业务流程节点的开始节点作为第二运行开始节点,运行第一目标脚本调用第二运行开始节点对应的子数据库开始生成子目标测试数据;检测运行终止指令,运行终止指令携带控制第一目标脚本终止运行所在的第二运行结束节点;当监测点反馈的节点与运行终止指令对应的第二运行结束节点相匹配时,控制第一目标脚本终止运行,并将第二运行开始节点和第二运行结束节点之间生成的所有子目标测试数据整合获得第一目标测试数据。
本发明实施例中,在目标脚本从运行开始节点开始生成数据之后,检测到操作人员输入的运行终止指令,从而确定出目标脚本运行的运行结束节点,以及通过监测点检测目标脚本的运行轨迹,在监测点监测到目标脚本运行到运行结束节点时,结束生成数据的操作,能够根据测试需求实时控制目标脚本的运行,提高生成测试数据的效率。
作为一种可选的实施方式,第一生成单元505,用于检测第一目标测试数据是否满足产品测试需求,如果不满足,在测试环境为改变时,输入第一目标测试数据,从而可以确定出第一目标测试数据对应的开始节点和结束节点,运行第一目标脚本生成满足产品测试需求的完整数据。实施该实施方式,可以确保生成的数据满足产品测试需求。
可见,实施图7所描述的生成测试数据的装置,能够通过获取到的测试环境参数将初始脚本模板调整为目标脚本,在将目标脚本与测试环境参数对应的测试数据库连接之后,通过在目标脚本运行的过程中调用测试数据库生成目标测试数据,可以实现大量生成测试数据,无需再通过多方交互构造测试数据,能够降低构造测试数据的复杂性;此外,还能够在业务流程节点设置检测点,获取测试数据的生成信息,提高了测试数据生成的可靠性。
本发明还提供一种电子设备,该电子设备包括:
处理器;
存储器,该存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时,实现如前所示的一种生成测试数据的方法。
该电子设备可以是图1所示装置100。
在一示例性实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如前所示的一种生成测试数据的方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。