一种用户并发访问的测试方法和系统的制作方法

文档序号:6492960阅读:146来源:国知局
一种用户并发访问的测试方法和系统的制作方法
【专利摘要】本发明公开了一种用户并发访问的测试方法和系统,并发调度单元接收用户申请执行的任务;并发调度单元按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列;并发调度单元从任务调度队列中取出子任务,执行子任务。本发明的用户并发访问的测试方法和系统,将执行的任务分解为子任务并分别执行,采用了对任务执行的调度而并非直接对用户进行调度,可以在用户高并发负载的情况下,处理大量的用户并发测试任务,既保证用户响应时间统计的准确性,也保证用户任务执行的公平性。
【专利说明】一种用户并发访问的测试方法和系统
【技术领域】
[0001]本发明涉及并发访问测试【技术领域】,尤其涉及一种用户并发访问的测试方法和系统。
【背景技术】
[0002]在进行软硬件件性能测试时,由于性能测试模型中的用户高并发负载特点,在用户增加到比较庞大数量时并发访问,在某一时刻就会有数百个甚至更多的事务执行请求,来处理大量的用户任务,这就需要一个有效的调度方法。
[0003]目前,压力测试时并发用户调度方法一般是采用通过多线程技术来实现多用户的并发访问,每一个线程代表一个用户。但这种方法,存在以下明显不足:对线程进行直接调度,有可能出现某一个用户请求等待过长的时间才能获取可用的数据库连接,用户往往会无法精确统计一个用户请求从发出到接收执行的响应时间,也就是在最终的结果输出时无法正确统计每个用户请求的响应时间与事务的执行数量、比例、成功与否等情况。

【发明内容】

[0004]有鉴于此,本发明要解决的一个技术问题是提供一种用户并发访问的测试方法,将执行的任务分解为子任务并分别执行。
[0005]一种用户并发访问的测试方法,包括:所述并发调度单元接收用户申请执行的任务;所述并发调度单元按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列;所述并发调度单元从所述任务调度队列中取出子任务,执行所述子任务。
[0006]根据本发明的方法的一个实施例,进一步的,所述并发调度单元对用户申请执行的任务进行校验;如果校验通过,则所述并发调度单元接受该用户申请执行的任务;如果校验不通过,则拒绝该用户的任务申请,并给出失败的原因描述。
[0007]根据本发明的方法的一个实施例,进一步的,在用户申请执行的任务时,用户创建执行线程,并给执行线程命名,启动所述执行线程;在所述并发调度单元接受该用户申请执行的任务后,所述并发调度单元发送确认信息,所述执行线程挂起等待任务执行。
[0008]根据本发明的方法的一个实施例,进一步的,所述并发调度单元从所述任务调度队列中取出子任务,调用与所子任务对应的执行线程执行所述子任务;当子任务执行完成后,该执行线程自动终止或强制地终止。
[0009]根据本发明的方法的一个实施例,进一步的,所述并发调度单元管理和维护所述任务调度队列,并统计所述任务调度队列中的子任务的执行时间,生成测试日志。
[0010]根据本发明的方法的一个实施例,进一步的,根据任务类型设置多个任务调度队列;所述并发调度单元接收任务后,根据任务类型分解任务,根据被测试事务的类型,加入到对应的任务调度队列中。
[0011]本发明要解决的一个技术问题是提供一种用户并发访问的测试系统,将执行的任务分解为子任务并分别执行。[0012]一种用户并发访问的测试系统,包括:并发调度单元;所述并发调度单元包括:任务接收模块,用于接收用户申请执行的任务;任务分解模块,用于按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列;任务执行模块,从所述任务调度队列中取出子任务,执行所述子任务。
[0013]根据本发明的系统的一个实施例,进一步的,所述任务接收模块对用户申请执行的任务进行校验;如果校验通过,则所述任务接收模块接受该用户申请执行的任务;如果校验不通过,则任务接收模块拒绝该用户的任务申请,并给出失败的原因描述。
[0014]根据本发明的系统的一个实施例,进一步的,在用户申请执行的任务时,用户创建执行线程,并给执行线程命名,启动所述执行线程;在所述并发调度单元接受该用户申请执行的任务后,所述任务接收模块发送确认信息,所述执行线程挂起等待任务执行。
[0015]根据本发明的系统的一个实施例,进一步的,所述任务执行模块从所述任务调度队列中取出子任务,调用与所子任务对应的执行线程执行所述子任务;其中,当子任务执行完成后,该执行线程自动终止或强制地终止。
[0016]根据本发明的系统的一个实施例,进一步的,所述任务分解模块管理和维护所述任务调度队列;所述任务执行模块统计所述任务调度队列中的子任务的执行时间,生成测
试曰志。
[0017]根据本发明的系统的一个实施例,进一步的,根据任务类型设置多个任务调度队列;所述任务分解模块接收任务后,根据任务类型分解任务,根据被测试事务的类型,加入到对应的任务调度队列中。
[0018]本发明的用户并发访问的测试方法和系统,将执行的任务分解为子任务并分别执行,采用了对任务执行的调度而并非直接对用户进行调度,可以在用户高并发负载的情况下,处理大量的用户并发测试任务,既保证用户响应时间统计的准确性,也保证用户任务执行的公平性。
【专利附图】

