CN104008054A - 一种软件性能测试装置及方法 - Google Patents
一种软件性能测试装置及方法 Download PDFInfo
- Publication number
- CN104008054A CN104008054A CN201410230916.6A CN201410230916A CN104008054A CN 104008054 A CN104008054 A CN 104008054A CN 201410230916 A CN201410230916 A CN 201410230916A CN 104008054 A CN104008054 A CN 104008054A
- Authority
- CN
- China
- Prior art keywords
- test cases
- control information
- test
- pressure parameter
- module
- 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.)
- Granted
Links
Abstract
本发明提供了一种软件性能测试装置及方法,所述装置包括:压力控制单元和压力生成单元,其中,所述压力控制单元,包括:定时信号发生模块和控制信息生成模块;所述定时信号发生模块用于产生定时信号,所述控制信息生成模块用于在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息,并将所述控制信息发送至对应的压力生成单元;所述压力生成单元,用于根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种软件性能测试装置及方法。
背景技术
计算机软件测试是保证软件质量的重要工作。软件性能测试的目的是为了验证系统是否达到用户提出的性能指标,寻找系统中的性能瓶颈,为优化系统提供依据。性能测试一般都需要使用测试工具产生压力,由测试工具模拟多用户并发访问系统,以此测试软件产品在不同压力指标下的性能结果。
性能测试一般使用每秒请求数作为性能指标。如图1所示,业界现有的性能测试工具使用如下方法产生和控制压力:测试工具系统产生多个并发任务,每个任务休眠一段时间(休眠时间)执行一次,每次向被测系统连续发送若干请求。假设测试工具生成10个并发任务,每个任务的休眠时间是10毫秒,休眠结束后发送10次请求。如果测试请求的生成时间和发送时间可以忽略,则每个任务每秒可执行100次,每秒能够向被测试系统发送1000次请求。该方法存在如下问题:
1、测试执行的实际指标与设定指标存在差距。每个任务每次执行(不包括休眠)需要消耗一定的时间,因此,任务的每个周期并不只是休眠时间。所以,测试的实际指标与设定指标存在一定的差距。如果测试请求生成过程复杂,占用的时间与休眠时间相近,则实际指标与设定指标差距更大。
2、不能精确设定任意的性能指标。例如:有的被测试系统希望以非整数(每秒2.5笔)指标测试性能,非整数情况下,不能精确得到每个周期发送的报文笔数,所以无法生成精确的压力。
3、多案例并发支持能力有限。测试过程中,总的指标要分散到各个任务中,如何将多个案例组合的指标分配到各个任务中是一个难度较大的问题。如果设定的指标是:案例A:每秒1000次;案例B:每秒100次;案例C:每秒220次;测试工具开启10个任务,每个任务如何分配压力指标成为一个难度较大的问题。如果每个任务只为同一个案例发送请求,则案例的压力不能在任务之间负载均衡,导致不能充分利用系统资源。
4、性能测试过程中无法实时控制和修改各个不同案例的性能指标。例如:在测试过程中要启动或停止某个案例;修改某个案例的性能指标。现有的方法一般都是用停止全部测试执行或停止部分任务,修改后重新启动的方法完成修改,不能在运行过程中随时启动,停止某个案例,或者调整某个案例的请求,指标等参数。
发明内容
为了克服现有技术不能精确设定指标,多案例并发支持能力不足等缺点,不能随时调整参数的问题,本发明提出了一种软件性能测试装置及方法。
为实现上述目的,本发明提供了一种软件性能测试装置,所述装置包括:
压力控制单元和压力生成单元,其中,
所述压力控制单元,包括:定时信号发生模块和控制信息生成模块;所述定时信号发生模块用于产生定时信号,所述控制信息生成模块用于在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息,并将所述控制信息发送至对应地压力生成单元;
所述压力生成单元,用于根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
可选的,在本发明一实施例中,所述压力控制单元还包括:用户接口模块;
所述用户接口模块,用于增加新的测试案例、删除测试案例和修改测试案例;同时,对所述压力参数进行相应修改。
可选的,在本发明一实施例中,所述压力控制单元还包括:压力参数存储模块;
所述压力参数存储模块,用于存储所述测试案例的压力参数。
可选的,在本发明一实施例中,所述压力控制单元同时与至少两个压力生成单元相连。
可选的,在本发明一实施例中,所述装置还包括统计单元;
所述统计单元,用于统计所述压力生成单元发送的测试报文的个数,并接收所述压力生成单元发送的测试报文的编号信息,做数据的持久化处理。
可选的,在本发明一实施例中,所述压力参数包括:案例号、案例每个时间周期要发送的请求次数、案例在本次周期内要发送的请求次数、和案例还应执行的周期数。
可选的,在本发明一实施例中,所述控制信息生成模块包括:
初始化子模块,用于初始化任务,并将初始化任务标记变量k为0
获取信息子模块,用于获得待执行的测试案例及相应的压力参数;
第一执行子模块,用于执行Wi=Wi+KPIi;其中,Wi为所述测试案例在本次周期内要发送的请求次数,KPIi为所述测试案例每个时间周期要发送的请求次数;
第二执行子模块,用于判断Wi是否大于1;如果Wi小于等于1,则执行TNi=TNi-1;其中,TNi为所述测试案例还应执行的周期数;如果Wi大于1,则生成所述控制信息,并传输至第k个压力生成单元来产生所述测试案例对应的测试报文,接着先后执行Wi=Wi-1,k=(k+1)mod N;其中,N为压力生成单元的个数;然后执行TNi=TNi-1;
条件子模块,用于当TNi等于0时,所述初始化子模块、所述获取信息子模块、所述第一执行子模块和所述第二执行子模块停止工作。
为实现上述目的,本发明还提供了一种软件性能测试方法,所述方法包括:
产生定时信号,在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息;
根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
可选的,在本发明一实施例中,所述方法还包括:
增加新的测试案例、删除测试案例或修改测试案例;同时,对所述压力参数进行相应修改。
可选的,在本发明一实施例中,所述方法还包括:
存储所述测试案例的压力参数。
可选的,在本发明一实施例中,所述方法还包括:统计所述测试报文的个数,并接收所述测试报文的编号信息,做持久化处理。
可选的,在本发明一实施例中,所述控制信息进行均衡分配处理。
可选的,在本发明一实施例中,所述压力参数包括:测试案例号、测试案例每个时间周期要发送的请求次数、测试案例在本次周期内要发送的请求次数和测试案例还应执行的周期数。
可选的,在本发明一实施例中,所述根据所述压力参数生成控制信息的步骤包括:
初始化任务标记变量k为0;
获得待执行的测试案例;
执行Wi=Wi+KPIi;其中,Wi为所述测试案例在本次周期内要发送的请求次数,KPIi为所述测试案例每个时间周期要发送的请求次数;
判断Wi是否大于1;如果Wi小于等于1,则执行TNi=TNi-1;其中,TNi为所述测试案例还应执行的周期数;如果Wi大于1,则生成所述控制信息,并传输至第k个压力生成单元来产生所述测试案例对应的测试报文,接着先后执行Wi=Wi-1,k=(k+1)modN;其中,N为压力生成单元的个数;然后执行TNi=TNi-1;
重复上述步骤,直至TNi等于0。
本发明提出的一种软件性能测试技术方案核心点是:通过定时信号发生模块周期性地向控制信息生成模块发消息,控制信息生成模块访问和操作压力参数存储模块,根据压力参数存储模块将待执行的案例号发送给各个压力生成模块。各个压力生成模块接受到控制消息后,生成对应案例的报文,然后发送给被测试的系统。该发明能够获得如下好处:
1、本技术方案使用定时器驱动压力生成,每个发送周期不包括报文生成时间和报文发送时间,因此压力控制与生成非常精准。
2、本技术方案支持任意指标的性能测试案例,性能指标可以是小数级别。例如:1.5笔/s,1234笔/s的案例。同时支持任意指标的案例组合。例如:案例A:1.5笔/s,案例B:100笔/s同时测试。
3、本技术方案能够保证案例组合测试场景下,各个压力生成装置负载均衡。所有的压力生成单元都受控于统一的压力控制单元。压力控制单元将每个定时周期内各个案例的指标均匀分配到各个压力生成单元上,能够充分保证各个生成装置负载均衡,克服了传统方法中多案例组合难以负载均衡的问题。
4、本技术方案能够非常方便地实现测试过程中随时启动、停止或修改某个案例,修改过程中对于其它案例的执行没有任何影响。
5、本技术方案在案例组合场景控制方面拥有很高的可扩展性。如果有新的场景需求(例如:某案例发送若干笔申请后停止;从某个时刻开始启动某个案例,到某个时刻结束;某案例的指标动态变化等),只要扩展压力参数存储模块和修改控制信息生成模块中的操作方法和流程即可完成对原有功能的扩展。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的软件性能测试流程图;
图2为本发明提出的一种软件性能测试装置框图之一;
图3为本发明提出的一种软件性能测试装置框图之二;
图4为本发明提出的一种软件性能测试装置框图之三;
图5为本发明提出的一种软件性能测试装置框图之四;
图6为本发明提出的一种软件性能测试方法流程图;
图7为本实施例的软件性能测试装置框图;
图8为本实施例的软件性能测试总体流程图;
图9为本实施例中涉及到的压力参数表格式图;
图10为本实施例中控制信息生成模块工作流程图;
图11为本实施例中用户接口模块工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种软件性能测试的技术方案,适用于软件性能测试中多用户多案例并发访问的场景的模拟,克服了现有技术不能精确设定指标,多案例并发支持能力不足等缺点,不能随时调整参数的问题。该方法能够模拟用户设定的任意性能指标,精确地按照用户设定的指标发送服务请求,在性能测试过程中能对并发测试场景做实时修改,可随时启动,停止某个测试案例或修改某个案例的性能指标。
如图2所示,为本实施例提出的一种软件性能测试框图之一。所述装置包括:
压力控制单元201和压力生成单元202,其中,
所述压力控制单元201,包括:定时信号发生模块2011和控制信息生成模块2012;所述定时信号发生模块2011用于产生定时信号,所述控制信息生成模块2012用于在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息,并将所述控制信息发送至对应地压力生成单元202;
所述压力生成单元202,用于根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
如图3所示,为本实施例提出的一种软件性能测试框图之二。在图2的基础上,所述压力控制单元201还包括:用户接口模块2013;
所述用户接口模块2013,用于增加新的测试案例、删除测试案例和修改测试案例;同时,对所述压力参数进行相应修改。
如图4所示,为本实施例提出的一种软件性能测试框图之三。在图3的基础上,所述压力控制单元201还包括:压力参数存储模块2014;
所述压力参数存储模块2014,用于存储所述测试案例的压力参数。
可选的,在本发明一实施例中,所述压力控制单元201同时与至少两个压力生成单元202相连。
如图5所示,为本实施例提出的一种软件性能测试框图之四。在图4的基础上,所述装置还包括统计单元203;
所述统计单元203,用于统计所述压力生成单元发送的测试报文的个数,并接收所述压力生成单元发送的测试报文的编号信息,做数据的持久化处理。
可选的,在本发明一实施例中,所述压力参数包括:案例号、案例每个时间周期要发送的请求次数、案例在本次周期内要发送的请求次数、和案例还应执行的周期数。
可选的,在本发明一实施例中,所述控制信息生成模块2012包括:
初始化子模块,用于初始化任务,并将初始化任务标记变量k为0;
获取信息子模块,用于获得待执行的测试案例及相应的压力参数;
第一执行子模块,用于执行Wi=Wi+KPIi;其中,Wi为所述测试案例在本次周期内要发送的请求次数,KPIi为所述测试案例每个时间周期要发送的请求次数;
第二执行子模块,用于判断Wi是否大于1;如果Wi小于等于1,则执行TNi=TNi-1;其中,TNi为所述测试案例还应执行的周期数;如果Wi大于1,则生成所述控制信息,并传输至第k个压力生成单元来产生所述测试案例对应的测试报文,接着先后执行Wi=Wi-1,k=(k+1)mod N;其中,N为压力生成单元的个数;然后执行TNi=TNi-1;
条件子模块,用于当TNi等于0时,所述初始化子模块、所述获取信息子模块、所述第一执行子模块和所述第二执行子模块停止工作。
如图6所示,为本发明提出的一种软件性能测试方法流程图。所述方法包括:
步骤601):产生定时信号,在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息;
步骤601):根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
可选的,在本发明一实施例中,所述方法还包括:
增加新的测试案例、删除测试案例或修改测试案例;同时,对所述压力参数进行相应修改。
可选的,在本发明一实施例中,所述方法还包括:
存储所述测试案例的压力参数。
可选的,在本发明一实施例中,所述方法还包括:统计所述测试报文的个数,并接收所述测试报文的编号信息,做持久化处理。
可选的,在本发明一实施例中,所述控制信息进行均衡分配处理。
可选的,在本发明一实施例中,所述压力参数包括:测试案例号、测试案例每个时间周期要发送的请求次数、测试案例在本次周期内要发送的请求次数和测试案例还应执行的周期数。
实施例:
如图7所示,为本实施例的软件性能测试装置框图。软件压力测试装置由压力控制单元001,压力生成单元002和统计单元003三部分组成。压力控制单元001和统计单元003各配置一套。压力生成单元002可部署多套(假设配置了N套),每套单元可部署到单台测试用计算机设备或不同的设备上。本发明的总体流程参考图8,具体描述如下:用户通过接口模块设置案例;由定时信号发生模块产生定时信号,激活控制信息生成模块;控制信息生成模块访问压力参数存储模块,根据存储模块记录的信息生成控制信息;控制信息发送给压力生成单元,由压力生成单元生成对应的报文,并将报文发送给被测试的系统。报文发送后,压力生成单元将结果发送给统计单元,用于统计测试过程中的实际指标。
1、压力控制装置001
压力控制单元由定时信号发生模块101,控制信息生成模块102,压力参数存储模块103,用户接口模块104四部分组成。压力控制单元接收用户对各个案例的启动,修改操作,控制各个压力产生单元生成被测试系统的压力。各个装置描述如下:
定时信号发生模块101:定时信号发生装置是一个定时器(以下将该装置称为定时器),每隔周期T产生一次信号,并将信号发送给控制信息生成模块。周期T可预先设置,一般设置10毫秒或20毫秒。
压力参数存储模块103:压力参数存储模块是一张记录当前执行情况的二维表,(以下将其称为压力参数表)。压力参数表接受来自用户接口模块提供的案例信息,初始化该案例的参数;同时向控制信息生成模块提供当前的参数,用于产生控制信息。该压力参数表的结构如图9。每条记录的详细描述如下:
CN:案例号;
KPI:该案例对应的性能测试指标,表示该案例每个时间周期要发送的请求次数;
W:该案例在本次周期内要发送的请求次数;
TN:案例还应执行的周期数。TN初始化=案例执行时间/T
控制信息生成模块102:控制信息生成模块接收到定时信号发生模块发送的信号。每接到信号,做一次处理。该模块访问压力参数表,使用图10的工作流程生成控制信息,发送给压力生成单元。流程详细描述如下:
步骤301:初始化任务标记变量k为0;
步骤302:扫描压力参数表,判断是否存在未处理的案例。如果没有,则退出。如果有,转步骤303;
步骤303:获取一个未处理的案例,假设为Ci,转步骤304;
步骤304:将压力参数表中该案例对应的本次周期的请求次数Wi,累加KPIi,即:执行Wi=Wi+KPIi,转步骤305;
步骤305:判断Wi是否大于1。如果Wi大于1,转步骤306,否则转步骤309;
步骤306:向第k个压力生成单元发送一个控制消息,要求该压力生成单元发送案例CNi对应的测试报文,转步骤307;
步骤307:Wi=Wi-1,转步骤308;
步骤308:k加1,然后除以N(N为压力生成装置的个数)取余,即:k=(k+1)mod N,转步骤305;
步骤309:修改TNi=TNi-1;转步骤310;
步骤310:判断TNi是否等于0;如果“是”,表示该案例的执行时间结束,转步骤311;如果“否”,转步骤302;
步骤311:将Ci从参数表中清除,转步骤302;
用户接口模块104:用户接口模块接收用户对案例的修改操作。通过用户接口模块可启动,停止,修改压力测试的案例。用户接口模块修改压力参数表即可完成测试案例的启动,停止和修改等操作。操作流程如图11,流程详细描述如下:
步骤401:停止定时器,转步骤402;
步骤402:判断对案例的修改方式。如果要求新增案例,转步骤403;如果要求停止案例,转步骤405;如果要求修改案例,转步骤408。
步骤403:在压力参数表中增加一行数据,用于标示新增案例,转步骤404
步骤404:设置该案例对应的持续周期个数TN。
TN=案例期望持续时间/周期T;转步骤406;
步骤405:从压力参数表中删除案例对应的测试案例的数据行,转步骤406;
步骤408:修改压力参数表中对应案例的数据,转步骤406;
步骤406启动定时器,转步骤407;
步骤407:结束。
2、压力生成装置002
压力生成单元用于生成报文,并将报文发送给被测试系统;报文发送完成后将报文编号发送给统计单元。压力控制单元生成的控制消息发送给控制信息接收模块,接收模块收到控制信息后,调用压力报文生成模块,生成压力报文;压力报文生成后调用压力报文发送模块,由压力报文发送模块发送给被测试系统。
压力生成单元可部署在同一个台机器上,或者部署在不同机器上。每个装置的详细描述如下:
控制信息接收模块201:控制信息接收模块是压力生成单元与压力控制单元的接口,用于接收来自压力控制单元的控制信息。控制信息接收模块可使用消息队列缓存来自压力控制单元的控制信息,以实现单元内各个模块的并发处理。
压力报文生成模块202:压力报文生成单元根据控制信息生成报文。压力报文生成单元是系统中负载最大的模块。
压力报文发送模块203:压力报文发送模块将生成的报文发送给被测试系统。
3、统计单元003
统计单元003:接收来自每一个压力生成单元发送的报文编号信息,并将数据汇总,做持久化处理。各个装置描述如下:
统计信息记录模块211:记录在一个统计周期内每个报文发送的个数。每接受到一个压力生成单元发送的报文编号信息,将报文号对应的记录数加1。
数据持久化模块212:每个统计周期运行一次,将统计信息记录模块中记录的内容写入文件或数据库,做数据的持久化处理。
用户使用如下组合案例测试系统:每秒1000笔的指标向被测试系统发送A报文100秒;以每秒200笔的指标向被测试系统发送B报文200秒;以每秒1.5笔的速度向被测系统发送C报文300秒。系统的定时信号发生模块(下称定时器)的定时周期为10毫秒(每秒100个周期),系统配置5套压力生成单元。
步骤1):用户通过用户接口模块向系统添加案例。系统停止定时信号发生模块,向压力参数存储模块(以下称为参数表)写入各个案例对应的初始参数,然后启动定时器。写入后,参数表变为如下表1内容。
表1
CN | KPI | W | TN |
A | 10 | 0 | 10000 |
B | 2 | 0 | 20000 |
C | 0.015 | 0 | 30000 |
步骤2):定时器每隔毫秒向控制信息生成模块发送信号。控制信息生成模块收到信号后执行步骤301-311,生成各个报文的控制信息发送给压力生成单元。
以报文A为例,执行步骤301-304,将参数表的A对应的W执行WA=WA+KPIA,WA的值变为10。执行步骤305到308,生成10个控制信息,平均分配给5个压力生成装置,即:每个压力生成装置会接收到2个A报文的控制信息。A报文处理完成后,WA变为0,TNA变为9999。压力生成单元中的控制信息接收模块每收到1个控制信息A后,压力报文生成模块将自动生成A报文,然后通过发送模块发送给被测系统,最后将信息A发送给统计单元。该过程将重复,直到控制信息接收模块中不再有任何控制信息。
报文B的处理流程与报文A处理类似。
报文C有所不同。第一个定时周期,C对应的WC变为0.015。由于该值小于1,因此不会生成C的控制信息。第二个,第三个到底时,也不会生成。直到第100个周期到达时,WC变为1.5,大于1。于是向压力生成单元发送1个控制信息C。发送后,WC变为0.5。下一个周期到来时,执行WC=WC+KPIC,WC变为0.515,仍然小于1,不发送控制信息,只是每次累加0.015。直到该值累加超过1,才发送控制信息。
通过上述实施例分析可知,本发明提出的技术方案能够模拟用户设定的任意性能指标,精确地按照用户设定的指标发送服务请求,在性能测试过程中能对并发测试场景做实时修改,可随时启动,停止某个测试案例或修改某个案例的性能指标。
最后应说明的是:上述仅用以说明本发明而并非限制本发明所描述的技术方案;尽管本说明书对本发明已进行了详细的说明,但是,本领域的技术人员仍然可以对本发明进行修改或等同替换,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。
Claims (14)
1.一种软件性能测试装置,其特征在于,所述装置包括:
压力控制单元和压力生成单元,其中,
所述压力控制单元,包括:定时信号发生模块和控制信息生成模块;所述定时信号发生模块用于产生定时信号,所述控制信息生成模块用于在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息,并将所述控制信息发送至对应的压力生成单元;
所述压力生成单元,用于根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
2.如权利要求1所述的装置,其特征在于,所述压力控制单元还包括:用户接口模块;
所述用户接口模块,用于增加新的测试案例、删除测试案例和修改测试案例;同时,对所述压力参数进行相应修改。
3.如权利要求2所述的装置,其特征在于,所述压力控制单元还包括:压力参数存储模块;
所述压力参数存储模块,用于存储所述测试案例的压力参数。
4.如权利要求1~3任一权利要求所述的装置,其特征在于,所述压力控制单元同时与至少两个压力生成单元相连。
5.如权利要求1~3任一权利要求所述的装置,其特征在于,所述装置还包括统计单元;
所述统计单元,用于统计所述压力生成单元发送的测试报文的个数,并接收所述压力生成单元发送的测试报文的编号信息,做数据的持久化处理。
6.如权利要求1~3任一权利要求所述的装置,其特征在于,所述压力参数包括:案例号、案例每个时间周期要发送的请求次数、案例在本次周期内要发送的请求次数、和案例还应执行的周期数。
7.如权利要求6任一权利要求所述的装置,其特征在于,所述控制信息生成模块包括:
初始化子模块,用于初始化任务,并将初始化任务标记变量k为0;
获取信息子模块,用于获得待执行的测试案例及相应的压力参数;
第一执行子模块,用于执行Wi=Wi+KPIi;其中,Wi为所述测试案例在本次周期内要发送的请求次数,KPIi为所述测试案例每个时间周期要发送的请求次数;
第二执行子模块,用于判断Wi是否大于1;如果Wi小于等于1,则执行TNi=TNi-1;其中,TNi为所述测试案例还应执行的周期数;如果Wi大于1,则生成所述控制信息,并传输至第k个压力生成单元来产生所述测试案例对应的测试报文,接着先后执行Wi=Wi-1,k=(k+1)mod N;其中,N为压力生成单元的个数;然后执行TNi=TNi-1;
条件子模块,用于当TNi等于0时,所述初始化子模块、所述获取信息子模块、所述第一执行子模块和所述第二执行子模块停止工作。
8.一种软件性能测试方法,其特征在于,所述方法包括:
产生定时信号,在所述定时信号作用下,获得待执行的测试案例的压力参数,根据所述压力参数生成控制信息;
根据所述控制信息生成所述测试案例对应的测试报文,并将所述测试报文发送至被测试系统。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
增加新的测试案例、删除测试案例或修改测试案例;同时,对所述压力参数进行相应修改。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
存储所述测试案例的压力参数。
11.如权利要求8~10任一权利要求所述的方法,其特征在于,所述方法还包括:统计所述测试报文的个数,并接收所述测试报文的编号信息,做持久化处理。
12.如权利要求8~10任一权利要求所述的方法,其特征在于,所述控制信息进行均衡分配处理。
13.如权利要求8~10任一权利要求所述的方法,其特征在于,所述压力参数包括:测试案例号、测试案例每个时间周期要发送的请求次数、测试案例在本次周期内要发送的请求次数和测试案例还应执行的周期数。
14.如权利要求13所述的方法,其特征在于,所述根据所述压力参数生成控制信息的步骤包括:
初始化任务标记变量k为0;
获得待执行的测试案例;
执行Wi=Wi+KPIi;其中,Wi为所述测试案例在本次周期内要发送的请求次数,KPIi为所述测试案例每个时间周期要发送的请求次数;
判断Wi是否大于1;如果Wi小于等于1,则执行TNi=TNi-1;其中,TNi为所述测试案例还应执行的周期数;如果Wi大于1,则生成所述控制信息,并传输至第k个压力生成单元来产生所述测试案例对应的测试报文,接着先后执行Wi=Wi-1,k=(k+1)modN;其中,N为压力生成单元的个数;然后执行TNi=TNi-1;
重复上述步骤,直至TNi等于0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410230916.6A CN104008054B (zh) | 2014-05-28 | 2014-05-28 | 一种软件性能测试装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410230916.6A CN104008054B (zh) | 2014-05-28 | 2014-05-28 | 一种软件性能测试装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104008054A true CN104008054A (zh) | 2014-08-27 |
CN104008054B CN104008054B (zh) | 2016-08-31 |
Family
ID=51368714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410230916.6A Active CN104008054B (zh) | 2014-05-28 | 2014-05-28 | 一种软件性能测试装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104008054B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776300A (zh) * | 2016-12-01 | 2017-05-31 | 北京驰波信息工程有限公司 | 一种中间系统的压力测试系统及方法 |
CN107612781A (zh) * | 2017-10-12 | 2018-01-19 | 上海斐讯数据通信技术有限公司 | 一种dhcp请求压力的测试方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241467A (zh) * | 2008-03-05 | 2008-08-13 | 罗笑南 | 一种面向Web应用的自动化白盒测试系统及方法 |
US20100005341A1 (en) * | 2008-07-02 | 2010-01-07 | International Business Machines Corporation | Automatic detection and notification of test regression with automatic on-demand capture of profiles for regression analysis |
CN102331967A (zh) * | 2011-06-15 | 2012-01-25 | 烽火通信科技股份有限公司 | 芯片验证测试用例的管理方法 |
CN103049367A (zh) * | 2011-10-11 | 2013-04-17 | 神州数码信息系统有限公司 | 一种软件自动化测试的方法 |
-
2014
- 2014-05-28 CN CN201410230916.6A patent/CN104008054B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241467A (zh) * | 2008-03-05 | 2008-08-13 | 罗笑南 | 一种面向Web应用的自动化白盒测试系统及方法 |
US20100005341A1 (en) * | 2008-07-02 | 2010-01-07 | International Business Machines Corporation | Automatic detection and notification of test regression with automatic on-demand capture of profiles for regression analysis |
CN102331967A (zh) * | 2011-06-15 | 2012-01-25 | 烽火通信科技股份有限公司 | 芯片验证测试用例的管理方法 |
CN103049367A (zh) * | 2011-10-11 | 2013-04-17 | 神州数码信息系统有限公司 | 一种软件自动化测试的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776300A (zh) * | 2016-12-01 | 2017-05-31 | 北京驰波信息工程有限公司 | 一种中间系统的压力测试系统及方法 |
CN106776300B (zh) * | 2016-12-01 | 2020-12-11 | 银清科技有限公司 | 一种中间系统的压力测试系统及方法 |
CN107612781A (zh) * | 2017-10-12 | 2018-01-19 | 上海斐讯数据通信技术有限公司 | 一种dhcp请求压力的测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104008054B (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106815066B (zh) | 一种定时任务调度方法、装置及系统 | |
CN108132833A (zh) | 一种基于zookeeper技术的分布式定时任务调度方法和装置 | |
CN110502340A (zh) | 一种资源动态调整方法、装置、设备及存储介质 | |
CN104572444A (zh) | 一种游戏性能云测试平台及其测试方法 | |
CN106897206A (zh) | 一种业务测试方法及装置 | |
US20200012507A1 (en) | Control system for microkernel architecture of industrial server and industrial server comprising the same | |
CN106649057A (zh) | 一种服务器压力测试的方法及装置 | |
CN102855173B (zh) | 一种软件性能测试方法和装置 | |
US7353160B2 (en) | Method for controlling sequential object-oriented system-simulations | |
CN108197155A (zh) | 信息数据同步方法、装置及计算机可读存储介质 | |
CN103176892A (zh) | 一种页面监控方法及系统 | |
CN111694644A (zh) | 基于机器人操作系统的消息处理方法、装置及计算机设备 | |
CN110532044A (zh) | 一种大数据批处理方法、装置、电子设备及存储介质 | |
CN105975367A (zh) | 移动设备的测试方法和装置 | |
CN110750453B (zh) | 基于html5的智能移动端测试方法、系统、服务器及存储介质 | |
CN113110867A (zh) | Rpa机器人的管理方法、装置、服务器和存储介质 | |
EP0453160A2 (en) | A method and apparatus for analyzing the flow of data through a complex information exchange system | |
CN104008054A (zh) | 一种软件性能测试装置及方法 | |
CN113342679A (zh) | 接口测试方法及测试装置 | |
CN101098359A (zh) | 一种用于测试仪的分时测试方法 | |
CN112463340A (zh) | 基于tensorflow的多任务弹性调度方法及系统 | |
CN115437761A (zh) | 调度器的仿真方法、电子设备和存储介质 | |
CN103164338A (zh) | 并发处理系统的模拟方法及装置 | |
CN106598708B (zh) | 一种时间触发的嵌入式任务通讯装置与方法 | |
CN116204307A (zh) | 兼容不同计算框架的联邦学习方法和联邦学习系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |