CN108874666A - 测试数据自动生成方法、装置、计算机设备及存储介质 - Google Patents

测试数据自动生成方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN108874666A
CN108874666A CN201810538249.6A CN201810538249A CN108874666A CN 108874666 A CN108874666 A CN 108874666A CN 201810538249 A CN201810538249 A CN 201810538249A CN 108874666 A CN108874666 A CN 108874666A
Authority
CN
China
Prior art keywords
thread
several tasks
several
make
sub
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
Application number
CN201810538249.6A
Other languages
English (en)
Inventor
吕三
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201810538249.6A priority Critical patent/CN108874666A/zh
Publication of CN108874666A publication Critical patent/CN108874666A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种测试数据自动生成方法、装置、计算机设备及存储介质。该方法包括:通过获取上传的多个造数任务,解析多个造数任务中的造数模型;在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;将多个测试数据发送至测试端端。该方法实现了测试数据的大批量自动生成,而且采用多线程并发造数,提高了测试数据生成的效率。

Description

测试数据自动生成方法、装置、计算机设备及存储介质
技术领域
本申请涉及自动化测试技术领域,尤其涉及一种测试数据自动生成方法、装置、计算机设备及存储介质。
背景技术
目前,在测试过程中根据造数任务进行测试数据的生成时,一般是单线程进行,这就导致了线程中的当前任务结束后才能进行下一次造数,这就导致造数效率低下,而且不能及时在造数任务完成后反馈至对应的需求发起方。
发明内容
本申请提供了一种测试数据自动生成方法、装置、计算机设备及存储介质,旨在解决现有技术中进行测试数据的生成时,一般是单线程进行,这就导致了线程中的当前任务结束后才能进行下一次造数,导致造数效率低下的问题。
第一方面,本申请提供了一种测试数据自动生成方法,其包括:
获取上传的多个造数任务,解析多个造数任务中的造数模型;
在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;
将多个测试数据发送至测试端。
第二方面,本申请提供了一种测试数据自动生成装置,其包括:
造数任务解析单元,用于获取上传的多个造数任务,解析多个造数任务中的造数模型;
并行造数单元,用于在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;
造数反馈单元,用于将多个测试数据发送至测试端。
第三方面,本申请又提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请提供的任一项所述的测试数据自动生成方法。
第四方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任一项所述的测试数据自动生成方法。
本申请提供一种测试数据自动生成方法、装置、计算机设备及存储介质。该方法通过获取上传的多个造数任务,解析多个造数任务中的造数模型;在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;将多个测试数据发送至测试端端。该方法实现了测试数据的大批量自动生成,而且采用多线程并发造数,提高了测试数据生成的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种测试数据自动生成方法的示意流程图;
图2是本申请实施例提供的一种测试数据自动生成方法的子流程示意图;
图3为本申请实施例提供的一种测试数据自动生成方法的另一子流程示意图;
图4为本申请实施例提供的一种测试数据自动生成方法的另一子流程示意图;
图5为本申请实施例提供的一种测试数据自动生成方法的另一示意流程图;
图6为本申请实施例提供的一种测试数据自动生成装置的示意性框图;
图7为本申请实施例提供的一种测试数据自动生成装置的子单元示意性框图;
图8为本申请实施例提供的一种测试数据自动生成装置的另一子单元示意性框图;
图9为本申请实施例提供的一种测试数据自动生成装置的另一子单元示意性框图;
图10为本申请实施例提供的一种测试数据自动生成装置的另一示意性框图;
图11为本申请实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请实施例提供的一种测试数据自动生成方法的示意流程图。该方法应用于服务器中。如图1所示,该方法包括步骤S101~S103。
S101、获取上传的多个造数任务,解析多个造数任务中的造数模型。
在本实施例中,需预先搭建数据准备自动化云平台,在该数据准备自动化云平台上设置了多种造数模型,该数据准备自动化云平台还设置有一面向测试人员上传造数任务的UI界面。测试人员在UI界面上创建造数任务时,需选定造数模型,如该数据准备自动化云平台上设置了生成身份证号的造数模型,生成手机号的造数模型等单一功能造数模型,还可以设置生成包括客户姓名、手机号身份证号、测试产品名称、合作机构、渠道类型等综合数据的复合造数模型。当用户在测试数据准备自动化云平台面向测试人员的UI界面上,选定一造数模型,并启动完成造数模型选定的造数任务时,该造数任务会上传至测试数据准备自动化云平台的线程池,由线程池将造数任务进行分配以进行造数。由于测试人员只需根据测试数据的应用场景,对应选定造数模型,再将包括造数模型的造数任务上传至线程池,无需进行复杂的配置操作即可发起造数请求。
S102、在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据。
在本实施例中,当有多个造数任务被上传至测试数据准备自动化云平台时,为了更快速的对其进行并行造数,可以在部署测试数据准备自动化云平台上采用任务池对造数任务进行队列管理。
在一实施例中,如图2所示,所述步骤S102包括:
S1021、初始化线程池;
S1022、若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程;
S1023、将子线程中的造数任务按加入子线程队列的先后顺序依序分发至对应的负载端;
S1024、接收由负载端反馈的与造数任务对应的测试数据。
在本实施例中,线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果(因为线程少了浪费了系统资源,线程多了造成系统拥挤效率不高),通过线程池控制线程数量。一个造数任务执行完毕,再从队列的中取最前面的造数任务开始执行。若队列中没有等待进程,子线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的子线程,就可以开始运行,否则进入等待队列。
初始化线程池时,可以先根据预先设置的子线程个数将线程池划分为多个区域,每一区域对应一个子线程,且每一子线程对应通讯连接一用于执行造数任务的负载机。若检测到造数任务增加请求,将造数任务分配至线程池中的其中一个子线程,再由子线程将造数任务发送至相应的负载机进行造数。通过线程池,实现了造数任务的自动分配,使得多个造数任务可以通过多个负载机并行进行,提高造数效率。
在一实施例中,如图3所示,所述步骤S1021包括:
S10211、根据预设的线程池的子线程个数将线程池对应进行分区,以得到线程池对应的多个子线程;
S10212、初始化每一子线程为linkedlist队列,并确定linkedlist队列的允许可用数、及linkedlist队列的允许可改变数。
在一实施例中,步骤S1022中包括:若检测到造数任务增加请求,根据linkedlist队列的允许可用数、及linkedlist队列的允许可改变数,将造数任务增加请求对应造数任务分配至线程池中的子线程。
在本实施例中,初始化线程池时,可以先根据预先设置的子线程个数将线程池划分为多个区域,这一预设的线程池的子线程个数,是根据线程池的并发数据处理的性能来确定的,若该线程池的并发处理性能高,意味着与低并发数据处理性能的线程池相比该线程池可以被分为更多个子分区,一般划分个数为5-20个。一般是,线程池的分区个数与预设的线程池的子线程个数相同。
之后将线程池中的每一子线程都对应初始化设置一linkedlist队列。linkedlist的本质是双向链表,linkedList包含两个重要的成员:header和size。header是双向链表的表头,它是双向链表节点所对应的类Entry的实例。Entry中包含成员变量:previous,next,element。其中,previous是该节点的上一个节点,next是该节点的下一个节点,element是该节点所包含的值。size是双向链表中节点的个数。其中linkedlist最末尾的一个节点的下一节点即是linkedlist的首节点,linkedlist的首节点的前一节点即是linkedlist最末尾节点。
同时,还需对每一子线程的允许可用数、及允许可改变数进行设置,其中子线程的允许可用数则限定了linkedlist队列中的节点总个数,子线程的允许可改变数即限定了linkedlist队列的可扩展的节点数。
当完成了linkedlist队列的设置,以及子线程的允许可用数、及允许可改变数的设置,则各造数任务的请求则按照预先设置的规则加入线程池其中某一子线程。通过对线程池的初始化,能有效提升对造数任务的分配效率。
在一实施例中,如图4所示,所述步骤S1022包括:
S10221、获取造数任务增加请求对应的排序号;
S10222、将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数、及余数所对应的子线程;
S10223、将造数任务分配至余数所对应的子线程。
在本实施例中,数据准备自动化云平台(数据准备自动化云平台也可记为服务器)检测到单个或多个请求端由UI界面发起的造数任务增加请求时,在数据准备自动化云平台上会根据每一造数任务请求到达服务器的系统时间的先后顺序来按升序分配一个排序号,然后将各造数任务请求所对应的排序号均除以线程池的子线程个数取余,得到余数。
例如,请求端1向服务器所发送的造数任务增加请求为2个,分别记为造数任务1和造数任务2;请求端2向服务器所发送的造数任务增加请求为3个,分别记为造数任务3、造数任务4和造数任务5;……;请求端N向服务器所发送的造数任务增加请求为N1个,分别记为造数任务N2至造数任务N2+N1。若请求端1是最先将造数任务增加请求发送至服务器,请求端2次之,直至请求端N1是最后将造数任务增加请求发送至服务器。此时服务器将对每一造数任务请求分配对应的排序号,例如造数任务1被分配的排序号为1,造数任务2被分配的排序号为2,……,造数任务N2+N1被分配的排序号为N2+N1;此时若线程池的子线程个数为10,则将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数(上例中可能取得的余数为0-9),将排序号余数为x所对应的造数任务增加请求对应发送至编号为x的子线程,例如造数任务1的排序号1除以10的余数为1,则将该造数任务对应分配至编号为1的子线程。通过这一方式实现了对造数任务的动态随机分配。
在本实施例中,还可采取第二种方式,例如将造数任务分配至子线程中线程剩余数量为多个子线程中线程剩余数量的最大值所对应的子线程。也还可以将采取第三种方式,例如将造数任务增加请求对应的排序号输入至预先训练好的分配模型,通过分配模型进行运算后输出一子线程的编号,以实现对造数任务的动态随机分配。而且,测试数据准备自动化云平台还可以实时接收用户的暂停造数指令,或是继续造数等指令进行造数,以实现对造数任务的实时控制。
S103、将多个测试数据发送至测试端。
在本实施例中,测试人员所使用的请求端(请求端也可称为测试端)向测试数据准备自动化云平台发送造数任务,当在测试数据准备自动化云平台中根据造数任务得到了测试数据后,即完成了造数过程,此时所得到的测试数据可以反馈至请求端上,测试人员可应用测试数据进行测试使用。
在一实施例中,如图5所示,所述步骤S102或S103之后,还包括:
S104、获取每一造数任务的造数总耗时,及预先设置的造数时间段内的造数任务总量,并进行展示。
在本实施例中,还可以获取每一造数任务的任务来源渠道信息(即是由何部门的人员发起的造数任务)。同时,统计每一造数任务的造数总耗时,及在数据准备自动化云平台已完成的造数任务总数,并以柱形图、折线图、饼图友好展示上述数据,实现了从时间(即造数耗时)、系统(即造数任务对应的负载机)、分组(即任务来源渠道信息)不同维度统计人力投入/节省相关数据。
可见,该方法实现了测试数据的大批量自动生成,而且采用多线程并发造数,提高了测试数据生成的效率。
本申请实施例还提供一种测试数据自动生成装置,该测试数据自动生成装置用于执行前述测试数据自动生成方法的任一实施例。具体地,请参阅图6,图6是本申请实施例提供的一种测试数据自动生成装置的示意性框图。测试数据自动生成装置100可以配置于服务器中。
如图6所示,测试数据自动生成装置100包括造数任务解析单元101、并行造数单元102、及造数反馈单元103。
造数任务解析单元101,用于获取上传的多个造数任务,解析多个造数任务中的造数模型。
在本实施例中,需预先搭建数据准备自动化云平台,在该数据准备自动化云平台上设置了多种造数模型,该数据准备自动化云平台还设置有一面向测试人员上传造数任务的UI界面。测试人员在UI界面上创建造数任务时,需选定造数模型,如该数据准备自动化云平台上设置了生成身份证号的造数模型,生成手机号的造数模型等单一功能造数模型,还可以设置生成包括客户姓名、手机号身份证号、测试产品名称、合作机构、渠道类型等综合数据的复合造数模型。当用户在测试数据准备自动化云平台面向测试人员的UI界面上,选定一造数模型,并启动完成造数模型选定的造数任务时,该造数任务会上传至测试数据准备自动化云平台的线程池,由线程池将造数任务进行分配以进行造数。由于测试人员只需根据测试数据的应用场景,对应选定造数模型,再将包括造数模型的造数任务上传至线程池,无需进行复杂的配置操作即可发起造数请求。
并行造数单元102,用于在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据。
在本实施例中,当有多个造数任务被上传至测试数据准备自动化云平台时,为了更快速的对其进行并行造数,可以在部署测试数据准备自动化云平台上采用任务池对造数任务进行队列管理。
在一实施例中,如图7所示,所述并行造数单元102包括:
线程初始化单元1021,用于初始化线程池;
请求分配单元1022,用于若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程;
负载分发单元1023,用于将子线程中的造数任务按加入子线程队列的先后顺序依序分发至对应的负载端;
数据接收单元1024,用于接收由负载端反馈的与造数任务对应的测试数据。
在本实施例中,线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果(因为线程少了浪费了系统资源,线程多了造成系统拥挤效率不高),通过线程池控制线程数量。一个造数任务执行完毕,再从队列的中取最前面的造数任务开始执行。若队列中没有等待进程,子线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的子线程,就可以开始运行,否则进入等待队列。
初始化线程池时,可以先根据预先设置的子线程个数将线程池划分为多个区域,每一区域对应一个子线程,且每一子线程对应通讯连接一用于执行造数任务的负载机。若检测到造数任务增加请求,将造数任务分配至线程池中的其中一个子线程,再由子线程将造数任务发送至相应的负载机进行造数。通过线程池,实现了造数任务的自动分配,使得多个造数任务可以通过多个负载机并行进行,提高造数效率。
在一实施例中,如图8所示,所述线程初始化单元1021包括:
线程池分区单元10211,用于根据预设的线程池的子线程个数将线程池对应进行分区,以得到线程池对应的多个子线程;
参数设置单元10212,用于初始化每一子线程为linkedlist队列,并确定linkedlist队列的允许可用数、及linkedlist队列的允许可改变数。
在一实施例中,请求分配单元1022用于:若检测到造数任务增加请求,根据linkedlist队列的允许可用数、及linkedlist队列的允许可改变数,将造数任务增加请求对应造数任务分配至线程池中的子线程。
在本实施例中,先根据预先设置的子线程个数将线程池划分为多个区域,这一预设的线程池的子线程个数,是根据线程池的性能来确定的,若该线程池可以承受被分为多个子分区,就可将线程池多划分出一些子分区,一般划分个数为5-20个。
之后将线程池中的每一子线程都对应初始化设置一linkedlist队列。linkedlist的本质是双向链表,linkedList包含两个重要的成员:header和size。header是双向链表的表头,它是双向链表节点所对应的类Entry的实例。Entry中包含成员变量:previous,next,element。其中,previous是该节点的上一个节点,next是该节点的下一个节点,element是该节点所包含的值。size是双向链表中节点的个数。其中linkedlist最末尾的一个节点的下一节点即是linkedlist的首节点,linkedlist的首节点的前一节点即是linkedlist最末尾节点。
同时,还需对每一子线程的允许可用数、及允许可改变数进行设置,其中子线程的允许可用数则限定了linkedlist队列中的节点总个数,子线程的允许可改变数即限定了linkedlist队列的可扩展的节点数。
当完成了linkedlist队列的设置,以及子线程的允许可用数、及允许可改变数的设置,则各造数任务的请求则按照预先设置的规则加入线程池其中某一子线程。通过对线程池的初始化,能有效提升对造数任务的分配效率。
在一实施例中,如图9所示,所述请求分配单元1022包括:
序号分配单元10221,用于获取造数任务增加请求对应的排序号;
取余单元10222,用于将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数、及余数所对应的子线程;
任务分发单元10223,用于将造数任务分配至余数所对应的子线程。
在本实施例中,数据准备自动化云平台(数据准备自动化云平台也可记为服务器)检测到单个或多个请求端由UI界面发起的造数任务增加请求时,在数据准备自动化云平台上会根据每一造数任务请求到达服务器的系统时间的先后顺序来按升序分配一个排序号,然后将各造数任务请求所对应的排序号均除以线程池的子线程个数取余,得到余数。
例如,请求端1向服务器所发送的造数任务增加请求为2个,分别记为造数任务1和造数任务2;请求端2向服务器所发送的造数任务增加请求为3个,分别记为造数任务3、造数任务4和造数任务5;……;请求端N向服务器所发送的造数任务增加请求为N1个,分别记为造数任务N2至造数任务N2+N1。若请求端1是最先将造数任务增加请求发送至服务器,请求端2次之,直至请求端N1是最后将造数任务增加请求发送至服务器。此时服务器将对每一造数任务请求分配对应的排序号,例如造数任务1被分配的排序号为1,造数任务2被分配的排序号为2,……,造数任务N2+N1被分配的排序号为N2+N1;此时若线程池的子线程个数为10,则将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数(上例中可能取得的余数为0-9),将排序号余数为x所对应的造数任务增加请求对应发送至编号为x的子线程,例如造数任务1的排序号1除以10的余数为1,则将该造数任务对应分配至编号为1的子线程。通过这一方式实现了对造数任务的动态随机分配。
在本实施例中,还可采取第二种方式,例如将造数任务分配至子线程中线程剩余数量为多个子线程中线程剩余数量的最大值所对应的子线程。也还可以将采取第三种方式,例如将造数任务增加请求对应的排序号输入至预先训练好的分配模型,通过分配模型进行运算后输出一子线程的编号,以实现对造数任务的动态随机分配。而且,测试数据准备自动化云平台还可以实时接收用户的暂停造数指令,或是继续造数等指令进行造数,以实现对造数任务的实时控制。
造数反馈单元103,用于将多个测试数据发送至测试端。
在本实施例中,测试人员所使用的请求端(请求端也可称为测试端)向测试数据准备自动化云平台发送造数任务,当在测试数据准备自动化云平台中根据造数任务得到了测试数据后,即完成了造数过程,此时所得到的测试数据可以反馈至请求端上,测试人员可应用测试数据进行测试使用。
在一实施例中,如图10所示,所述测试数据自动生成装置100,还包括:
造数任务展示单元104,用于获取每一造数任务的造数总耗时,及预先设置的造数时间段内的造数任务总量,并进行展示。
在本实施例中,还可以获取每一造数任务的任务来源渠道信息(即是由何部门的人员发起的造数任务)。同时,统计每一造数任务的造数总耗时,及在数据准备自动化云平台已完成的造数总任务数,并以柱形图、折线图、饼图友好展示上述数据,实现了从时间(即造数耗时)、系统(即造数任务对应的负载机)、分组(即任务来源渠道信息)不同维度统计人力投入/节省相关数据。
可见,该装置实现了测试数据的大批量自动生成,而且采用多线程并发造数,提高了测试数据生成的效率。
上述测试数据自动生成装置可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500设备可以是终端。该终端可以是服务器。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种测试数据自动生成方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种测试数据自动生成方法。
该网络接口505用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:获取上传的多个造数任务,解析多个造数任务中的造数模型;在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;将多个测试数据发送至测试端。
在一实施例中,处理器502还执行如下操作:获取每一造数任务的造数总耗时,及预先设置的造数时间段内的造数任务总量,并进行展示。
在一实施例中,处理器502还执行如下操作:初始化线程池;若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程;将子线程中的造数任务按加入子线程队列的先后顺序依序分发至对应的负载端;接收由负载端反馈的与造数任务对应的测试数据。
在一实施例中,处理器502还执行如下操作:获取造数任务增加请求对应的排序号;将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数、及余数所对应的子线程;将造数任务分配至余数所对应的子线程。
在一实施例中,处理器502还执行如下操作:根据预设的线程池的子线程个数将线程池对应进行分区,以得到线程池对应的多个子线程;初始化每一子线程为linkedlist队列,并确定linkedlist队列的允许可用数、及linkedlist队列的允许可改变数;若检测到造数任务增加请求,根据linkedlist队列的允许可用数、及linkedlist队列的允许可改变数,将造数任务增加请求对应造数任务分配至线程池中的子线程。
本领域技术人员可以理解,图11中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本申请的另一实施例中提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时实现:获取上传的多个造数任务,解析多个造数任务中的造数模型;在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;将多个测试数据发送至测试端。
在一实施例中,该程序指令被处理器执行时实现:获取每一造数任务的造数总耗时,及预先设置的造数时间段内的造数任务总量,并进行展示。
在一实施例中,该程序指令被处理器执行时实现:初始化线程池;若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程;将子线程中的造数任务按加入子线程队列的先后顺序依序分发至对应的负载端;接收由负载端反馈的与造数任务对应的测试数据。
在一实施例中,该程序指令被处理器执行时实现:获取造数任务增加请求对应的排序号;将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数、及余数所对应的子线程;将造数任务分配至余数所对应的子线程。
在一实施例中,该程序指令被处理器执行时实现:根据预设的线程池的子线程个数将线程池对应进行分区,以得到线程池对应的多个子线程;初始化每一子线程为linkedlist队列,并确定linkedlist队列的允许可用数、及linkedlist队列的允许可改变数;若检测到造数任务增加请求,根据linkedlist队列的允许可用数、及linkedlist队列的允许可改变数,将造数任务增加请求对应造数任务分配至线程池中的子线程。
所述存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种测试数据自动生成方法,其特征在于,包括:
获取上传的多个造数任务,解析多个造数任务中的造数模型;
在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;
将多个测试数据发送至测试端。
2.根据权利要求1所述的测试数据自动生成方法,其特征在于,所述在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据之后,还包括:
获取每一造数任务的造数总耗时,及预先设置的造数时间段内的造数任务总量,并进行展示。
3.根据权利要求1所述的测试数据自动生成方法,其特征在于,所述在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据,包括:
初始化线程池;
若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程;
将子线程中的造数任务按加入子线程队列的先后顺序依序分发至对应的负载端;
接收由负载端反馈的与造数任务对应的测试数据。
4.根据权利要求3所述的测试数据自动生成方法,其特征在于,所述将所述造数任务增加请求对应造数任务分配至线程池中的子线程,包括:
获取造数任务增加请求对应的排序号;
将造数任务增加请求对应的排序号除以线程池的子线程个数取余,得到余数、及余数所对应的子线程;
将造数任务分配至余数所对应的子线程。
5.根据权利要求3所述的测试数据自动生成方法,其特征在于,所述初始化线程池,包括:
根据预设的线程池的子线程个数将线程池对应进行分区,以得到线程池对应的多个子线程;
初始化每一子线程为linkedlist队列,并确定linkedlist队列的允许可用数、及linkedlist队列的允许可改变数;
所述若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程包括:
若检测到造数任务增加请求,根据linkedlist队列的允许可用数、及linkedlist队列的允许可改变数,将造数任务增加请求对应造数任务分配至线程池中的子线程。
6.一种测试数据自动生成装置,其特征在于,包括:
造数任务解析单元,用于获取上传的多个造数任务,解析多个造数任务中的造数模型;
并行造数单元,用于在线程池中选择相应数量的子线程,将多个造数任务对应分配至各子线程中并行进行数据生成,得到多个测试数据;
造数反馈单元,用于将多个测试数据发送至测试端。
7.根据权利要求6所述的测试数据自动生成装置,其特征在于,还包括:
造数统计单元,用于获取每一造数任务的造数总耗时,及预先设置的造数时间段内的造数任务总量,并进行展示。
8.根据权利要求6所述的测试数据自动生成装置,其特征在于,所述并行造数单元,包括:
线程初始化单元,用于初始化线程池;
请求分配单元,用于若检测到造数任务增加请求,将所述造数任务增加请求对应造数任务分配至线程池中的子线程;
负载分发单元,用于将子线程中的造数任务按加入子线程队列的先后顺序依序分发至对应的负载端;
数据接收单元,用于接收由负载端反馈的与造数任务对应的测试数据。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的测试数据自动生成方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的测试数据自动生成方法。
CN201810538249.6A 2018-05-30 2018-05-30 测试数据自动生成方法、装置、计算机设备及存储介质 Pending CN108874666A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810538249.6A CN108874666A (zh) 2018-05-30 2018-05-30 测试数据自动生成方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810538249.6A CN108874666A (zh) 2018-05-30 2018-05-30 测试数据自动生成方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN108874666A true CN108874666A (zh) 2018-11-23

