一种多线程和并发测试模拟器及其测试方法

文档序号:6491811阅读:187来源:国知局
一种多线程和并发测试模拟器及其测试方法
【专利摘要】本发明提出了一种多线程和并发测试模拟器及其测试方法,测试模拟器包括测试器、调度执行器和测试执行器,该测试器包括多线程控制器、并发控制器和线程调度池,该调度执行器与测试器相连,用于对线程进行调度,该测试执行器与调度执行器相连,用于对多线程的排队场景进行模拟并通过显示屏进行显示。本发明的测试模拟器在开发阶段为开发人员提供一个有效的轻量级的,易用的测试过程模器,能够检测系统的健壮性和性能,其配置简单,成本低。本发明的测试方法简单易用,不需要配置脚本,也不需要专业的测试技能。
【专利说明】一种多线程和并发测试模拟器及其测试方法
【技术领域】
[0001]本发明涉及应用系统检测【技术领域】,具体涉及一种多线程和并发测试模拟器及其测试方法。
【背景技术】
[0002]目前,对于应用系统中多线程和并发的测试,通常使用JMeter或LoadRunner等专业的压力测试工具进行测试,其中,JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试RoadRunner是一种预测系统行为和性能的负载测试工具,通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。以上这两种工具配置比较复杂,要配置脚本,成本较高,同时还需要专业的测试技能。

【发明内容】