【附图说明】
[0019]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为根据本发明的用户并发访问的测试方法的一个实施例的流程图;
[0021]图2为根据本发明的用户并发访问的测试方法的另一个实施例的流程图;
[0022]图3为根据本发明的用户并发访问的测试方法中任务执行的一个实施例的流程图;
[0023]图4为根据本发明的用户并发访问的测试系统的一个实施例中的并发调度单元的示意图。
【具体实施方式】
[0024]下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
[0025]线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定.[0026]多任务是相对与操作系统而言,指的是同一时间执行多个程序的能力,但是实际上在只有一个CPU的条件下不可能同时执行两个以上的程序。操作系统在任一时间点只能执行一个任务,也就是同一时间只能执行一个程序。
[0027]图1为根据本发明的用户并发访问的测试方法的一个实施例的流程图;如图1所示:
[0028]步骤102,并发调度单元接收用户申请执行的任务;
[0029]步骤103,并发调度单元按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列;
[0030]步骤104,并发调度单元从任务调度队列中取出子任务,执行子任务。
[0031]举个例子来说,正在通过web浏览器查看一些精彩的文章,需要把好的文章给下载下来,可能有些非常精彩的文章需要收藏起来,并用打印机打印这些在线的文章,这就是一个任务。将此任务分为:浏览器下载HTML格式的文章、打印文章、收藏文章等的子任务。每个子任务可以分配一个线程来完成。
[0032]根据本发明的一个实施例,并发调度单元对用户申请执行的任务进行校验;如果校验通过,则并发调度单元接受该用户申请执行的任务;如果校验不通过,则拒绝该用户的任务申请,并给出失败的原因描述。可以对用户的权限,或根据系统的设置进行判断用户申请执行的任务是否可以执行。
[0033]根据本发明的一个实施例,在用户申请执行的任务时,用户创建执行线程,并给执行线程命名,启动执行线程;在并发调度单元接受该用户申请执行的任务后,并发调度单元发送确认信息,执行线程挂起等待任务执行。
[0034]用户在测试一个任务时,可以预先生成多个线程,成为线程池,并且对线程池中的线程命名,线程的名字可以与任务分解成的子任务相对应。或者,在执行子任务时,再创建执行子任务的单元。
[0035]根据本发明的一个实施例,并发调度单元从任务调度队列中取出子任务,调用与所子任务对应的执行线程执行子任务;当子任务执行完成后,该执行线程自动终止或强制地终止。同步线程,当这份资源由某个线程进行存取的时候,其他的线程将没有权限可以存取这份资源,直到其被释放。
[0036]图2为根据本发明的用户并发访问的测试方法的另一个实施例的流程图;如图2所示:
[0037]步骤201,用户(线程)生成任务输入,向并发调度单元申请执行任务;
[0038]步骤202,并发调度单元接收执行任务,按照任务类型,分解执行任务,放入任务调度队列;[0039]步骤203,遍历任务调度队列;
[0040]步骤204,判断任务调度队列中是否有任务,如果有,进入步骤205,如果没有则返回步骤203 ;
[0041]步骤205,并发调度单元执行任务;
[0042]步骤206,判断任务执行是否成功,如果成功则进入步骤207,如果不成功,则返回步骤203 ;
[0043]步骤207,统计测试结果,生成测试日志;
[0044]步骤208,判断是否还有任务,如果还有,则返回步骤203,如果没有则进入步骤209,结束。
[0045]根据本发明的一个实施例,可以通过用户界面生成任务输入,向并发调度单元申请执行任务,所述的并发调度端有任务,且任务未完成时,显示为工作状态;当遍历任务列表时,所有的任务都执行完毕,显示为结束状态。
[0046]图3为根据本发明的用户并发访问的测试方法中任务执行的一个实施例的流程图;如图3所示:
[0047]步骤301,用户选择要完成的事务;
[0048]步骤302,生成任务输入;
[0049]步骤303,并发调度单元按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列;
[0050]步骤304,并发调度单元从任务调度队列中取出子任务,执行子任务,统计任务调度队列中的子任务的执行时间,生成测试日志。
[0051]根据本发明的一个实施例,并发调度单元管理和维护任务调度队列,并统计任务调度队列中的子任务的执行时间,生成测试日志。将构成用户任务的子任务的执行时间相力口,得出比较准确的用户任务的执行时间。
[0052]根据本发明的一个实施例,根据任务类型设置多个任务调度队列;并发调度单元接收任务后,根据任务类型分解任务,根据被测试事务的类型,加入到对应的任务调度队列中,例如,针对打印和下载分别设置两个不同的任务调度队列。
[0053]图4为根据本发明的用户并发访问的测试系统的一个实施例中的并发调度单元的示意图。如图4所示,用户并发访问的测试系统,包括:并发调度单元41;并发调度单元包括:任务接收模块411、任务分解模块412和任务执行模块413。
[0054]任务接收模块411接收用户申请执行的任务;任务分解模块412按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列;任务执行模块413从任务调度队列中取出子任务,执行子任务。
[0055]根据本发明的一个实施例,任务接收模块411对用户申请执行的任务进行校验;如果校验通过,则任务接收模块411接受该用户申请执行的任务;如果校验不通过,则任务接收模块411拒绝该用户的任务申请,并给出失败的原因描述。
[0056]根据本发明的一个实施例,在用户申请执行的任务时,用户创建执行线程,并给执行线程命名,启动执行线程;在接受该用户申请执行的任务后,任务接收模块411发送确认信息,执行线程挂起等待任务执行。
[0057]根据本发明的一个实施例,任务执行模块413从任务调度队列中取出子任务,调用与子任务对应的执行线程执行子任务;其中,当子任务执行完成后,该执行线程自动终止或强制地终止。
[0058]根据本发明的一个实施例,任务分解模块412管理和维护任务调度队列;任务执行模块413统计任务调度队列中的子任务的执行时间,生成测试日志。
[0059]根据本发明的一个实施例,根据任务类型设置多个任务调度队列;任务分解模块接收任务后,根据任务类型分解任务,根据被测试事务的类型,加入到对应的任务调度队列中。
[0060]本发明的用户并发访问的测试方法和系统,采用了对任务执行的调度而并非直接对用户进行调度,可以在用户高并发负载的情况下,处理大量的用户并发测试任务,既保证用户响应时间统计的准确性,也保证用户任务执行的公平性。
[0061]可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
[0062]本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
【权利要求】
1.一种用户并发访问的测试方法,其特征在于,包括: 并发调度单元接收用户申请执行的任务; 所述并发调度单元按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列; 所述并发调度单元从所述任务调度队列中取出子任务,执行所述子任务。
2.如权利要求1所述的方法,其特征在于: 所述并发调度单元对用户申请执行的任务进行校验; 如果校验通过,则所述并发调度单元接受该用户申请执行的任务;如果校验不通过,则拒绝该用户的任务申请,并给出失败的原因描述。
3.如权利要求2所述的方法,其特征在于: 在用户申请执行的任务时,用户创建执行线程,并给执行线程命名,启动所述执行线程; 在所述并发调度单元接受该用户申请执行的任务后,所述并发调度单元发送确认信息,所述执行线程挂起等待任务执行。
4.如权利要求3所述的方法,其特征在于: 所述并发调度单元从所述任`务调度队列中取出子任务,调用与所子任务对应的执行线程执行所述子任务; 当子任务执行完成后,该执行线程自动终止或强制地终止。
5.如权利要求1所述的方法,其特征在于: 所述并发调度单元管理和维护所述任务调度队列,并统计所述任务调度队列中的子任务的执行时间,生成测试日志。
6.如权利要求5所述的方法,其特征在于: 根据任务类型设置多个任务调度队列; 所述并发调度单元接收任务后,根据任务类型分解任务,根据被测试事务的类型,加入到对应的任务调度队列中。
7.一种用户并发访问的测试系统,其特征在于,包括:并发调度单元;所述并发调度单元包括: 任务接收模块,用于接收用户申请执行的任务; 任务分解模块,用于按照任务类型,将任务分解为子任务,并将子任务放入任务调度队列; 任务执行模块,从所述任务调度队列中取出子任务,执行所述子任务。
8.如权利要求7所述的系统,其特征在于: 所述任务接收模块对用户申请执行的任务进行校验; 如果校验通过,则所述任务接收模块接受该用户申请执行的任务;如果校验不通过,则任务接收模块拒绝该用户的任务申请,并给出失败的原因描述。
9.如权利要求8所述的系统,其特征在于: 在用户申请执行的任务时,用户创建执行线程,并给执行线程命名,启动所述执行线程; 在所述任务接收模块接受该用户申请执行的任务后,所述任务接收模块发送确认信息,所述执行线程挂起等待任务执行。
10.如权利要求9所述的系统,其特征在于: 所述任务执行模块从所述任务调度队列中取出子任务,调用与所子任务对应的执行线程执行所述子任务; 其中,当子任务执行完成后,该执行线程自动终止或强制地终止。
11.如权利要求10所述的系统,其特征在于: 所述任务分解模块管理和维护所述任务调度队列; 所述任务执行模块统计所述任务调度队列中的子任务的执行时间,生成测试日志。
12.如权利要求11所述的系统,其特征在于: 根据任务类型设置多个任务调度队列; 所述任务分解模块接收任务后,根据任务类型分解任务,根据被测试事务的类型,加入到对应的任务调度队列中。`
【文档编号】G06F11/00GK103870348SQ201210543707
【公开日】2014年6月18日 申请日期:2012年12月14日 优先权日:2012年12月14日
【发明者】邱红飞, 李先绪, 黄植勤, 黄春光, 吴家隐, 郑文武, 陈泳 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1