首页> 中国专利> 用于应用性能测试的并行工作负荷仿真方法和系统

用于应用性能测试的并行工作负荷仿真方法和系统

摘要

本发明涉及用于应用性能测试的并行工作负荷仿真方法和系统。本发明的各实施例提供了用于进行应用性能测试的并行工作负荷仿真的方法、系统和计算机程序产品。在本发明的一个实施例中,提供了用于进行应用性能测试的并行工作负荷仿真的方法。该方法包括将接受测试的计算应用的不同的任务的记录的工作负荷的列表加载到存储器中由主机计算机的至少一个处理器执行的工作负荷仿真器中。该方法还包括按共同的任务将记录的工作负荷分组在对应的块中。最后,该方法包括从分组的工作负荷生成用于模仿接受测试的计算应用的性能的负载,以便需要按照在公共块中出现的顺序串行地执行公共块中的工作负荷,但要允许不同的块中的工作负荷并行执行。

著录项

  • 公开/公告号CN102567172A

    专利类型发明专利

  • 公开/公告日2012-07-11

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201110360274.8

  • 发明设计人 刘志成;任党恩;王朋朋;李丽萍;

    申请日2011-11-15

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李镇江

  • 地址 美国纽约

  • 入库时间 2023-12-18 05:55:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-05

    授权

    授权

  • 2012-09-19

    实质审查的生效 IPC(主分类):G06F11/28 申请日:20111115

    实质审查的生效

  • 2012-07-11

    公开

    公开

说明书

技术领域

本发明涉及应用性能测试(application performance testing), 尤其涉及用于应用性能测试的工作负荷仿真(workload simulation)。

背景技术

在软件工程中,性能测试确定计算系统的某个方面在特定工作负 荷集合下执行有多快。性能测试还证实和验证计算系统的其他属性, 例如,计算系统的可缩放性、可靠性以及资源使用率。重要的是,在 某些情况下,对计算系统的性能测试旨在表明计算系统符合时常由最 终用户所指定的特定性能标准。在其他情况下,性能测试还测量计算 系统的使计算系统表现得差的那些段。在后一种情况下,仿形工具识 别计算系统的与差的性能关系最大的那些部分。

工作负荷仿真构成了性能测试的不可分割的组成部分。在工作负 荷仿真中,生成不同的工作负荷,并交由计算系统执行,以便模仿计 算系统将操作的条件。为确保仿真的准确性,工作负荷仿真常常是静 态地构建的。为便于构建工作负荷仿真方案,可以根据对应用的脚本 化的刺激集合,记录计算应用(computing application)的操作。随 后,可以回放计算应用的记录的操作,并测量计算应用的性能。值得 注意的是,已经开发了图形工具,以允许对工作负荷仿真中要使用的 工作负荷进行图形编辑。

工作负荷仿真已经被证实对于对分布式应用-特别是涉及瘦 Web客户端的Web应用-进行性能测试是高度有效的。然而,胖客 户端的回潮现在基本上允许更加复杂的工作负荷处理,并使使用传统 的记录加回放方法的工作负荷仿真复杂化。在这方面,胖客户端可以 同时处理多个不同的任务,且每一任务都可以顺次地生成多个请求。 任务可以彼此独立地执行,或者也可以彼此合作地执行。任务还可以 并行地执行。然而,从工作负荷仿真的观点来看,不同的任务的请求 只是彼此相互混合,不管发端任务是什么。

传统上,为解决一个客户机中的来自不同的任务的请求的相互混 合,创建循环以包括选定的请求以便确保后续的请求在客户机中被允 许产生之前满足所选定的请求。但是,在工作负荷仿真期间建立循环, 是进行请求生成的人工排序。当然,在工作负荷仿真期间使用循环会 阻止客户机中的任务的执行的并行性,从而破坏工作负荷仿真的完整 性。

发明内容

本发明的各实施例解决当前技术的在工作负荷仿真方面的缺陷, 并提供用于进行应用性能测试的并行工作负荷仿真的新颖而非显而 易见的方法、系统和计算机程序产品。在本发明的一个实施例中,提 供了用于进行应用性能测试的并行工作负荷仿真的方法。该方法包括 将接受测试的计算应用的不同任务的记录的工作负荷的列表加载到 由主机计算机的至少一个处理器在存储器中执行的工作负荷仿真器 中。该方法还包括按共同的任务将记录的工作负荷分组在对应的块 中。最后,该方法包括从分组的工作负荷生成用于模仿接受测试的计 算应用的性能的负载,使得需要按照在公共块中出现的顺序串行地执 行公共块中的工作负荷,但允许不同的块中的工作负荷并行执行。

在实施例的一方面,可以在各块之间建立同步点。此后,在负载 生成期间,块中的在同步点之前出现的所有工作负荷需要在允许执行 在同步点之后出现的块的工作负荷之前执行。在实施例的另一方面, 记录的工作负荷是超文本传输协议(HTTP)请求。如此,按共同的 任务将记录的工作负荷分组在对应的块中可以包括相应地为不同的 任务中的每一个标识HTTP请求之中的不同的字符串,将共享不同的 字符串中的共同的字符串的每一个HTTP请求放在公共块中。另外, 也可以将依赖于来自前面执行的HTTP请求的结果的每一HTTP请求 放在公共块中。

在本发明的另一实施例中,可以配置性能测试数据处理系统用于 并行工作负荷仿真。该系统可以包括带有存储器和至少一个处理器主 机计算机和在主机计算机中执行的操作系统。该系统还可以包括由操 作系统主管的工作负荷仿真器。工作负荷仿真器可以包括负载记录 器、负载编辑器和负载生成器中的每一个。最后,块标识模块可以耦 合到负载编辑器。该模块可以包括程序代码,用于将由负载记录器为 接受测试的计算应用的不同的任务记录的诸如HTTP请求之类的工 作负荷列表加载到工作负荷仿真器中,并按共同的任务将记录的工作 负荷分组在对应的块中。

在随后的描述中将阐述本发明的其他方面,经过描述,这些方面 将变清楚,也可以通过本发明的实践来了解。本发明的各方面将通过 在所附权利要求书中特别指出的元素和组合来实现和获得。应该理 解,前面的一般性的说明和下面的详细描述只是示例性的和说明性 的,不会对如权利要求所述的本发明形成限制。

附图说明

本说明书收入的并构成本说明书的一部分的附图示出了本发明 的各实施例,与说明书一起,用于说明本发明的原理:此处所示出的 实施例目前是优选的,然而,可以理解,本发明不仅限于所示出的精 确的配置和方法,其中:

图1是用于应用性能测试的并行工作负荷仿真的过程的图形例 示;

图2是被配置成用于并行工作负荷仿真的性能测试数据处理系 统的示意图;以及

图3是示出了用于应用性能测试的并行工作负荷仿真的过程的 流程图。

具体实施方式

本发明的各实施例提供了用于应用性能测试的并行工作负荷仿 真。根据本发明的一实施例,对不同的任务的不同的请求可以累积在 工作负荷仿真器中。共同对单一任务的请求可以按顺序接收在一个块 中分组在一起。此后,负载生成器可以根据不同的块的请求生成负载, 使得公用块内的请求按照由公用块规定的顺序执行,但是,不同的块 的请求并行地执行。如此,在来自单一计算设备内的不同的任务的请 求的并行工作负荷仿真期间,可以避免来自不同的任务的请求的任意 和人工的排序。

在进一步的例示中,图1以图形方式描绘了用于应用性能测试的 并行工作负荷仿真的过程。如图1所示,性能测试系统110可以记录 计算应用中的不同的并行地执行的任务的一系列工作负荷130。并行 任务分组逻辑120可以处理工作负荷130,以将共同的任务的工作负 荷分组在并行块140A、140B、140C中。进一步地,并行块140A、 140B、140C中的选定的块可以分组在共同的容器160中。工作负荷 130对每一任务的被记录的顺序可以保留在并行块140A、140B、140C 的对应的块中。然而,对共同的容器160中的并行块140A、140B、 140C中的选定块没有提供特定顺序,但是,可以保留多个不同的容 器160的排序。值得注意的是,可以在并行块140A、140B、140C之 间提供同步点150,以确保并行块140A、140B、140C中的各块中的 相应的任务的所有工作负荷130在同步点150之前完成。

在工作负荷130自动化并行分组到并行块140A、140B、140C中 的相应的块之后,负载生成器170可以根据并行块140A、140B、140C 中的工作负荷130的分组,在性能测试系统110中生成用于模仿计算 应用的性能的负载。负载的生成可以强迫并行块140A、140B、140C 和任何同步点150的排序约束,同时允许同一个容器160内的并行块 140A、140B、140C中的不同的块中的不同的任务的工作负荷130的 并行执行。

可以在性能测试数据处理系统内实现结合图1所描述的过程。在 进一步的例示中,图2是被配置成用于并行工作负荷仿真的性能测试 数据处理系统的示意图。该系统可以包括带有存储器220和至少一个 处理器230两者的主机计算机210(为便于说明,只示出了一个处理 器)。操作系统240可以由处理器230中的一个或多个在主机计算机 210的存储器220中执行。操作系统240可以主管被配置成生成不同 的工作负荷并将所生成的工作负荷交由接受测试的计算应用执行的 工作负荷仿真器250的操作,以便模仿接受测试的计算应用将操作的 条件。

为此,工作负荷仿真器250可以耦合到负载记录器260、负载编 辑器270和负载生成器280。负载记录器260可以在接受测试的计算 应用的执行期间记录由该接受测试的计算应用所产生的工作负荷。例 如,在SOA环境中,工作负荷可以包括对服务的请求。由此,那些 请求可以是用于处理在唯一网络地址可访问的SOA环境中的不同的 远程执行的服务的超文本传输协议(HTTP)请求。负载编辑器270 又可以提供图形用户界面(GUI),通过该图形用户界面,可以查看、 编辑并存储记录的负载,供负载生成器280进行处理。负载生成器280 可以处理存储的记录和编辑的负载的集合,以便生成一组负载,交由 接受测试的计算应用执行,以便模仿接受测试的计算应用的性能。

值得注意的是,块标识模块300可以耦合到负载编辑器270。块 标识模块300可以包括程序代码,所述程序代码用于根据对应的并行 块内的共同的任务,为接受测试的计算应用的不同的任务分组工作负 荷,如为接受测试的计算应用的不同的任务所记录的HTTP请求。分 组可以通过将每一个工作负荷与其它工作负荷进行比较以标识共同 的元素来执行。例如,在HTTP请求的情况下,对同一个任务的请求 可以共享HTTP请求的诸如共同的标识符之类的公共部分。可任选 地,可以通过将依赖于另一个工作负荷的每一个工作负荷放在同一个 并行块来执行附加的分组。一旦工作负荷被分组到对应的任务的并行 块中,可以将分组的工作负荷传递到负载生成器280,供负载生成器 280生成用于在工作负荷仿真器250中模仿接受测试的计算应用的工 作负荷。

在块标识模块300的操作的更进一步的例示中,图3是示出了用 于进行应用性能测试的并行工作负荷仿真的过程的流程图。从框310 开始,可以加载接受测试的计算应用的记录的对不同任务的HTTP请 求的列表,在框320中,可以加载分别与不同任务相对应的不同的字 符串标识符。在框330中,可以为不同的字符串标识符中的每一个唯 一字符串标识符创建并行块。最后,在框340中,可以根据对应的字 符串标识符,将记录的HTTP请求分类到不同的并行块中,以便每一 并行块只包含那些共享相同字符串标识符的请求。

如本领域技术人员所理解的,本发明的各方面可以作为系统、方 法或计算机程序产品来实现。因此,本发明的各方面可以呈现此处可 以一般性地被称为“电路”、“模块”或“系统”的完全是硬件实施例、完 全是软件实施例(包括固件、常驻软件,微代码等等)或组合了软件 和硬件方面的实施例。此外,本发明的各方面还可以呈现以在其上体 现了计算机可读程序代码的一个或多个计算机可读介质体现的计算 机程序产品的形式。

可以使用一个或多个计算机可读介质的任何组合。计算机可读介 质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介 质可以是,例如,但不仅限于,电、磁、光、电磁、红外、或半导体 系统、装置、或设备或前面的各项的任何合适的组合。更具体的计算 机可读介质的示例(非穷尽列表)包括下列各项:具有一个或多个导 线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只 读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、 光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设 备,或前面的各项的任何合适的组合。在此文档的上下文中,计算机 可读存储介质可以是可以包含、存储供指令执行系统、设备使用或与 它们一起使用的程序的任何有形的介质。

