CN113051178A - 测试数据构造方法、装置、设备及介质 - Google Patents
测试数据构造方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113051178A CN113051178A CN202110432138.9A CN202110432138A CN113051178A CN 113051178 A CN113051178 A CN 113051178A CN 202110432138 A CN202110432138 A CN 202110432138A CN 113051178 A CN113051178 A CN 113051178A
- Authority
- CN
- China
- Prior art keywords
- data
- test data
- fields
- tables
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 186
- 238000010276 construction Methods 0.000 title claims abstract description 75
- 230000006870 function Effects 0.000 claims abstract description 127
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000003780 insertion Methods 0.000 claims abstract description 22
- 230000037431 insertion Effects 0.000 claims abstract description 22
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000004088 simulation Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 11
- 238000013522 software testing Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000007474 system interaction Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种测试数据构造方法、装置、设备及介质,该方法包括:当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表;通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。因此,采用本申请实施例,软件测试过程中可以提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种测试数据构造方法、装置、设备及介质。
背景技术
软件测试是一种通过对比实际功能节点下输出的字段以及效果与预期输出的字段和效果之间的差异,来鉴定软件的正确性、完整性、安全性和质量的过程,软件测试过程中有些功能节点需要相应的数据进行测试,然而由于系统刚开发完成,数据库还未能保存足量的数据用来进行功能节点的测试,此时需要测试工程师构造出测试数据。
在现有技术中,当对功能节点构造测试数据时,通常需要测试工程师在测试的功能节点对应的数据库的数据表中添加数据,添加数据后进行功能节点的测试工作,由于软件系统中待测试的功能节点非常庞大,针对庞大的功能节点逐一添加数据进行测试时需要花费大量的时间和精力,从而提升了软件测试的测试时间,降低了系统中功能节点的测试效率,提升了功能节点测试的错误率。
发明内容
基于此,有必要针对测试效率低下,数据构造困难的问题,提供一种测试数据构造方法、装置、设备及介质。
一种测试数据构造方法,方法包括:当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表;通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。
在其中一个实施例中,当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;之前,还包括:获取待测试软件中的非工作流功能节点集合;划分出非工作流功能节点集合中各工作流功能节点对应的系统链路;基于系统链路设置标记字段,并将标记字段保存;针对保存的每个标记字段设置监听器;其中,监听器为具备监听功能的代码片段。
在其中一个实施例中,基于系统链路设置标记字段,并将标记字段保存,包括:获取系统链路中的中间层系统;加载中间层系统对应的源码文件;定位源码文件中包含的插入数据表操作的函数集合;针对插入数据表操作的函数集合中的每个插入数据表操作的函数设定标记字段;将设定的标记字段保存至每个插入数据表操作的函数所操作的数据表中。
在其中一个实施例中,生成目标测试数据之后,还包括:统计目标测试数据的数量;当目标测试数据的数量大于等于预设阈值时,针对待测试软件进行测试;或者,当目标测试数据的数量小于预设阈值时,继续执行根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表的步骤,直到目标测试数据的数量大于等于预设阈值时停止执行。
在其中一个实施例中,方法还包括:当替换字段后的多个数据表中的字段对象无法构造数据时,采用Mock技术针对无法构造数据的字段对象创建虚拟对象;将无法构造数据的字段对象替换为创建的虚拟对象;基于虚拟对象调用预设模拟接口返回数据。
在其中一个实施例中,按照以下步骤生成预设阈值,包括:获取待测试软件对应的历史平均测试数据的数量;将历史平均测试数据的数量和预设倍数相乘,生成目标数量;将目标数量确定为预设阈值。
在其中一个实施例中,获取待测试软件中的非工作流功能节点集合,包括:抽取待测试软件中的流节点,生成流节点集合;创建第一缓存集合和第二缓存集合;将流节点集合中的每个流节点进行识别,生成识别结果;当识别结果显示为工作流时,将结果显示为工作流的流节点输入第一缓存集合进行缓存;或者,当识别结果显示为非工作流时,将结果显示为非工作流的流节点输入第二缓存集合进行缓存;将缓存后的第二缓存集合确定为非工作流功能节点集合。
一种测试数据构造装置,装置包括:数据表收集模块,用于当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;数据表拷贝模块,用于根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表;字段替换模块,用于通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;测试数据生成模块,用于针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。
一种设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述测试数据构造方法的步骤。
一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述测试数据构造方法的步骤。
上述测试数据构造方法、装置、设备和介质,测试数据构造装置首先当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址,再将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表,然后通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数以及节点扭转函数后,生成目标测试数据。由于本方案根据初始化的设置了监听器的标记字段实时收集数据表,再针对收集的数据表自动执行预设数据插入函数以得到每个功能节点足够的测试数据,从而提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率,保证了项目上线时的高效运行。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请一个实施例中提供的测试数据构造方法的实施环境图;
图2为本申请一个实施例中设备的内部结构示意图;
图3为本申请一个实施例中提供的测试数据构造方法的方法示意图;
图4为本申请一个实施例中提供的测试数据构造过程的过程示意图;
图5为本申请另一个实施例中提供的测试数据构造方法的方法示意图;
图6是本申请实施例提供的一种测试数据构造装置的装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中提供的测试数据构造方法的实施环境图,如图1所示,在该实施环境中,包括设备110以及客户端120。
设备110可以为服务器设备,例如为保存待测试软件系统对应数据库的服务器设备、还可以是用来缓存待测试软件系统中的非工作流功能节点的服务器设备。客户端120上安装有待测试的软件系统和测试数据构造工具,当需要进行软件测试时,客户端120首先根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;客户端120上的软件测试工具然后连接设备110上的待测试软件对应的数据库,客户端120根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表,客户端120通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,客户端120最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。
需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。设备110以及客户端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2为一个实施例中设备的内部结构示意图。如图2所示,该设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种测试数据构造方法。该设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种测试数据构造方法。该设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。
下面将结合附图3-附图5,对本申请实施例提供的测试数据构造方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的测试数据构造装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图3,为本申请实施例提供了一种测试数据构造方法的流程示意图。
如图3所示,本申请实施例的方法可以包括以下步骤:
S101,当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;
S102,根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;
通常,在测试数据构造之前,还需要找出非工作流的标记字段设置监听器。
在本申请实施例中,在设置监听器时,首先获取待测试软件中的非工作流功能节点集合,再划分出非工作流功能节点集合中各工作流功能节点对应的系统链路,然后基于系统链路设置标记字段,并将标记字段保存,最后针对保存的每个标记字段设置监听器;其中,监听器为具备监听功能的代码片段;其中,监听器为具备监听功能的代码片段。
具体的,在获取待测试软件中的非工作流功能节点集合时,首先抽取待测试软件中的流节点,生成流节点集合,再创建第一缓存集合和第二缓存集合,然后将流节点集合中的每个流节点进行识别,生成识别结果,再当识别结果显示为工作流时,将结果显示为工作流的流节点输入第一缓存集合进行缓存;或者,当识别结果显示为非工作流时,将结果显示为非工作流的流节点输入第二缓存集合进行缓存,最后将缓存后的第二缓存集合确定为非工作流功能节点集合。
具体的,在基于系统链路设置标记字段,并将标记字段保存时,首先获取系统链路中的中间层系统,再加载中间层系统对应的源码文件,然后定位源码文件中包含的插入数据表操作的函数集合,再针对插入数据表操作的函数集合中的每个插入数据表操作的函数设定标记字段,最后将设定的标记字段保存至每个插入数据表操作的函数所操作的数据表中。
进一步地,在设置监听器后,当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址。
本申请中“标记字段”的用法:
举个例子:贷款系统非常多,异常复杂,比如有个流程有18个节点,在第一个节点与第二个节点之间的数据库落表、系统交互逻辑与第二个节点与第三个节点数据库落表、系统交互逻辑是不一样的,标记这些首先是为了区分不同节点流程插入的表格标记,没有这些标记,根本无法知道哪些节点要插入哪些表格。
需要说明的是,工作流节点因为涉及流程状态翻转,此部分依然依赖接口自动化提交测试数据。而针对非工作流功能节点就可以完全依赖自动化插表造数。插表指插数据库中的数据表,数据表中记录测试数据,造数是指根据业务流程构造的测试数据。自动化插表造数:指数据库SQL(结构化查询函数)脚本插入。
如图4所示,测试数据构造的业务流程可以比作一根绳子,节点N就是绳子上打结的点,业务流程从绳子头开始走,再没有遇到节点前就是使用本申请中的方法步骤执行插入数据的sql语句构造测试数据插入数据库中的数据表,在遇到节点的时候就用自动化调用接口进行数据构造,构造结束后就让工作流扭转到下一个节点流程,以此类推,直到全部节点流程构造结束后生成最终的测试数据。
S103,将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表;
通常,再监听到多个数据表后,测试工程师构造测试数据时为了不让项目运行环境中的数据库掺杂构造的虚拟数据,因此需要将监听到的多个数据表进行拷贝,然后在拷贝的数据表中插入数据进行测试。
在一种可能的实现方式中,基于步骤S101监听到多个数据表后,监听到的数据表是非工作流功能节点直接调用的系统链路中的中间层系统,需要针对监听到的多个数据表进行拷贝,进行拷贝时,首先抽取监听到的多个表中的字段标识,然后将抽取的多个表中的字段标识输入数据结构模拟算法中,模拟数据表的结构,最后基于该结构生成新的数据表进行输出。
例如,直接调用的系统链路,一般只需要三到四层为佳,如H5→CSP→X,其中X可为APS,CIS,MS,YXD-CORE等等。这是平安普惠APP的一些核心系统,这方法其实不仅仅局限于普惠这边的应用,还可以适用于其他的一些web与app,其中,H5:可以理解为app的页面UI,用户可以看到的;CSP:这是H5页面交互的中台系统,负责把页面交互所用的字段传输给下游系统;APS:这个负责与其他下游系统交互的大后台;CIS:这个跟客户信息有关系的系统;MS:这个跟销售端app交互的一个系统;YXD-CORE:负责金额计算的系统。这里指系统与系统之间的调用链路,比如一个页面需要展示,那里面的一些参数是由A系统调用B系统,而B系统调用C系统去获取的。
S104,通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;
在一种可能的实现方式中,在进行替换时,首先从拷贝后的每个数据表中确定出表中唯一标识的字段,然后获取预先设定的字段标识,最后用预先设定的字段标识替换掉拷贝多张表中的唯一标识字段。
S105,针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。
在一种可能的实现方式中,将标记收集到的数据表,进行深拷贝,之后替换掉其中唯一标识的字段如手机号、身份证、姓名、申请号、作业号等。先进行第一个标记值数据表插入,之后调用登录接口获取Token,然后调用工作流接口进行节点扭转,然后进行第二个标记值数据表插入,依次类推,直到达到测试要求节点的测试数据。其中,Token是服务端生成的一串字符串,以作为客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
需要说明的是,当替换字段后的多个数据表中的字段对象无法构造数据时,采用Mock技术针对无法构造数据的字段对象创建虚拟对象,将无法构造数据的字段对象替换为创建的虚拟对象,基于虚拟对象调用预设模拟接口返回数据。
具体的,在软件测试过程中,对于一些不容易构造、获取的对象,用一个虚拟的对象来替代它,以达到相同的效果,这个虚拟的对象就是Mock。例如,用mock技术先调用一个虚拟的接口,模拟接口返回的数据。
进一步地,在生成测试数据后,首先统计目标测试数据的数量,然后当目标测试数据的数量大于等于预设阈值时,针对待测试软件进行测试;或者,当目标测试数据的数量小于预设阈值时,继续执行将收集到的多个数据表进行拷贝的步骤,直到目标测试数据的数量大于等于预设阈值时停止执行。
此时造数已经完成,不过为了防止提交扭转接口或数据库问题,造数可能为失败,需要用到断点续造的功能,方案如下,新增查询接口,查询当前数据的节点以及监听所落的数据表,与之前模板落表进行比对差分,取剩余的数据表继续完成插表与工作流扭转提交操作直到造数完毕。
本申请原理简单,使用方便,可适合web,移动端android,ios,只需要接口自动化脚本跑一笔模板数据,剩下的直接通过插表操作。即可实现当前版本所有数据造数操作。可最快的方式实现造数操作,从15min降低到3min,极大提高造数效率,一笔数据几乎不依赖多个系统间的耦合。测试过程中特殊数据通过这种方式不会那么容易浪费,从而有更多时间对测试场景深入研究,提高测试的质量。
在本申请实施例中,测试数据构造装置首先当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址,再将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表,然后通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数以及节点扭转函数后,生成目标测试数据。由于本方案根据初始化的设置了监听器的标记字段实时收集数据表,再针对收集的数据表自动执行预设数据插入函数以得到每个功能节点足够的测试数据,从而提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率,保证了项目上线时的高效运行。
为了便于理解本申请实施例提供的测试数据构造方法,下面结合附图5进行说明。如图5所示,一种测试数据构造方法,包括:
S201,获取待测试软件中的非工作流功能节点集合;
S202,划分出非工作流功能节点集合中各工作流功能节点对应的系统链路;
S203,获取系统链路中的中间层系统;
S204,加载中间层系统对应的源码文件;
S205,定位源码文件中包含的插入数据表操作的函数集合;
S206,针对插入数据表操作的函数集合中的每个插入数据表操作的函数设定标记字段;
S207,将设定的标记字段保存至每个插入数据表操作的函数所操作的数据表中;
S208,针对保存的每个标记字段设置监听器;其中,监听器为具备监听功能的代码片段;其中,监听器为具备监听功能的代码片段;
S209,当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;
S210,根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;
S211,将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表;
S212,通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;
S213,针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据;
S214,统计目标测试数据的数量,当目标测试数据的数量大于等于预设阈值时,针对待测试软件进行测试。
在本申请实施例中,测试数据构造装置首先当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址,再将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表,然后通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数以及节点扭转函数后,生成目标测试数据。由于本方案根据初始化的设置了监听器的标记字段实时收集数据表,再针对收集的数据表自动执行预设数据插入函数以得到每个功能节点足够的测试数据,从而提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率,保证了项目上线时的高效运行。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图6,其示出了本发明一个示例性实施例提供的测试数据构造装置的结构示意图,应用于服务器。该测试数据构造系统可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该装置1包括数据表收集模块10、数据表拷贝模块20、字段替换模块30、测试数据生成模块40。
数据表收集模块10,用于当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;
数据表拷贝模块20,用于将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表;
字段替换模块30,用于通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;
测试数据生成模块40,用于针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,测试数据构造装置首先当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址,再将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表,然后通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数以及节点扭转函数后,生成目标测试数据。由于本方案根据初始化的设置了监听器的标记字段实时收集数据表,再针对收集的数据表自动执行预设数据插入函数以得到每个功能节点足够的测试数据,从而提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率,保证了项目上线时的高效运行。
在一个实施例中,提出了一种设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表;通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据。
在一个实施例中,处理器执行当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;之前时,还执行以下操作:获取待测试软件中的非工作流功能节点集合;划分出非工作流功能节点集合中各工作流功能节点对应的系统链路;基于系统链路设置标记字段,并将标记字段保存;针对保存的每个标记字段设置监听器;其中,监听器为具备监听功能的代码片段。
在一个实施例中,处理器执行基于系统链路设置标记字段,并将标记字段保存时,具体执行以下操作:获取系统链路中的中间层系统;加载中间层系统对应的源码文件;定位源码文件中包含的插入数据表操作的函数集合;针对插入数据表操作的函数集合中的每个插入数据表操作的函数设定标记字段;将设定的标记字段保存至每个插入数据表操作的函数所操作的数据表中。
在一个实施例中,处理器执行生成目标测试数据之后时,还执行以下操作:统计目标测试数据的数量;当目标测试数据的数量大于等于预设阈值时,针对待测试软件进行测试;或者,当目标测试数据的数量小于预设阈值时,继续执行根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表的步骤,直到目标测试数据的数量大于等于预设阈值时停止执行。
在一个实施例中,处理器还执行以下操作:当替换字段后的多个数据表中的字段对象无法构造数据时,采用Mock技术针对无法构造数据的字段对象创建虚拟对象;将无法构造数据的字段对象替换为创建的虚拟对象;基于虚拟对象调用预设模拟接口返回数据。
在一个实施例中,处理器执行获取待测试软件中的非工作流功能节点集合时,具体执行以下操作:抽取待测试软件中的流节点,生成流节点集合;创建第一缓存集合和第二缓存集合;将流节点集合中的每个流节点进行识别,生成识别结果;当识别结果显示为工作流时,将结果显示为工作流的流节点输入第一缓存集合进行缓存;或者,当识别结果显示为非工作流时,将结果显示为非工作流的流节点输入第二缓存集合进行缓存;将缓存后的第二缓存集合确定为非工作流功能节点集合。
在本申请实施例中,测试数据构造装置首先当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址,再将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表,然后通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数以及节点扭转函数后,生成目标测试数据。由于本方案根据初始化的设置了监听器的标记字段实时收集数据表,再针对收集的数据表自动执行预设数据插入函数以得到每个功能节点足够的测试数据,从而提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率,保证了项目上线时的高效运行。
在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取待测试软件中的非工作流功能节点集合;划分出非工作流功能节点集合中各工作流功能节点对应的系统链路;基于系统链路设置标记字段,并将标记字段保存;针对保存的每个标记字段设置监听器;其中,监听器为具备监听功能的代码片段。
在一个实施例中,处理器执行基于系统链路设置标记字段,并将标记字段保存时,具体执行以下操作:获取系统链路中的中间层系统;加载中间层系统对应的源码文件;定位源码文件中包含的插入数据表操作的函数集合;针对插入数据表操作的函数集合中的每个插入数据表操作的函数设定标记字段;将设定的标记字段保存至每个插入数据表操作的函数所操作的数据表中。
在一个实施例中,处理器执行生成目标测试数据之后时,还执行以下操作:统计目标测试数据的数量;当目标测试数据的数量大于等于预设阈值时,针对待测试软件进行测试;或者,当目标测试数据的数量小于预设阈值时,继续执行根据收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表的步骤,直到目标测试数据的数量大于等于预设阈值时停止执行。
在一个实施例中,处理器还执行以下操作:当替换字段后的多个数据表中的字段对象无法构造数据时,采用Mock技术针对无法构造数据的字段对象创建虚拟对象;将无法构造数据的字段对象替换为创建的虚拟对象;基于虚拟对象调用预设模拟接口返回数据。
在一个实施例中,处理器执行获取待测试软件中的非工作流功能节点集合时,具体执行以下操作:抽取待测试软件中的流节点,生成流节点集合;创建第一缓存集合和第二缓存集合;将流节点集合中的每个流节点进行识别,生成识别结果;当识别结果显示为工作流时,将结果显示为工作流的流节点输入第一缓存集合进行缓存;或者,当识别结果显示为非工作流时,将结果显示为非工作流的流节点输入第二缓存集合进行缓存;将缓存后的第二缓存集合确定为非工作流功能节点集合。
在本申请实施例中,测试数据构造装置首先当接收到针对待测试软件的测试数据构造指令时,根据测试数据构造指令初始化设置了监听器的标记字段;根据初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址,再将收集到的多个数据表进行拷贝,生成拷贝后的多个数据表,然后通过预先设定的字段将拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表,最后针对替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数以及节点扭转函数后,生成目标测试数据。由于本方案根据初始化的设置了监听器的标记字段实时收集数据表,再针对收集的数据表自动执行预设数据插入函数以得到每个功能节点足够的测试数据,从而提升测试效率和准确率,进一步降低测试工程师的测试时间,提升工作效率,保证了项目上线时的高效运行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种测试数据构造方法,其特征在于,所述方法包括:
当接收到针对待测试软件的测试数据构造指令时,根据所述测试数据构造指令初始化设置了监听器的标记字段;
根据所述初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;
根据所述收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表;
通过预先设定的字段将所述拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;
对所述替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据;其中,
所述数据插入函数用于根据所述数据表中的字段自动抓取数据进行填充;所述登录接口调用函数用于生成请求构造数据的令牌发送至客户端;所述节点扭矩函数用于切换多个数据表测试数据构造的节点。
2.根据权利要求1所述的方法,其特征在于,所述当接收到针对待测试软件的测试数据构造指令时,根据所述测试数据构造指令初始化设置了监听器的标记字段;之前,还包括:
获取所述待测试软件中的非工作流功能节点集合;
划分出所述非工作流功能节点集合中各工作流功能节点对应的系统链路;
基于所述系统链路设置标记字段,并将所述标记字段保存;
针对所述保存的每个标记字段设置监听器;其中,所述监听器为具备监听功能的代码片段。
3.根据权利要求2所述的方法,其特征在于,所述基于所述系统链路设置标记字段,并将所述标记字段保存,包括:
获取所述系统链路中的中间层系统;
加载所述中间层系统对应的源码文件;
定位所述源码文件中包含的插入数据表操作的函数集合;
针对所述插入数据表操作的函数集合中的每个插入数据表操作的函数设定标记字段;
将所述设定的标记字段保存至所述每个插入数据表操作的函数所操作的数据表中。
4.根据权利要求1所述的方法,其特征在于,所述生成目标测试数据之后,还包括:
统计所述目标测试数据的数量;
当所述目标测试数据的数量大于等于预设阈值时,针对所述待测试软件进行测试;或者,
当所述目标测试数据的数量小于预设阈值时,继续执行所述根据所述收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表的步骤,直到所述目标测试数据的数量大于等于预设阈值时停止执行。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述替换字段后的多个数据表中的字段对象无法构造数据时,采用Mock技术针对所述无法构造数据的字段对象创建虚拟对象;
将所述无法构造数据的字段对象替换为所述创建的虚拟对象;
基于所述虚拟对象调用预设模拟接口返回数据。
6.根据权利要求4所述的方法,其特征在于,按照以下步骤生成预设阈值,包括:
获取待测试软件对应的历史平均测试数据的数量;
将所述历史平均测试数据的数量和预设倍数相乘,生成目标数量;
将所述目标数量确定为预设阈值。
7.根据权利要求2所述的方法,其特征在于,所述获取所述待测试软件中的非工作流功能节点集合,包括:
抽取待测试软件中的流节点,生成流节点集合;
创建第一缓存集合和第二缓存集合;
将所述流节点集合中的每个流节点进行识别,生成识别结果;
当所述识别结果显示为工作流时,将所述结果显示为工作流的流节点输入所述第一缓存集合进行缓存;或者,
当所述识别结果显示为非工作流时,将所述结果显示为非工作流的流节点输入所述第二缓存集合进行缓存;
将所述缓存后的第二缓存集合确定为非工作流功能节点集合。
8.一种测试数据构造装置,其特征在于,所述装置包括:
数据表收集模块,用于当接收到针对待测试软件的测试数据构造指令时,根据所述测试数据构造指令初始化设置了监听器的标记字段;
根据所述初始化的设置了监听器的标记字段实时收集监听到的多个数据表对应的表地址;
数据表拷贝模块,用于根据所述收集的多个数据表对应的表地址从待测试软件的数据库中拷贝多个表,生成拷贝后的多个数据表;
字段替换模块,用于通过预先设定的字段将所述拷贝后的多个数据表中唯一标识的字段进行替换,生成替换字段后的多个数据表;
测试数据生成模块,用于针对所述替换字段后的多个数据表逐一执行预设的数据插入函数、登录接口调用函数以及节点扭矩函数后,生成目标测试数据;其中,
所述数据插入函数用于根据所述数据表中的字段自动抓取数据进行填充;所述登录接口调用函数用于生成请求构造数据的令牌发送至客户端;所述节点扭矩函数用于切换多个数据表测试数据构造的节点。
9.一种设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述测试数据构造方法的步骤。
10.一种存储有计算机可读指令的介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述测试数据构造的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110432138.9A CN113051178A (zh) | 2021-04-21 | 2021-04-21 | 测试数据构造方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110432138.9A CN113051178A (zh) | 2021-04-21 | 2021-04-21 | 测试数据构造方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051178A true CN113051178A (zh) | 2021-06-29 |
Family
ID=76520006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110432138.9A Pending CN113051178A (zh) | 2021-04-21 | 2021-04-21 | 测试数据构造方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051178A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706110A (zh) * | 2021-08-30 | 2021-11-26 | 航天中认软件测评科技(北京)有限责任公司 | 一种fpga测试工具一体化测试管理平台 |
CN118747158A (zh) * | 2024-09-03 | 2024-10-08 | 卓望数码技术(深圳)有限公司 | 测试数据构造方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190095320A1 (en) * | 2017-09-28 | 2019-03-28 | Oracle International Corporation | Testing cloud application integrations, data, and protocols |
CN111679979A (zh) * | 2020-06-03 | 2020-09-18 | 中国银行股份有限公司 | 破坏性测试方法及装置 |
CN112579604A (zh) * | 2020-12-23 | 2021-03-30 | 平安普惠企业管理有限公司 | 测试系统的造数方法、装置、设备及存储介质 |
-
2021
- 2021-04-21 CN CN202110432138.9A patent/CN113051178A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190095320A1 (en) * | 2017-09-28 | 2019-03-28 | Oracle International Corporation | Testing cloud application integrations, data, and protocols |
CN111679979A (zh) * | 2020-06-03 | 2020-09-18 | 中国银行股份有限公司 | 破坏性测试方法及装置 |
CN112579604A (zh) * | 2020-12-23 | 2021-03-30 | 平安普惠企业管理有限公司 | 测试系统的造数方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
黄奕,等: "基于库函数动态跟踪的Fuzzing测试方法", 计算机工程, no. 16, pages 39 - 41 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706110A (zh) * | 2021-08-30 | 2021-11-26 | 航天中认软件测评科技(北京)有限责任公司 | 一种fpga测试工具一体化测试管理平台 |
CN113706110B (zh) * | 2021-08-30 | 2022-07-15 | 航天中认软件测评科技(北京)有限责任公司 | 一种fpga测试工具一体化测试管理平台 |
CN118747158A (zh) * | 2024-09-03 | 2024-10-08 | 卓望数码技术(深圳)有限公司 | 测试数据构造方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221726A (zh) | 一种测试数据生成方法、装置、存储介质和智能设备 | |
CN111290956B (zh) | 基于脑图的测试方法、装置、电子设备及存储介质 | |
CN110928802B (zh) | 基于自动生成用例的测试方法、装置、设备及存储介质 | |
CN108111364B (zh) | 一种业务系统的测试方法及装置 | |
CN107220169B (zh) | 一种模拟服务器返回定制化数据的方法和设备 | |
CN112579455B (zh) | 一种接口自动化测试方法、装置、电子设备及存储介质 | |
CN111695876A (zh) | 审批流程处理方法、装置、设备及存储介质 | |
CN113051178A (zh) | 测试数据构造方法、装置、设备及介质 | |
CN113434396A (zh) | 接口测试方法、装置、设备、存储介质及程序产品 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN107357721B (zh) | 测试系统的方法及装置 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN112561690B (zh) | 信用卡分期业务接口的测试方法、系统、设备及存储介质 | |
CN108733545A (zh) | 一种压力测试方法及装置 | |
CN114610372A (zh) | 评审文件的处理方法及装置、存储介质、处理器、终端 | |
CN113986747A (zh) | 一种数据生成方法、装置、电子设备及存储介质 | |
CN112181485A (zh) | 脚本执行方法、装置、电子设备及存储介质 | |
CN112559335A (zh) | 测试方法、装置、设备和存储介质 | |
CN109358813B (zh) | 一种分布式存储系统的扩容方法及装置 | |
CN113515452B (zh) | 应用的自动测试方法、系统、电子设备及存储介质 | |
CN116737535A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN117131545A (zh) | 数据处理方法及装置、存储介质、终端 | |
CN110327626B (zh) | 虚拟服务器创建方法及装置 | |
CN113868116A (zh) | 测试依赖数据的生成方法、装置、服务器及存储介质 | |
CN114371866A (zh) | 业务系统的版本重构测试方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210629 |