Family

ID=64335768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810538249.6A Pending CN108874666A (zh) 2018-05-30 2018-05-30 测试数据自动生成方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN108874666A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739583A (zh) * 2018-12-13 2019-05-10 平安科技(深圳)有限公司 多线程并行运行的方法、装置、计算机设备以及存储介质
CN112578259A (zh) * 2019-09-29 2021-03-30 北京君正集成电路股份有限公司 一种具有数据空间设置的线程调度方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212103A (ja) * 1995-02-07 1996-08-20 Matsushita Electric Ind Co Ltd マルチスレッド・プロセッサのテスト・データ作成方法
US20100318481A1 (en) * 2009-06-10 2010-12-16 Ab Initio Technology Llc Generating Test Data
US20170125125A1 (en) * 2015-10-30 2017-05-04 Texas Instruments Incorporated Area-efficient parallel test data path for embedded memories
CN107643983A (zh) * 2017-09-22 2018-01-30 北京蓝海讯通科技股份有限公司 一种测试数据处理方法及系统
CN107894953A (zh) * 2017-11-21 2018-04-10 中国银行股份有限公司 一种银行应用测试数据的生成方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212103A (ja) * 1995-02-07 1996-08-20 Matsushita Electric Ind Co Ltd マルチスレッド・プロセッサのテスト・データ作成方法
US20100318481A1 (en) * 2009-06-10 2010-12-16 Ab Initio Technology Llc Generating Test Data
US20170125125A1 (en) * 2015-10-30 2017-05-04 Texas Instruments Incorporated Area-efficient parallel test data path for embedded memories
CN107643983A (zh) * 2017-09-22 2018-01-30 北京蓝海讯通科技股份有限公司 一种测试数据处理方法及系统
CN107894953A (zh) * 2017-11-21 2018-04-10 中国银行股份有限公司 一种银行应用测试数据的生成方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739583A (zh) * 2018-12-13 2019-05-10 平安科技(深圳)有限公司 多线程并行运行的方法、装置、计算机设备以及存储介质
CN109739583B (zh) * 2018-12-13 2023-09-08 平安科技(深圳)有限公司 多线程并行运行的方法、装置、计算机设备以及存储介质
CN112578259A (zh) * 2019-09-29 2021-03-30 北京君正集成电路股份有限公司 一种具有数据空间设置的线程调度方法