计算机可读信号介质可以包括其中带有计算机可读程序代码的 传播的数据信号,例如,无论是在基带中,还是作为载波的一部分。 这样的传播的信号可以呈现各种形式中的任何一种形式,包括,但不 仅限于,电磁、光学或其任何合适的组合。计算机可读信号介质可以 是不是计算机可读存储介质,并且能够传递、传播或传输供指令执行 系统、设备或装置使用或与它们结合使用的程序的任何计算机可读介 质。

在计算机可读介质上体现的程序代码可以使用任何合适的介质 进行传输,包括,但不仅限于无线、有线线路、光缆、射频(RF)等 等,或前面的各项的任何合适的组合。用于执行本发明的各方面的操 作的计算机程序代码可以以一种或多种编程语言的任何组合来进行 编写,包括面向对象编程语言,以及常规过程编程语言。程序代码可 以作为独立软件包完全在用户的计算机上,部分地在用户的计算机上 执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或 者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机 可以通过任何网络类型连接到用户的计算机,包括局域网(LAN)或广 域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提 供商,通过因特网)。

上文参考根据本发明的各实施例的方法、设备(系统)、以及计 算机程序产品的流程图例示和/或框图描述了本发明的方面。关于这一 点,图中的流程图和框图示出了根据本发明的各个实施例的系统、方 法和计算机程序产品的可能的实现的体系结构、功能,以及操作。例 如,流程图或框图中的每一个框都可以代表包括用于实现指定的逻辑 功能的一个或多个可执行的指令的一个模块、一段、或代码部分。还 应注意,在某些替代实现中,在框中所指出的功能可以不按照图中所 说明的顺序发生。例如,依次显示的两个框可以,事实上,基本上同 时地执行,或者,取决于涉及的功能,各框有时也可以按相反的顺序 执行。还应该注意,框图和/或流程图例示的每一个框,以及框图和/ 或流程图例示中的框的组合,可以通过执行指定的功能或操作,或专 用硬件以及计算机指令的组合的基于专用硬件的系统来实现。

还可以理解,流程图例示和/或框图的每一框,流程图例示和/或 框图中的框的组合,都可以通过计算机程序指令来实现。这些计算机 程序指令可以被提供给通用计算机、专用计算机,或其他可编程数据 处理设备的处理器,以产生机器,以便通过计算机或其他可编程数据 处理设备的处理器执行的指令产生用于实现在该流程图和/或框图框 所指定的功能的装置。

这些计算机程序指令还可以存储在计算机可读介质中,该介质可 以指示计算机或其他可编程数据处理设备或其他设备以特定方式运 转,以便存储在计算机可读介质中的指令产生一种包括了指令的产 品,这些指令实现了在该流程图和/或框图框所指定的功能/动作。计 算机程序指令还可以加载到计算机、其他可编程数据处理设备,或其 他设备中,以使一系列操作步骤在计算机上、其他可编程设备上或其 他设备上执行,以产生计算机实现的过程,以便在计算机或其他可编 程设备上执行的指令提供用于实现在流程图和/或框图框所指定的功 能/动作的过程。

最后,此处所使用的术语只是为了描述特定实施例,而不对本发 明作出限制。如此处所使用的,单数形式“一个”也包括复数形式,除 非上下文明确地指出。还应该进一步理解,本说明中所使用的术语“包 括”,表示指定的特点、整数、步骤、操作、元素和/或组件的存在, 但是,不排除一个或多个其他特点、整数、步骤、操作、元素、组件 或其组合的存在或添加。

下面的权利要求中的所有装置或步骤加功能元件的对应的结构、 材料、操作,以及等效的东西计划包括用于与专门主张的其他主张的 元件相结合地执行功能的任何结构、材料或操作。对本发明的描述只 作公开,而不是穷尽的公开或限于所公开的形式。本领域的技术人员 将认识到,在不偏离本发明的范围和精神的情况下,可以进行各种修 改。所选择的实施例只是为了最好地说明本发明的原理和实际应用, 并使其他本领域技术人员懂得,带有各种修改的各种实施例也是可以 接受的。

如此,参考本申请的实施例详细地描述了本发明,显然,在不偏 离如下的所附权利要求书所定义的本发明的范围的情况下,可以进行 各种修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号