发明内容
本发明的主要目的在于提供了一种测试数据构造方法、装置、设备及存储介质,旨在解决现有技术中,测试数据生成效率较低,成本较高的技术问题。
为实现上述目的,本发明提供了一种测试数据构造方法,所述方法包括以下步骤:
获取用户输入的数据构造参数,提取所述数据构造参数中包含的目标业务信息和目标节点信息;
响应于用户输入的数据构造指令,根据所述目标业务信息和目标节点信息确定目标数据构造脚本;
运行所述目标数据构造脚本进行测试数据构造,获取构造成功的目标测试数据。
优选地,所述响应于用户输入的数据构造指令,根据所述目标业务信息和目标节点信息确定目标数据构造脚本的步骤包括:
响应于用户输入的数据构造指令,根据所述目标业务信息和所述目标节点信息确定当前查询编号;
在映射关系中查找与所述当前查询编号对应的数据构造脚本,并将查找到的数据构造脚本作为目标数据构造脚本,所述映射关系中存放有查询编号和数据构造脚本之间的对应关系。
优选地,所述响应于用户输入的数据构造指令,根据所述目标业务信息和所述目标节点信息确定当前查询编号的步骤包括:
响应于用户输入的数据构造指令,获取预存的业务流程数据;
根据所述业务流程数据,确定所述目标业务信息对应的业务标识以及所述目标节点信息对应的节点标识;
根据所述业务标识和所述节点标识生成当前查询编号。
优选地,所述业务标识和所述节点标识均为数字代码;
所述根据所述业务标识和所述节点标识生成当前查询编号的步骤包括:
按预设编排顺序,对所述业务标识对应的数字代码和所述节点标识对应的数字代码进行组合,获得当前查询编号。
优选地,所述运行所述目标数据构造脚本进行测试数据构造,获取构造成功的目标测试数据的步骤包括:
运行所述目标数据构造脚本进行测试数据构造;
在测试数据构造成功时,获取构造的目标测试数据并展示预设的构造成功提示。
优选地,所述运行所述目标数据构造脚本进行测试数据构造的步骤之后,所述方法还包括:
在测试数据构造失败时,获取对应的构造失败信息;
根据所述构造失败信息生成数据构造日志文件,并对所述数据构造日志文件进行展示。
优选地,所述根据所述构造失败信息生成数据构造日志文件,并对所述数据构造日志文件进行展示的步骤包括:
根据所述构造失败信息生成数据构造日志文件;
提取所述构造失败信息中的报错关键词,并查找与所述报错关键词对应的报错代码;
根据所述报错代码对所述数据构造日志文件进行标记,并对标记后的数据构造日志文件进行展示。
此外,为实现上述目的,本发明还提出一种测试数据构造装置,所述装置包括:参数获取模块、脚本获取模块和数据构造模块;
所述参数获取模块,用于获取用户输入的数据构造参数,提取所述数据构造参数中包含的目标业务信息和目标节点信息;
所述脚本获取模块,用于响应于用户输入的数据构造指令,根据所述目标业务信息和目标节点信息确定目标数据构造脚本;
所述数据构造模块,用于运行所述目标数据构造脚本进行测试数据构造,获取构造成功的目标测试数据。
此外,为实现上述目的,本发明还提出一种测试数据构造设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的测试数据构造程序,所述测试数据构造程序配置为实现如上文所述的测试数据构造方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有测试数据构造程序,所述测试数据构造程序被处理器执行时实现如上文所述的测试数据构造方法的步骤。
本发明通过获取用户输入的数据构造参数,提取数据构造参数中包含的目标业务信息和目标节点信息;响应于用户输入的数据构造指令,根据目标业务信息和目标节点信息确定目标数据构造脚本;运行目标数据构造脚本进行测试数据构造,然后获取构造成功的目标测试数据,由于只需要获取用户输入的数据构造参数即可调用对应的数据构造脚本实现对目标测试数据快速、准确的构造获取,从而提高了测试数据的生成效率,降低了测试数据的构造成本。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的测试数据构造设备结构示意图。
如图1所示,该测试数据构造设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对测试数据构造设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及测试数据构造程序。
在图1所示的测试数据构造设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明测试数据构造设备中的处理器1001、存储器1005可以设置在测试数据构造设备中,所述测试数据构造设备通过处理器1001调用存储器1005中存储的测试数据构造程序,并执行本发明实施例提供的测试数据构造方法。
本发明实施例提供了一种测试数据构造方法,参照图2,图2为本发明测试数据构造方法第一实施例的流程示意图。
本实施例中,所述方法包括以下步骤:
步骤S10:获取用户输入的数据构造参数,提取所述数据构造参数中包含的目标业务信息和目标节点信息;
需要说明的是,在执行本步骤之前,测试人员需要根据具体的业务需求整理出APP流程逻辑里涉及的具体流程节点并保存。一般情况下,即便是同一个APP中,不同业务类型对应的流程逻辑以及涉及的流程节点都不相同。例如某些金融类APP提供的金融服务(即业务类型)包括i贷、O2O借款、宅e贷、寿险贷等,但不同类型业务对应的业务流程都不相同,因此涉及的流程节点也不相同。如,宅e贷对应的申请流程为:手机申请-自动审批-门店面签-办理抵押-动用/还款,i贷对应的放款流程为:下载APP并注册-发起申请-绑定银行卡-人脸识别-授信成功并放款。
可理解的是,在整理出不同业务对应的业务流程后,为了简化测试数据构造的过程,工作人员可以根据整理出业务流程以及各业务对应的流程节点构建一个万维网(WorldWide Web,web)页面,在构建好的所述web页面中,可供选择的项目选项以及对应的节点选项可设置为可下拉选择项,另外所述web页面还可以设有必填参数的文本输入框以及数据的批量上传选项等,具体的web页面的设计本实施例不加以限制。
应理解的是,本实施例方法的执行主体可以是如个人电脑、笔记本电脑等测试数据构造设备(以下简称终端设备),在进行测试数据构造前,工作人员通过上述终端设备在预先构建的web页面上输入测试数据构造的必填参数,所述必填参数即所述数据构造参数,可包括:业务类型(即目标业务信息)和相应的流程节点(即目标节点信息)等。
在具体实现中,终端设备接收用户基于预置web页面输入的数据构造参数,对所述数据构造参数进行信息提取,获取其中包含的目标业务信息和目标节点信息。
步骤S20:响应于用户输入的数据构造指令,根据所述目标业务信息和目标节点信息确定目标数据构造脚本;
需要说明的是,为了提高测试数据的生成效率,可预先将各业务类型及各流程节点对应的数据构造脚本保存在终端设备中,以节省后续的调用时间。在具体实现中,终端设备响应于用户输入的数据构造指令,根据用户预先输入的数据构造参数中的目标业务信息和目标节点信息确定后续测试数据构造需要调用的脚本,即所述目标数据构造脚本。
步骤S30:运行所述目标数据构造脚本进行测试数据构造,获取构造成功的目标测试数据。
可理解的是,一般情况下应用程序的测试数据中可包括:应用程序引用数据、测试引用数据以及测试专属数据。其中,应用程序引用数据是测试无关数据,但它们是应用程序启动所必需的,这些数据往往是指一些基表和基础数据;而测试引用数据是那些和测试相关,但是对测试行为没有多大影响的数据,测试专属数据则是真正影响测试行为的特征数据。
所以为了使最终构造出的测试数据能够顺利的实现对应用程序的测试。测试人员在编写各类数据构造脚本时,可将测试引用数据和测试专属数据的准备过程分离,分离复用测试引用数据准备,而将测试专属数据保存在目标测试数据中。具体的,测试人员在编写数据构造脚本时可先使用一段公共程序或代码为每个数据构造脚本准备一样的测试引用数据,然后再用更新语句来将测试专属数据导入。这样做的好处在于由于使用更新语句,则最终编写出的数据构造脚本不会受到数据库表结构变化的影响。同时,由于是通过统一测试引用数据准备程序,即便在未来数据表结构发生变更时,测试人员也只需修改统一的测试引用数据准备程序而无需修改所有的测试数据。
在本步骤中,终端设备在确定出所述目标数据构造脚本后,可根据用户输入的所述数据构造参数中的其它数据构造信息运行所述目标数据构造脚本进行测试数据构造,并在构造成功时,获取构造成功的目标测试数据。本实施例测试数据构造设备获取用户输入的数据构造参数,提取数据构造参数中包含的目标业务信息和目标节点信息;响应于用户输入的数据构造指令,根据目标业务信息和目标节点信息确定目标数据构造脚本;运行目标数据构造脚本进行测试数据构造,然后获取构造成功的目标测试数据,由于只需要获取用户输入的数据构造参数即可实现对目标测试数据快速,准确的构造获取,从而提高了测试数据的生成效率,降低了测试数据的构造成本。
参考图3,图3为本发明测试数据构造方法第二实施例的流程示意图。
基于上述第一实施例,本实施例提出的测试数据构造方法中所述步骤S20可具体包括:
步骤S201:响应于用户输入的数据构造指令,根据所述目标业务信息和所述目标节点信息确定当前查询编号;
需要说明的是,在执行本步骤前,测试人员可对不同金融业务的业务类型以及该业务对应的业务流程节点进行自定义标号或编码,例如将i贷对应编号为01,将宅e贷编号为02,将宅e贷中的实名认证节点编号为0201、将宅e贷实名认证中身份证号认证节点编号为020101、将宅e贷实名认证中手机号认证节点编号为020102等。
在本步骤中,所述目标业务信息中可包含有用户选择的业务类型的名称、编号等标识信息,所述目标节点信息中可包含有用户已选择业务类型下,具体业务流程节点的标识信息,以宅e贷实名认证中的身份证号认证为例,则所述目标业务信息可以是02,即宅e贷对应的编号或标识;所述目标业务节点信息可以是0101,即宅e贷业务下实名认证节点中的身份证号认证节点。
在具体实现中,终端设备可根据所述目标业务信息和所述目标节点信息确定当前查询编号,在本实施例中所述当前查询编号的具体获取方式可以是:获取预先存储的业务流程数据;根据所述业务流程数据,确定所述目标业务信息对应的业务标识以及所述目标节点信息对应的节点标识;根据所述业务标识和所述节点标识生成当前查询编号。其中,所述业务流程数据中包含有各业务类型的业务标识信息以及不同流程节点对应的节点标识信息。
进一步地,为了便于终端设备快速确定需要调用的数据构造脚本。本实施例中,所述业务标识和所述节点标识优选为数字代码;相应地,所述当前查询编号的生成方式可以是按预设编排顺序,对所述业务标识对应的数字代码和所述节点标识对应的数字代码进行组合,获得当前查询编号。具体的所述预设编排顺序可以是依据“业务类型-流程节点-流程子节点”的方式来进行,例如:业务类型(宅e贷,对应编号为02)-流程节点(实名认证,对应编号为01)-流程子节点(身份证号认证,对应编号为01)对应的查询编号就可以是020101。
步骤S202:在映射关系中查找与所述当前查询编号对应的数据构造脚本,并将查找到的数据构造脚本作为目标数据构造脚本,所述映射关系中存放有查询编号和数据构造脚本之间的对应关系。
需要说明的是,为了在获取到查询编号后实现对目标数据构造脚本快速准确的获取,可预先建立数据构造脚本与对应查询编号之间的映射关系,并将所述映射关系进行保存。
当然,也可以在数据构造脚本对应的存储路径与查询编号之间建立映射关系,以便于终端设备在获取到与当前查询编号对应的脚本存储路径后,基于该映射关系通过该存储路径去找到相应的数据构造脚本,即所述目标数据构造脚本。
在具体实现中,终端设备在获取到所述当前查询编号后,可在所述映射关系中查找与所述当前查询编号对应的数据构造脚本,并将查找到的数据构造脚本作为目标数据构造脚本,然后根据所述目标数据构造脚本执行接下来的测试数据的构造操作。
本实施例测试数据构造设备根据目标业务信息和目标节点信息确定当前查询编号,在预先建立的映射关系中查找与当前查询编号对应的数据构造脚本,并将查找到的数据构造脚本作为目标数据构造脚本,能够极大的缩短测试数据的构造时长,提高了测试数据的构造效率。
参考图4,图4为本发明测试数据构造方法第三实施例的流程示意图。
基于上述各实施例,本实施例提出的一种测试数据构造方法中,所述步骤S30具体包括以下步骤:
步骤S301:运行所述目标数据构造脚本进行测试数据构造;
在具体实现中,终端设备在确定所述目标数据构造脚本后,会响应于用户输入的数据构造指令,运行所述目标数据构造脚本,开始进行测试数据的构造。
具体的,测试人员可预先将不同业务类型和不同业务节点对应的测试代码分类保存在数据库中,当所述目标数据构造脚本在运行时,可通过调用存储在数据库中的测试代码按照预先设定的构造顺序依次将获取到的测试代码进行组合或合并,获得目标测试数据。
步骤S302:在测试数据构造成功时,获取构造的目标测试数据并展示预设的构造成功提示。
在本步骤中,终端设备根据用户输入的数据构造参数完成目标测试数据的构造时,可在其对应的人机交互界面展示预设的类似于“构造成功”“构造完成”等提示,以告知用户测试数据的构造结果。
步骤S303:在测试数据构造失败时,获取对应的构造失败信息;
当然,若终端设备在进行测试数据的构造过程中出现报错的情况,则表明测试数据构造失败,此时终端设备可保存对应的构造失败信息。
步骤S304:根据所述构造失败信息生成数据构造日志文件,并对所述数据构造日志文件进行展示。
应理解的是,日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。事件日志记录在系统的执行中发生的事件,以便提供可用于理解系统的活动和诊断问题的跟踪。本实施例中所述数据构造日志文件主要用于对终端设备进测试数据构造的操作过程进行记录,以便于测试人员或研发人员后续根据日志文件对测试行为进行优化或完善。
在测试数据构造失败时,终端设备可根据所述构造失败信息生成数据构造日志文件。具体的,终端设备可根据所述构造失败信息生成数据构造日志文件;提取所述构造失败信息中的报错关键词,并查找与所述报错关键词对应的报错代码;根据所述报错代码对所述数据构造日志文件进行标记,并对标记后的数据构造日志文件进行展示。
需要说明的是,所述报错关键词可以是能够表征数据构造失败时的失败或报错原因的特征信息。所述报错代码可以是测试人员根据历史数据构造经验整理出的不同构造失败信息所属的错误类别。
在具体实现中,终端设备可根据构造失败信息生成相应的数据构造日志文件,然后对数据构造日志文件进行展示。
本实施例测试数据构造设备在确定目标数据构造脚本后,运行目标数据构造脚本进行测试数据构造;在测试数据构造成功时,获取构造的目标测试数据并展示预设的构造成功提示;在测试数据构造失败时,获取对应的构造失败信息,根据构造失败信息生成数据构造日志文件,并对数据构造日志文件进行展示,能够更加直观、便捷的显示测试数据的构造结果,方便测试人员根据构造结果及时进行后续相关操作。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有测试数据构造程序,所述测试数据构造程序被处理器执行时实现如上文所述的测试数据构造方法的步骤。
参照图5,图5为本发明测试数据构造装置第一实施例的结构框图。
如图5所示,本发明实施例还提出的测试数据构造装置包括:参数获取模块501、脚本获取模块502和数据构造模块503;
所述参数获取模块501,用于获取用户输入的数据构造参数,提取所述数据构造参数中包含的目标业务信息和目标节点信息;
应理解的是,本实施例中所述测试数据构造装置可以是如个人电脑、笔记本电脑等测试数据构造装置,在进行测试数据构造前,工作人员通可在预先构建的web页面上输入测试数据构造的必填参数,所述必填参数即所述数据构造参数,可包括:业务类型(即目标业务信息)和相应的流程节点(即目标节点信息)等。
在具体实现中,所述参数获取模块501接收用户基于预置web页面输入的数据构造参数,对所述数据构造参数进行信息提取,获取其中包含的目标业务信息和目标节点信息。
所述脚本获取模块502,用于响应于用户输入的数据构造指令,根据所述目标业务信息和目标节点信息确定目标数据构造脚本;
需要说明的是,为了提高测试数据的生成效率,可预先将各业务类型及各流程节点对应的数据构造脚本保存在测试数据构造装置中,以节省后续的调用时间。
在具体实现中,所述脚本获取模块502响应于用户输入的数据构造指令,根据用户预先输入的数据构造参数中的目标业务信息和目标节点信息确定后续测试数据构造需要调用的脚本,即所述目标数据构造脚本。
所述数据构造模块503,用于运行所述目标数据构造脚本进行测试数据构造,获取构造成功的目标测试数据。
所述数据构造模块503在确定出所述目标数据构造脚本后,可根据用户输入的所述数据构造参数中的其它数据构造信息运行所述目标数据构造脚本进行测试数据构造,并在构造成功时,获取构造成功的目标测试数据。
本实施例测试数据构造装置通过获取用户输入的数据构造参数,提取数据构造参数中包含的目标业务信息和目标节点信息;响应于用户输入的数据构造指令,根据目标业务信息和目标节点信息确定目标数据构造脚本;运行目标数据构造脚本进行测试数据构造,然后获取构造成功的目标测试数据,由于只需要获取用户输入的数据构造参数即可实现对目标测试数据快速,准确的构造获取,从而提高了测试数据的生成效率,降低了测试数据的构造成本。
本发明测试数据构造装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。