Similar Documents

Publication Publication Date Title
US11416307B2 (en) System and method for processing task resources
CN110162388A (zh) 一种任务调度方法、系统及终端设备
CN108614726A (zh) 虚拟机创建方法及装置
CN108804320A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN108415847A (zh) 性能测试方法、装置、计算机设备及存储介质
CN107526645B (zh) 一种通信优化方法及系统
CN112272203B (zh) 一种集群业务节点选择方法、系统、终端及存储介质
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN109445955B (zh) 一种计数方法及计数系统
CN107748696A (zh) 一种任务调度的方法及终端设备
CN107688495A (zh) 调度处理器的方法及设备
CN114244717B (zh) 虚拟网卡资源的配置方法、装置、计算机设备及介质
CN109495542A (zh) 基于性能监控的负载分配方法及终端设备
CN111694646A (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN106489132B (zh) 读写数据的方法、装置、存储设备和计算机系统
CN103793275B (zh) 实现负载均衡的系统及处理方法
CN108763082A (zh) 测试数据生成方法、装置、计算机设备及存储介质
CN107370796A (zh) 一种基于Hyper TF的智能学习系统
CN108874666A (zh) 测试数据自动生成方法、装置、计算机设备及存储介质
CN116991560B (zh) 针对语言模型的并行调度方法、装置、设备及存储介质
CN108874738A (zh) 分布式并行运算方法、装置、计算机设备及存储介质
CN108809683A (zh) 部署云应用系统的方法及装置
CN107396445A (zh) 一种信息上报调度方法、系统、主机设备及从机设备
CN117762591B (zh) 任务控制方法、任务控制装置、计算机设备和存储介质
CN113347249B (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: 20181123