[0003]为了克服上述现有技术中存在的缺陷,本发明的目的是提供一种多线程和并发测试模拟器及其测试方法,该模拟器配置简单,成本低。该测试方法针对轻量级的系统,测试过程简单。
[0004]为了实现本发明的上述目的,根据本发明的一个方面,本发明提供了一种多线程和并发测试模拟器,包括测试器、调度执行器和测试执行器,所述测试器包括多线程控制器、并发控制器和线程调度池,所述多线程控制器用于对线程数量进行控制,所述并发控制器用于对并发的线程数量进行控制,所述线程调度池用于对并发进行控制,所述调度执行器与测试器相连,用于对线程进行调度,所述测试执行器与所述调度执行器相连,用于对多线程的排队场景进行模拟并通过显示屏进行显示。
[0005]本发明的多线程和并发测试模拟器在开发阶段为开发人员提供一个有效的轻量级的,易用的测试过程模器,能够检测系统的健壮性和性能,其配置简单,不需要配置脚本,成本低。
[0006]为了实现本发明的上述目的,根据本发明的二个方面,本发明提供了一种多线程和并发测试模拟器的测试方法,包括如下步骤:
[0007]S1:创建测试器和调度执行器,所述测试器包括多线程控制器、并发控制器和线程调度池,所述多线程控制器用于对线程数量进行控制,所述并发控制器用于对并发的线程数量进行控制,所述线程调度池用于对并发进行控制,所述调度执行器与测试器相连,用于对线程进行调度;
[0008]S2:选定测试模拟类,所述测试模拟类为步骤SI中线程的类;
[0009]S3:创建测试执行器,所述测试执行器与所述调度执行器相连,用于根据选定的测试模拟类对多线程的排队场景进行模拟;
[0010]S4:利用测试执行器对多线程的排队场景进行模拟并通过显示屏进行显示。
[0011]本发明针对多线程和并发环境下的工作情况,在开发阶段为开发人员提供一个有效的、轻量级的测试方法,该测试方法简单易用,不需要配置脚本,不需要专业的测试技能。
[0012]在本发明的一种优选实施例中,采用Spring的执行服务类ExecutorService作为测试执行器提供调度执行任务。
[0013]在本发明的另一种优选实施例中,所述调度执行器运行时设置有监控时间,当监控时间结束,所述调度执行器调度的线程被终止。
[0014]本发明通过设置监控时间,提高了线程执行器的效率。
[0015]在本发明的再一种优选实施例中,在所述步骤SI中,对线程数量和并发的线程数量设置默认值,所述线程数量默认值为100,所述并发的线程数量默认值为10。
[0016]本发明通过设置默认值,提高了容错性。
[0017]在本发明的再另一种优选实施例中,在所述步骤SI中还判断是否对并发进程进行同步处理。
[0018]本发明通过判断是否对并发进程进行同步处理,提高了模拟器测试的准确性。
[0019]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0020]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0021]图1是本发明多线程和并发测试模拟器的结构示意图;
[0022]图2是本发明多线程和并发测试模拟器的流程图;
[0023]图3是本发明一种优选实施例中的测试器和调度执行器的函数调用;
[0024]图4是本发明一种优选实施例中多线程和并发测试模拟器的测试方法的函数调用。
【具体实施方式】
[0025]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0026]在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0027]本发明提供了一种多线程和并发测试模拟器,如图1所示,该多线程和并发测试模拟器I包括测试器10、调度执行器11和测试执行器12,该测试器10包括多线程控制器101、并发控制器102和线程调度池103,其中,多线程控制器101用于对线程数量进行控制,并发控制器102用于对并发的线程数量进行控制,线程调度池103用于对并发进行控制,调度执行器11与测试器10相连,用于对线程进行调度,测试执行器12与调度执行器11相连,用于对多线程的排队场景进行模拟并通过显示屏2进行显示。
[0028]本发明的多线程和并发测试模拟器在开发阶段为开发人员提供一个有效的轻量级的,易用的测试过程模拟器,能够检测系统的健壮性和性能,其配置简单,不需要配置脚本,成本低。
[0029]本发明还提供了一种多线程和并发测试模拟器的测试方法,如图2所示,其包括如下步骤:
[0030]S1:创建测试器和调度执行器,该测试器包括多线程控制器、并发控制器和线程调度池,多线程控制器用于对线程数量进行控制,并发控制器用于对并发的线程数量进行控制,线程调度池用于对并发进行控制,调度执行器与测试器相连,用于对线程进行调度;
[0031]S2:选定测试模拟类,该测试模拟类为步骤SI中线程的类;
[0032]S3:创建测试执行器,该测试执行器与调度执行器相连,用于根据选定的该测试模拟类对多线程的排队场景进行模拟;
[0033]S4:利用测试执行器对多线程的排队场景进行模拟并通过显示屏进行显示。
[0034]在本发明的一种优选实施方式中,该多线程和并发测试模拟器的测试方法包括如下步骤:
[0035]第一步:创建测试器和调度执行器,该测试器包括多线程控制器、并发控制器和线程调度池,多线程控制器用于对线程数量进行控制,并发控制器用于对并发的线程数量进行控制,线程调度池用于对并发的线程进行调度。
[0036]在本实施方式中,多线程可以是任意的程序操作,在本发明的一种更加优选的实施方式中,多线程是指发出点击操作的用户总数,并发是统一时间段内的进程数量峰值,线程调度池是对并发的控制,采用线程池技术来维护并发的可靠性,保证测试的平行性,在本实施方式中,线程调度池优选采用数据库连接池,由此可以通过多线程数量确定一个总的用户范围。
[0037]调度执行器分别与测试器的多线程控制器、并发控制器和线程调度池相连,用于对线程进行调度,在本实施方式中,具体采用的调度执行器是spr ing的执行服务类ExecutorService,在本发明的另外的优选实施方式中,该调度执行器还设置有线程池,用于对待调度线程的睡眠状态进行存储。
[0038]第二步:选定测试模拟类,该测试模拟类为第一步中线程的类,在本实施方式中,通过random机制来获取不同的测试模拟类。
[0039]第三步:创建测试执行器,该测试执行器与调度执行器相连,并利用该测试执行器对测试器内设置的多线程的排队场景进行模拟并通过显示屏进行显示。在本实施方式中,通过spring的执行服务类ExecutorService技术提供执行调度的服务,来模拟多线程的排队场景。在本实施方式中,测试执行器在对多线程的排队场景进行模拟的同时,还可以对测试结果进行统计,如对测试器中进程数量,运行的时间,调度执行器执行的结果,及并发测试的成功率等结果进行统计。
[0040]图3是本发明一种优选实施例中创建测试器和调度执行器的函数调用,第I行是在Spring环境中定义一个测试器simulatorRunner,第2行是定义线程数,第3行是定义并发数,第4行是定义持续时间,如果在持续时间约定的范围内测试失败,则将被标记为失败,第5行设置为true时,当一个线程执行一个测试模拟类时,除非线程池中的其它同级(并行)线程都已经执行完毕它才能执行,因此,实际上这样做的目的是保证了并发性,用平行来完成并发的目的,第6行是定义一个用来调度的调度执行器ExecutorService,执行提交测试动作,在本实施方式中,米用Scheduled ExecutorService,其是ExecutorService接口的一个实现类,第9行是在Spring环境中定义一个第6行提到的调度执行器,第10行当此属性为true时,测试模拟类运行出现异常时程序不会停止,仍然进行下个线程的测试,第11行是设置调度执行器的线程池的容量大小。如图3所示,在创建测试器时,需要对线程数量和并发的线程数量设置默认值,在本实施方式中,利用numberOfRuns设置线程模拟数,利用numberOfConcurrentStarts设置并发模拟数,在本发明的一种优选实施方式中,线程数量默认值为100,并发的线程数量默认值为10,并且该值的设置不要大于number Of Run s中设置的数值。
[0041]在本实施方式中,在调度执行器运行时设置有监控时间,当监控时间结束,线程执行器被终止,同时还需要判断是否对并发进程进行同步处理。在本发明的一种优选实施方式中,利用coolDownPeriod设置监控时间,该监控时间根据任务要求进行选择,默认为1000毫秒,在此设置的时间一到,线程执行不管有没有结束都将被终止。在本实施方式中,还利用synchronizedScheduling判断是否对一个并发进程组同步处理,true表明可以同步进行一个并发数的工作,而false则是根据线程模拟数逐个执行,默认false。
[0042]在本实施方式中,通过random机制来获取不同的测试模拟类。例如具体的函数调用为 “〈bean id=,> companys imulator,,
[0043]class=” com.feinn0.app.account, test.CompanySaveSimulator,,>,,,测试模拟类companySimulator来源于SimulatorBase类,实现基类中的run方法,并在此方法中执行业务逻辑动作。
[0044]图4示出了本发明多线程和并发测试模拟器的测试方法的函数调用,从图中可见,首先加载创建的测试器和调度执行器,然后加载测试执行器,在本实施方式中,同时启动测试监听器执行测试用例,提供设置接口接收线程数、并发数,以及针对运行后结果的分析所需要的停顿时间,该停顿时间是指在有多个测试模拟类运行的情况下,一个测试模拟类结束后执行下个测试模拟类的间隔时间,再后加载测试模拟类,将上述定义的测试器、sping提供的调度执行器和测试模拟类,通过spring的ExecutorService技术提供执行调度的服务,对测试模拟类进行执行测试,就可以实现多线程的排队场景模拟,最后通过打印机将测试结果打印输出。
[0045]本发明针对多线程和并发环境下的工作情况,在开发阶段为开发人员提供一个有效的、轻量级的测试方法,该测试方法简单易用,不需要配置脚本,不需要专业的测试技能。
[0046]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0047]尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
【权利要求】
1.一种多线程和并发测试模拟器,其特征在于,包括测试器、调度执行器和测试执行器,所述测试器包括多线程控制器、并发控制器和线程调度池,所述多线程控制器用于对线程数量进行控制,所述并发控制器用于对并发的线程数量进行控制,所述线程调度池用于对并发进行控制,所述调度执行器与测试器相连,用于对线程进行调度,所述测试执行器与所述调度执行器相连,用于对多线程的排队场景进行模拟并通过显示屏进行显示。
2.如权利要求1所述的多线程和并发测试模拟器,其特征在于:所述测试执行器为spring 的执行服务类 ExecutorService。
3.如权利要求1所述的多线程和并发测试模拟器,其特征在于:所述线程数量默认值为100,所述并发的线程数量默认值为10。
4.一种多线程和并发测试模拟器的测试方法,其特征在于,包括如下步骤: 51:创建测试器和调度执行器,所述测试器包括多线程控制器、并发控制器和线程调度池,所述多线程控制器用于对线程数量进行控制,所述并发控制器用于对并发的线程数量进行控制,所述线程调度池用于对并发进行控制,所述调度执行器与测试器相连,用于对线程进行调度; 52:选定测试模拟类,所述测试模拟类为步骤SI中线程的类; 53:创建测试执行器,所述测试执行器与所述调度执行器相连,用于根据所述选定的测试模拟类对多线程的排队场景进行模拟; 54:利用测试执行器对多线程的排队场景进行模拟并通过显示屏进行显示。
5.如权利要求4所述的多线程和并发测试模拟器的测试方法,其特征在于:采用Spring的执行服务类ExecutorService作为测试执行器提供调度执行任务。
6.如权利要求4所述的多线程和并发测试模拟器的测试方法,其特征在于:所述调度执行器运行时设置有监控时间,当监控时间结束,所述调度执行器调度的线程被终止。
7.如权利要求4所述的多线程和并发测试模拟器的测试方法,其特征在于:在所述步骤SI中,对线程数量和并发的线程数量设置默认值,所述线程数量默认值为100,所述并发的线程数量默认值为10。
8.如权利要求4所述的多线程和并发测试模拟器的测试方法,其特征在于:在所述步骤SI中还判断是否对并发进程进行同步处理。
【文档编号】G06F11/26GK103838654SQ201210491393
【公开日】2014年6月4日 申请日期:2012年11月27日 优先权日:2012年11月27日
【发明者】于建军 申请人:重庆新媒农信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1