一种软件性能测试方法和装置制造方法及图纸

技术编号:8161466 阅读:160 留言:0更新日期:2013-01-07 19:29
本发明专利技术公开了一种软件性能测试方法和装置,该方法包括:设置定时调度器的执行周期和调度算法;设置线程池中线程的最小个数和最大个数,建立最小个数的线程;对性能测试客户端进行初始化操作;在当前执行周期中,定时调度器根据设置的调度算法选取性能测试客户端和相应的业务操作,在线程池中选择空闲线程;性能测试客户端根据定时调度器所选取的空闲线程进行相应的业务操作;所述业务操作执行完毕后,将线程放回线程池中,并等待下一个执行周期。本发明专利技术的技术方案能够以较小的系统资源完成高负荷的软件性能测试过程,提高软件性能测试的能力。

【技术实现步骤摘要】

本专利技术涉及计算机软件性能测试领域,特别是涉及一种软件性能测试方法和装置
技术介绍
目前对一款软件进行性能测试通常的做法是编写性能测试代码(脚本),性能测试代码实质上就是自动执行的客户端程序,可以简称为性能测试客户端。然后建立起性能测试进程,在进程内并发运行多个性能测试客户端访问应用服务,这样就达到了模拟多个客户端的工作压力进行性能测试的目的。互联网应用的兴起,对软件性能测试提出了越来 越大的挑战。海量用户同时在线使用是互联网应用的显著特征,因此,基于互联网应用的软件性能测试要求测试场景中能够保证有大量的性能测试客户端同时运行,这样才能够达到充分真实模拟的目的。现有的性能测试方法,绝大多数的情况下都是在使用某一种性能测试工具,其测试方法的过程如下测试代码的生成测试代码由2种方式得来,第I种是录制测试客户端的行为,然后做参数化处理;第2种是直接开发出此类代码供使用;所述的测试代码只模拟一个客户端的行为;所有代码都被设计成在一个线程内顺序执行。测试执行软件测试工具提供测试进程,进程内为每一个测试客户端提供一个独占的线程。假如控制多台测试机(m台)、每台测试机启动多个测试进程(η个),每个测试进程包括多个测试线程(t个),这样,同时参与测试的客户端个数是m*n*t个。从软件设计性能的角度来考虑,测试机线程个数、cpu使用率、内存等系统资源随测试压力的增加很快就会成为性能测试的瓶颈。所以现有的测试方法只能测试一些低压力的场景,如果测试互联网业务,测试进程的性能问题会导致测试无法进行或者时间、资金、人员等成本十分高昂。并且在设计过程中没有考虑到测试客户端互相通信的需求,比如性能测试客户端A在某个测试时刻要求性能测试客户端B完成某个功能或变更某种属性,这是无法办到的,因为某个性能测试客户端在设计上是封闭的,导致测试场景设计上不够灵活。综上所述,现有技术中的,软件性能测试方法不能实现测试客户端直接的通信,而且在海量测试客户端同时进行测试时受到系统资源的限制。
技术实现思路
本专利技术提供了一种软件性能测试方法,该方法能够提高测试软件性能的能力。本专利技术提供了一种软件性能测试系统,该系统能够提高测试软件性能的能力。为达到上述目的,本专利技术的技术方案是这样实现的本专利技术公开了一种软件性能测试方法,该方法包括设置定时调度器的执行周期和调度算法;设置线程池中线程的最小个数和最大个数,建立最小个数的线程;对性能测试客户端进行初始化操作;在当前执行周期中,定时调度器根据设置的调度算法选取性能测试客户端和相应的业务操作,在线程池中选择空闲线程;性能测试客户端根据定时调度器所选取的空闲线程进行相应的业务操作;所述业务操作执行完毕后,将线程放回线程池中,并等待下一个执行周期。本专利技术还公开了一种软件性能测试装置,该装置包括定时调度器模块、线程池模块、多个性能测试客户端模块,其中,定时调度器模块,用于周期性的选取一个或多个性能测试客户端模块、为性能测试客户端模块选取相应的业务操作,为选取的业务操作在线程池模块中选取空闲的线程; 性能测试客户端模块,包含待测软件的客户端属性以及各种业务操作的集合;用于根据定时调度器模块选取的业务操作和选取的空闲的线程进行业务操作;线程池模块,存放用于实现各种业务操作的线程,为性能测试客户端模块所要执行的业务操作提供执行的线程。由上述可见,本专利技术提供的技术方案,将性能测试客户端编程为包含性能测试客户端属性和业务操作的集合,引入线程池用于执行各个性能测试客户端的业务操作,使用定时调度器进行统一的调度管理,能够更加灵活方便的控制软件性能测试的测试过程,控制场景,并且通过软件测试进程内的过程调用实现性能测试客户端之间的通信。附图说明图I是本专利技术中一种软件性能测试方法的流程图;图2是本专利技术中一种软件性能测试方法的初始化流程图;图3是本专利技术中一种软件性能测试方法的详细流程图;图4是本专利技术中一种软件性能测试装置的结构示意图。具体实施例方式图I是本专利技术中一种软件性能测试方法的流程图,如图I所示,步骤101,设置定时调度器的执行周期和调度算法;设置线程池中线程的最小个数和最大个数,建立最小个数的线程;对性能测试客户端进行初始化操作;步骤102,在当前执行周期中,定时调度器根据设置的调度算法选取性能测试客户端和相应的业务操作,在线程池中选择空闲线程;步骤103,性能测试客户端根据定时调度器所选取的空闲线程进行相应的业务操作;步骤104,所述业务操作执行完毕后,将线程放回线程池中,并等待下一个执行周期。为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。在使用本专利技术提供的方法进行软件性能测试之前,首先要进行初始化操作,即对定时调度器、线程池以及所有性能测试客户端都进行初始化操作;其中,图2是本专利技术中一种软件性能测试方法的初始化流程图,如图2所示步骤201,对定时调度器进行初始化操作,设置定时调度器的执行周期和调度算法;在本步骤中,设置定时调度器每隔一定时间执行一次调度算法;其中,在本专利技术的实施例中,根据需要测试的软件的设计测试方案,根据测试方案编写相应的调度算法。在所述调度算法中保存有性能测试客户端存放的数据结构的地址;在所述调度算法中保存有调用性能测试客户端的方式以及每次调用性能测试客户端的个数;在所述调度算法中保存为性能测试客户端选取相应业务操作的方式。步骤202,对线程池进行初始化操作,设置线程池中线程的最小个数和最大个数;新建最小个数的线程;如果当前的线程不够支持业务操作,则线程池自动创建新的线程,直到当前的线程数为预设的线程的最大个数。步骤203,对性能测试客户中的属性进行初始化操作;将完成初始化操作的性能测试客户端保存在数据结构中。在本步骤中,从待测软件的所有客户端属性中选取用于本次性能测试所必须的属性,将所选取的客户端属性作为性能测试客户端的属性进行初始化操作后,将所有性能测试客户端都保存在同一个数据结构中;其中,所述性能测试客户端中包括用于测试待测软件的所有业务操作的集合。 图3是本专利技术中一种软件性能测试方法的详细流程图,如图3所述,步骤301,当前执行周期开始,定时调度器执行设置好的调度算法。步骤302,定时调度器根据所设置的调度算法选取性能测试客户端。其中,所述定时调度器根据设置的调度算法选取一个或者多个性能测试客户端,对所选取的每个性能测试客户端,在该性能测试客户端所包含的业务操作集合中选取相应的一个或多个业务操作。在步骤302中,使用本专利技术中的方法进行软件性能测试的过程中,根据调度算法中保存的数据结构地址,可以调用相应的性能测试客户端;其中,调度算法中设置了选取性能测试客户端的方式以及每次调用性能测试客户端的个数;是顺序选取一个或者多个性能测试客户端或者是随机选取一个或者是多个性能测试客户端;具体方式根据实际的软件性能测试方案对调度算法中的测试方式进行设置,选取最优的性能测试方式。步骤303,定时调度器根据所设置的调度算法,为所选取的性能测试客户端选择相应的业务操作;调度算法中设置了为所选中的性能测试客户端选取业务操作的方式,是顺序执行多个业务操作,还是循环执行一个业务操作;具体方式根据实际的软件性能测试方案对调度算法中的选择相应的业务操作的方式进行设置,。步骤3本文档来自技高网
...

【技术保护点】
一种软件性能测试方法,其特征在于,该方法包括:设置定时调度器的执行周期和调度算法;设置线程池中线程的最小个数和最大个数,建立最小个数的线程;对性能测试客户端进行初始化操作;在当前执行周期中,定时调度器根据设置的调度算法选取性能测试客户端和相应的业务操作,在线程池中选择空闲线程;性能测试客户端根据定时调度器所选取的空闲线程进行相应的业务操作;所述业务操作执行完毕后,将线程放回线程池中,并等待下一个执行周期。

【技术特征摘要】

【专利技术属性】
技术研发人员:林谡
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1