一种在测试执行中动态调度并发数量的方法及装置制造方法及图纸

技术编号:11808979 阅读:76 留言:0更新日期:2015-08-01 01:04
本申请提供了一种在测试执行中动态调度并发数量的方法及装置,能够动态的改变进程的执行。所述的方法包括:主进程接收操作请求;主进程将共享内存中主进程结构体内的操作变量值设置为代表该操作请求的值,向子进程发送通知信号;子进程接收到所述通知信号后,通过判断所述共享内存中主进程结构体内的操作变量值,执行相应的操作。本申请基于多进程多线程,通过所述的方法及装置,可以根据用户的操作请求,通过改变主进程结构体内的操作变量值,动态的改变进程的执行,控制每一组进程的执行状态,实现几种进程状态之间的转换,从而可以丰富测试场景,相应的也可以制作复杂的测试曲线。

【技术实现步骤摘要】
一种在测试执行中动态调度并发数量的方法及装置本专利技术专利申请是申请日为2011年6月17日、申请号为201110163953.6、名称为“一种测试执行的调度方法及装置”的中国专利技术专利申请的分案申请。
本申请涉及测试技术,特别是涉及在性能测试中,一种在测试执行中动态调度并发数量的方法及装置。
技术介绍
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。软件测试中的性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。在性能测试中,包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。目前,在并发性能测试中,并发请求的调度在一开始执行性能测试的时候就固定了,用户输入了要生成的并发数后,系统就按照这个固定的值去生成并发。但是实际应用中,系统会有许多不同的情况,例如,某系统在夜晚零点,要求用于测试的并发数达到谷底,而在上午九点和中午十二点,又要求并发数达到两个高峰期,但是上述的调度方法在整个测试过程中并发数的生成是固定的,无法模拟该系统的这种测试情况。因此,在现有的并发性能测试中,上述这种并发调度方法无法模拟复杂的测试场景,导致测试结果不足以说明测试场景所遇到的问题,甚至可能导致测试出现问题。
技术实现思路
本申请提供了一种在测试执行中动态调度并发数量的方法及装置,以解决测试中并发数固定的问题。本申请公开了一种在测试执行中动态调度并发数量的方法,包括:主进程接收用户的操作请求;主进程用于生成多个子进程,每个子进程用于生成多个子线程;主进程将共享内存中主进程结构体内的操作变量值设置为代表该操作请求的值,向子进程发送通知信号;子进程在接收到所述通知信号时,通过判断所述共享内存中主进程结构体内的操作变量值,执行相应的操作;其中,当用户的操作请求为停止、暂停或恢复子进程执行的请求时,子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表所述操作请求的值;则所述方法还包括:子进程的每个子线程循环执行测试代码;子线程在每次循环执行之前,通过判断共享内存中所属子进程结构体内的操作变量值,执行相应的操作;相应的操作包括:继续执行测试,或者不执行直接进入下一次循环,或者直接退出该子进程。优选地,当用户的操作请求为强制退出测试执行的请求时,子进程执行的相应操作包括:子进程退出进程操作。优选地,当用户的操作请求为停止所有子进程执行的请求时:每个子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表停止执行的值;每个子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程结构体内的操作变量值设置为代表停止执行的值,则退出循环操作;每个子进程执行的相应操作还包括:子进程等到该子进程的每个子线程都退出循环操作后,分析该子进程的测试数据并生成测试报告。优选地,当用户的操作请求为暂停所有子进程执行的请求时:每个子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表暂停执行的值;每个子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程结构体内的操作变量值设置为代表暂停执行的值,则停止执行该次循环操作,并跳入下一次循环。优选地,当用户的操作请求为恢复所有子进程执行的请求时:每个子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表继续执行的值;每个子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程结构体内的操作变量值设置为代表继续执行的值,则继续执行循环操作。优选地,当用户的操作请求为选择性暂停部分子进程执行的请求时,还包括:主进程遍历共享内存中每个子进程结构体,根据子进程结构体内的操作变量值判断子进程是否正在执行,并将正在执行的子进程标识发给用户;主进程接收用户选择暂停的子进程标识,将共享内存中主进程结构体内的操作变量值设置为代表选择性暂停部分子进程执行的值,然后向用户选择暂停的子进程发送通知信号;所述用户选择暂停的子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表暂停执行的值;所述用户选择暂停的子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程结构体内的操作变量值设置为代表暂停执行的值,则停止执行该次循环操作,并跳入下一次循环。优选地,当用户的操作请求为选择性恢复部分子进程执行的请求时,还包括:主进程遍历共享内存中每个子进程结构体,根据子进程结构体内的操作变量值判断子进程是否暂停执行,并将暂停执行的子进程标识发给用户;主进程接收用户选择恢复的子进程标识,将共享内存中主进程结构体内的操作变量值设置为代表选择性恢复部分子进程执行的值,然后向用户选择恢复的子进程发送通知信号;所述用户选择恢复的子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表继续执行的值;所述用户选择恢复的子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程结构体内的操作变量值设置为代表继续执行的值,则继续执行循环操作。优选地,所述主进程接收用户的操作请求之前,还包括:主进程接收用户发来的调度控制信号,并向用户返回操作菜单;主进程接收所述操作菜单中用户选择的操作选项,所述操作菜单中的每个操作选项对应一个操作请求。本申请还公开了一种在测试执行中动态调度并发数量装置,包括:用户交互单元,用于主进程接收用户的操作请求;主进程用于生成多个子进程,每个子进程用于生成多个子线程;主进程调度单元,用于主进程将共享内存中主进程结构体内的操作变量值设置为代表该操作请求的值,向子进程发送通知信号;子进程调度单元,用于子进程在接收到所述通知信号时,通过判断所述共享内存中主进程结构体内的操作变量值,执行相应的操作;其中,当用户的操作请求为停止、暂停或恢复子进程执行的请求时:所述子进程调度单元用于子进程将共享内存中该子进程结构体内的操作变量值设置为代表所述操作请求的值;则所述装置还包括:子线程调度单元,用于子进程的每个子线程循环执行测试代码;子线程在每次循环执行之前,通过判断共享内存中所属子进程结构体内的操作变量值,执行相应的操作;相应的操作包括:继续执行测试,或者不执行直接进入下一次循环,或者直接退出该子进程。优选地,当用户的操作请求为强制退出测试执行的请求时,所述子进程调度单元包括:强制退出子单元,用于子进程退出进程操作。优选地,当用户的操作请求为停止所有子进程执行的请求时:所述子进程调度单元包括:进程停止子单元,用于每个子进程执行如下的相应操作:子进程将共享内存中该子进程结构体内的操作变量值设置为代表停止执行的值;所述子线程调度单元包括:线程停止子本文档来自技高网
...
一种在测试执行中动态调度并发数量的方法及装置

【技术保护点】
一种在测试执行中动态调度并发数量的方法,其特征在于,包括:主进程接收操作请求;主进程用于生成多个子进程,每个子进程用于生成多个子线程;主进程将共享内存中主进程结构体内的操作变量值设置为代表该操作请求的值,向子进程发送通知信号;子进程在接收到所述通知信号时,执行与所述共享内存中主进程结构体内的操作变量值相应的操作;其中,当操作请求为停止、暂停或恢复子进程执行的请求时,子进程执行的相应操作包括:子进程将共享内存中该子进程结构体内的操作变量值设置为代表所述操作请求的值;则所述方法还包括:子进程的每个子线程循环执行测试代码;子线程在每次循环执行之前,通过判断共享内存中所属子进程结构体内的操作变量值,执行相应的操作;相应的操作包括:继续执行测试,或者不执行直接进入下一次循环,或者直接退出该子进程。

【技术特征摘要】
1.一种在测试执行中动态调度并发数量的方法,其特征在于,包括:主进程接收用户的操作请求;主进程用于生成多个子进程,每个子进程用于生成多个子线程;主进程将共享内存中主进程的结构体内的操作变量值设置为代表该操作请求的值,向子进程发送通知信号;子进程在接收到所述通知信号时,通过判断所述共享内存中主进程的结构体内的操作变量值,执行相应的操作;其中,当用户的操作请求为停止、暂停或恢复子进程执行的请求时,子进程执行的相应操作包括:子进程将共享内存中该子进程的结构体内的操作变量值设置为代表所述操作请求的值;则所述方法还包括:子进程的每个子线程循环执行测试代码;子线程在每次循环执行之前,通过判断共享内存中所属子进程的结构体内的操作变量值,执行相应的操作;相应的操作包括:继续执行测试,或者不执行直接进入下一次循环,或者直接退出该子进程。2.根据权利要求1所述的方法,其特征在于,当用户的操作请求为强制退出测试执行的请求时,子进程执行的相应操作包括:子进程退出进程操作。3.根据权利要求1所述的方法,其特征在于,当用户的操作请求为停止所有子进程执行的请求时:每个子进程执行的相应操作包括:子进程将共享内存中该子进程的结构体内的操作变量值设置为代表停止执行的值;每个子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程的结构体内的操作变量值设置为代表停止执行的值,则退出循环操作;每个子进程执行的相应操作还包括:子进程等到该子进程的每个子线程都退出循环操作后,分析该子进程的测试数据并生成测试报告。4.根据权利要求1所述的方法,其特征在于,当用户的操作请求为暂停所有子进程执行的请求时:每个子进程执行的相应操作包括:子进程将共享内存中该子进程的结构体内的操作变量值设置为代表暂停执行的值;每个子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程的结构体内的操作变量值设置为代表暂停执行的值,则停止执行该次循环操作,并跳入下一次循环。5.根据权利要求1所述的方法,其特征在于,当用户的操作请求为恢复所有子进程执行的请求时:每个子进程执行的相应操作包括:子进程将共享内存中该子进程的结构体内的操作变量值设置为代表继续执行的值;每个子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程的结构体内的操作变量值设置为代表继续执行的值,则继续执行循环操作。6.根据权利要求1所述的方法,其特征在于,当用户的操作请求为选择性暂停部分子进程执行的请求时,还包括:主进程遍历共享内存中每个子进程的结构体,根据子进程的结构体内的操作变量值判断子进程是否正在执行,并将正在执行的子进程标识发给用户;主进程接收用户选择暂停的子进程标识,将共享内存中主进程的结构体内的操作变量值设置为代表选择性暂停部分子进程执行的值,然后向用户选择暂停的子进程发送通知信号;所述用户选择暂停的子进程执行的相应操作包括:子进程将共享内存中该子进程的结构体内的操作变量值设置为代表暂停执行的值;所述用户选择暂停的子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程的结构体内的操作变量值设置为代表暂停执行的值,则停止执行该次循环操作,并跳入下一次循环。7.根据权利要求1所述的方法,其特征在于,当用户的操作请求为选择性恢复部分子进程执行的请求时,还包括:主进程遍历共享内存中每个子进程的结构体,根据子进程的结构体内的操作变量值判断子进程是否暂停执行,并将暂停执行的子进程标识发给用户;主进程接收用户选择恢复的子进程标识,将共享内存中主进程的结构体内的操作变量值设置为代表选择性恢复部分子进程执行的值,然后向用户选择恢复的子进程发送通知信号;所述用户选择恢复的子进程执行的相应操作包括:子进程将共享内存中该子进程的结构体内的操作变量值设置为代表继续执行的值;所述用户选择恢复的子进程的每个子线程执行的相应操作包括:子线程执行到下一次循环时,判断共享内存中所属子进程的结构体内的操作变量值设置为代表继续执行的值,则继续执行循环操作。8.根据权利要求1-7任一项所述的方法,其特征在于,所述主进程接收用户的操作请求之前,还包括:主进程接收用户发来的调度控制信号,并向用户返回操作菜单;主进程接收所述操作菜单中用户选择的操作选项,所述操作菜单中的每个操作选项对应一个操作请求。9.一种在测试执行中动态调度并发数量装置,其特征在于,包括:用户交互单元,用于主进程接收用户的操作请求;主进程用于生成多个子进程,每个子进程用于生成多个子线程;主进程调度单元,用于主进程将共享内存中主进程的结构体内的操作变量值设置为代表该操作请求的值,向子进程发送通知信号;子进程调度单元,用于子进程在接收到所述通...

【专利技术属性】
技术研发人员:崔峥
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1