CN106855843B - 一种Web***的性能分析方法和装置 - Google Patents
一种Web***的性能分析方法和装置 Download PDFInfo
- Publication number
- CN106855843B CN106855843B CN201510904269.7A CN201510904269A CN106855843B CN 106855843 B CN106855843 B CN 106855843B CN 201510904269 A CN201510904269 A CN 201510904269A CN 106855843 B CN106855843 B CN 106855843B
- Authority
- CN
- China
- Prior art keywords
- web system
- performance
- application component
- test
- application
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种Web***的性能测试方法和装置,所述方法包括:在Web***未满足用户的性能需求时,从所述Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试;分析所述应用组件每次压力测试时所述Web***的性能,在确定出现性能瓶颈时,优化所述应用组件;在所述应用组件结束所述迭代化的压力测试时,对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求;在所述Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从所述Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试。本发明的技术方案能够提高测试效率、缩短性能测试周期、降低测试成本。
Description
技术领域
本发明涉及性能测试技术领域,特别涉及一种Web***的性能测试方法和装置。
背景技术
由于Web应用是一系列分布于Wed服务器的程序和多媒体资源的集合,具有分布性、异构性和多用户的特点,并且Web应用大多为B/S(Browser/Server,浏览器/服务器)架构,使用Http协议,采用客户/Web服务器/数据库服务器的设计模式,这种多层次结构使得***出现问题的概率大大增加。因而,Web***的质量越来越引起用户的关注,特别是Web性能测试,往往需要深入到软件开发、数掘通信、硬件支持等多个方面,愈加受到人们的关注。
但性能测试难度大、周期长、要求高是一直困扰性能测试人员和开发人员的问题,虽然有一些工具能够对***的某些性能指标有监控和跟踪,但是基于应用***的业务繁琐性、***架构的技术难度复杂性,用户行为的不可预见性等诸多因素的影响,Web***的性能测试正变得比较困难,如果测试方法不当,***性能测试反而无法反应***本身的真实情况,有些测试结果反而误导开发和测试人员,致使***的开发和测试浪费大量的时间和金钱,影响了产品的发布,最终影响到了用户的体验。
发明内容
鉴于上述问题,本发明提供一种Web***的性能测试方法和装置,以解决现有技术Web***性能测试周期长、成本高、测试效率低的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种Web***的性能测试方法,所述方法包括:
在Web***未满足用户的性能需求时,从Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试;
分析应用组件在进行每次压力测试时Web***的性能,在确定Web***出现所述应用组件在压力测试下引起的性能瓶颈时,优化应用组件;
在应用组件结束所述迭代化的压力测试时,对Web***进行混合场景的压力测试,判断Web***是否满足用户的性能需求;
在Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试。
优选地,所述性能瓶颈分布模型通过下述方法建立:
获取所述Web***的各应用组件以及各应用组件之间的通讯方式;
根据所述Web***的性能瓶颈的潜在位置将所述Web***从下向上依次划分为底层的硬件层性能瓶颈、中间层的***层性能瓶颈和顶层的应用层性能瓶颈,并将所述Web***的各应用组件划分到相应的层级;
根据所述应用组件之间的通讯方式建立所述Web***的应用组件间的业务逻辑关系,从而获得所述性能瓶颈分布模型。
进一步优选地,所述根据预先建立的性能瓶颈分布模型从所述Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试包括:
确定当前应用组件在所述性能瓶颈分布模型中的层级,首先判断所述当前应用组件所在层级中是否存在与其具有业务逻辑关系的其他应用组件,若存在,则选取该层级中与所述当前应用组件具有业务逻辑关系的一应用组件作为新的测试对象;
若不存在,当所述当前应用组件处于所述性能瓶颈分布模型中的底层时,则按照从下向上的方向依次判断中间层、顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
当所述当前应用组件处于所述性能瓶颈分布模型中的顶层时,则按照从上向下的方向依次判断中间层、底层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
当所述当前应用组件处于所述性能瓶颈分布模型中的中间层时,先判断顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件,在顶层不存在与其具有业务逻辑关系的其他应用组件时,再判断底层是否存在与其具有业务逻辑关系的其他应用组件。
优选地,所述从所述Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试包括:
根据用户的性能需求,确定所述Web***的相关应用组件;
根据所述Web***的相关应用组件的通讯方式,从所述Web***的相关应用组件中确定一重点影响的应用组件作为测试对象进行迭代化的压力测试。
进一步优选地,所述从所述Web***的相关应用组件中确定一重点影响的应用组件作为测试对象进行迭代化的压力测试包括:
选取测试工具,并设定所述测试对象的压力测试参数的初始值、终止值和迭代步长,所述压力测试参数包括测试环境参数和测试压力值;
利用所述测试工具,从所述压力测试参数的初始值开始对所述测试对象进行压力测试,并收集用于反映所述Web***性能的测试数据;
按照所述迭代步长调整所述压力测试参数,对所述测试对象进行调整后的压力测试参数的压力测试,并在所述压力测试参数值达到所述压力测试参数的终止值时,结束所述测试对象的压力测试。
优选地,分析所述应用组件在进行每次压力测试时所述Web***的性能具体为:根据用于反映所述Web***性能的测试数据来分析所述Web***的性能;
所述方法还包括:所述对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求,在所述Web***已满足用户的性能需求时,所述方法结束。
优选地,所述对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求包括:
利用所述测试工具对所述Web***的所有相关应用组件进行压力测试,并收集所述Web***的性能数据;
将收集到的所述Web***的性能数据与所述用户的性能需求进行比较,在所述Web***的性能数据达到所述用户的性能需求时,判断所述Web***满足用户的性能需求。
另一方面,本发明提供了一种Web***的性能测试装置,所述性能测试装置包括:
应用组件测试单元,用于在Web***未满足用户的性能需求时,从Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试;
应用组件优化单元,用于分析应用组件在进行每次压力测试时Web***的性能,在确定Web***出现性能瓶颈时,优化应用组件;
混合场景测试单元,用于在应用组件结束迭代化的压力测试时,对Web***进行混合场景的压力测试,判断Web***是否满足用户的性能需求;
应用组件选取单元,用于在混合场景测试单元判断Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从Web***的应用组件中选取下一应用组件作为新的测试对象,并驱动应用组件测试单元对新的测试对象进行迭代化的压力测试。
优选地,所述性能瓶颈分布模型通过下述方法建立:
获取所述Web***的各应用组件以及各应用组件之间的通讯方式;
根据所述Web***的性能瓶颈的潜在位置将所述Web***从下向上依次划分为底层的硬件层性能瓶颈、中间层的***层性能瓶颈和顶层的应用层性能瓶颈,并将所述Web***的各应用组件划分到相应的层级;
根据所述应用组件之间的通讯方式建立所述Web***的应用组件间的业务逻辑关系,从而获得所述性能瓶颈分布模型。
优选地,所述应用组件选取单元包括:
层级确定模块,用于确定当前应用组件在所述性能瓶颈分布模型中的层级;
主判断模块,用于首先判断所述当前应用组件所在层级中是否存在与其具有业务逻辑关系的其他应用组件,若存在,则选取该层级中与所述当前应用组件具有业务逻辑关系的一应用组件作为新的测试对象;
从判断模块,用于在所述主判断模块判断所述当前应用组件所在层级中不存在与其具有业务逻辑关系的其他应用组件时,
若所述当前应用组件处于所述性能瓶颈分布模型中的底层,则按照从下向上的方向依次判断中间层、顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
若所述当前应用组件处于所述性能瓶颈分布模型中的顶层,则按照从上向下的方向依次判断中间层、底层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
若所述当前应用组件处于所述性能瓶颈分布模型中的中间层,先判断顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件,在顶层不存在与其具有业务逻辑关系的其他应用组件时,再判断底层是否存在与其具有业务逻辑关系的其他应用组件。
本发明实施例的有益效果是:本发明在Web***的性能测试过程中,每次测试只测试相关应用组件中的一个,在测试过程中若发现Web***出现性能瓶颈,则通过对应用组件进行优化来解决出现的性能瓶颈,在该应用组件完成其压力测试后,再根据性能瓶颈分布模型选取下一应用组件作为新的测试对象,继续该新的测试对象的压力测试,从而实现了Web***性能测试的组件化测试方法,能够在较短时间内确定性能瓶颈,缩短性能测试周期,有效地减少测试工程师的工作量,提高性能测试的测试效率;以及在每个应用组件的压力测试过程中,通过设定相应的压力测试参数,测试应用组件在不同测试环境下的性能表现,从而实现Web***性能测试的迭代化测试方法,以提高定位性能瓶颈的准确性。
附图说明
图1为本发明实施例一提供的Web***的性能测试方法流程图;
图2为本发明实施例一提供的Web***性能瓶颈分布模型示意图;
图3为本发明实施例二提供的Web***的性能测试方法的测试流程图;
图4为本发明实施例三提供的Web***的性能测试装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一:
图1为本实施例提供的Web***的性能测试方法流程图,如图1所示,图1中的方法包括:
S110,在Web***未满足用户的性能需求时,从Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试。
由于每次性能测试所付出的代价与测试过程中对Web***施加的压力有直接关系,因此本实施例优选地采用迭代化的测试方法测试Web***在不同压力下的性能表现。
在步骤S110中,从Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试具体为:
根据用户的性能需求,确定Web***的相关应用组件;
根据Web***的相关应用组件的通讯方式,从Web***的相关应用组件中确定一重点影响的应用组件作为测试对象进行迭代化的压力测试。
本实施例优选地通过下述迭代方式对重点影响的应用组件进行压力测试:
选取测试工具,并设定测试对象的压力测试参数的初始值、终止值和迭代步长,其中压力测试参数包括测试环境参数和测试压力值;
利用测试工具,从压力测试参数的初始值开始对测试对象进行压力测试,并收集用于反映Web***性能的测试数据;
按照迭代步长调整压力测试参数,对测试对象进行调整后的压力测试参数的压力测试;
在压力测试参数值达到压力测试参数的终止值时,结束测试对象的压力测试。
S120,分析该应用组件在进行每次压力测试时Web***的性能,在确定Web***出现该应用组件在压力测试下引起的性能瓶颈时,优化应用组件。
其中,在对选取的应用组件进行优化时,若选取的应用组件为硬件,优选地优化该应用组件的配置参数;若选取的应用组件为软件,优选地优化该应用组件的代码逻辑,优选地,每次压力测试后若出现性能瓶颈则优化该组件以消除该次压力测试出现的性能瓶颈,具体可以通过再次进行相同的压力参数来进行一次压力测试确定是否消除性能瓶颈。
当在步骤S110中收集每次压力测试的测试数据时,则步骤S120中分析应用组件在进行每次压力测试时Web***的性能数据具体为根据用于反映Web***性能的测试数据来分析Web***的性能。
S130,在该应用组件结束迭代化的压力测试时,对Web***进行混合场景的压力测试,判断Web***是否满足用户的性能需求。
本步骤优选地通过下述方式对Web***进行混合场景的压力测试:
利用测试工具对Web***的所有相关应用组件进行压力测试,并收集Web***的性能数据;
将收集到的Web***的性能数据与所述用户的性能需求进行比较,在Web***的性能数据达到所述用户的性能需求时,判断Web***满足用户的性能需求。
需要指出的是,本步骤中所述的该应用组件结束迭代化的压力测试时应应理解为:若在对应用组件进行迭代化的压力测试过程中,Web***未出现性能瓶颈,则在达到迭代化测试的终止条件时即压力测试参数满足用户需求的上限值时,结束该应用组件的迭代化测试;若在对应用组件进行迭代化的压力测试过程中,Web***出现该应用组件在压力测试下引起的性能瓶颈,则对该应用组件进行优化消除该性能瓶颈,在彻底优化消除由该组件引起的性能瓶颈后结束该应用组件的迭代化测试。
S140,在Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试。
本实施例通过在测试过程中,每次测试只测试相关应用组件中的一个,在测试过程中若发现Web***出现所述应用组件在压力测试下引起的性能瓶颈,则通过对应用组件进行优化来解决出现的性能瓶颈,在该应用组件完成其压力测试后,再根据性能瓶颈分布模型选取下一应用组件作为新的测试对象,继续该新的测试对象的压力测试,从而实现了Web***性能测试的组件化测试方法,能够在较短时间内确定性能瓶颈,缩短性能测试周期,有效地减少测试工程师的工作量,提高性能测试的测试效率;以及在每个应用组件的压力测试过程中,通过设定相应的压力测试参数,测试应用组件在不同测试环境下的性能表现,从而实现Web***性能测试的迭代化测试方法,以提高定位性能瓶颈的准确性。
在本实施例的一个优选方案中,步骤S140中的性能瓶颈分布模型通过下述方法建立:
获取Web***的各应用组件以及各应用组件之间的通讯方式;
根据Web***的性能瓶颈的潜在位置将Web***从下向上依次划分为底层的硬件层性能瓶颈、中间层的***层性能瓶颈和顶层的应用层性能瓶颈,并将Web***的各应用组件划分到相应的层级;
根据应用组件之间的通讯方式建立Web***的应用组件间的业务逻辑关系,从而获得上述性能瓶颈分布模型。
其中,底层一般包括交换机、路由器等网络硬件、处理器、内存、磁盘等应用组件的性能瓶颈;中间层的***层性能瓶颈一般包括服务器操作***、应用服务器、数据库服务器、中间件等应用组件的性能瓶颈;顶层的应用层性能瓶颈一般包括架构设计缺陷、程序设计缺陷、数据库设计缺陷等。
则步骤S140中根据预先建立的性能瓶颈分布模型从Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试具体为:
确定当前应用组件在所述性能瓶颈分布模型中的层级,首先判断当前应用组件所在层级中是否存在与其具有业务逻辑关系的其他应用组件,若存在,则选取该层级中与当前应用组件具有业务逻辑关系的一应用组件作为新的测试对象;
若不存在,当所述当前应用组件处于性能瓶颈分布模型中的底层时,则按照从下向上的方向依次判断中间层、顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
当所述当前应用组件处于性能瓶颈分布模型中的顶层时,则按照从上向下的方向依次判断中间层、底层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
当所述当前应用组件处于性能瓶颈分布模型中的中间层时,先判断顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件,在顶层不存在与其具有业务逻辑关系的其他应用组件时,再判断底层是否存在与其具有业务逻辑关系的其他应用组件。
本优选方案通过预先构建的性能瓶颈分布模型选取下一应用组件作为新的测试对象,在Web***性能测试过程中,逐层、顺序地定位性能瓶颈,避免由于层与层之间的应用组件的相互影响造成的混乱,从而能够快速、高效、准确地定位性能瓶颈。
如图2所示,图2为本实施例提供的Web***性能瓶颈分布模型示意图,图2中两个应用组件之间的连线表示该两个应用组件具有业务逻辑关系。
本实施依据***由底层到顶层的方向,即从下向上的方向,将***性能瓶颈的潜在位置划分为三个层级,底层为硬件层性能瓶颈,中间层为***层性能瓶颈,顶层为应用层性能瓶颈。
若假设中间层的数据库为该Web***的重点影响的应用组件:
在该Web***的性能测试过程中,若在对重点影响的应用组件进行压力测试时,发现该Web***发生由该重点影响的应用组件引起的性能瓶颈,并且在重点影响的应用组件优化消除该性能瓶颈后,该web***仍不能满足用户性能需求,则根据性能瓶颈分布模型在中间层选择一个与该数据库具有业务逻辑关系的应用组件作为新的测试对象,如2所示,可以选取应用服务器A作为新的测试对象;在中间层的相关应用组件都优化后,发现该Web***不能满足用户性能需求,则先在顶层中选取与中间层的相关应用组件具有业务逻辑关系的应用组件作为新的测试对象;在顶层中的相关应用组件都优化后,该Web***仍不能满足用户性能需求时,最后从底层选取具有业务逻辑关系的应用组件作为测试对象。
若假设顶层的应用***为该Web***的重点影响的应用组件:
在该Web***的性能测试过程中,若在对该重点影响的应用组件进行压力测试时,发现该Web***发生由该重点影响的应用组件引起的性能瓶颈,并且在重点影响的应用组件优化消除该性能瓶颈后,该Web***仍不能满足用户性能需求,则根据性能瓶颈分布模型在顶层选择一个与该应用***具有业务逻辑关系的应用组件作为新的测试对象,如2所示,可以选取业务***作为新的测试对象;在顶层的相关应用组件都优化后,发现该Web***不能满足用户性能需求,则先在中间层中选取与顶层的相关应用组件具有业务逻辑关系的应用组件作为新的测试对象;在中间层中的相关应用组件都优化后,该Web***仍不能满足用户性能需求时,最后从底层选取具有业务逻辑关系的应用组件作为测试对象。
若假设底层的处理器为该Web***的重点影响的应用组件:
在该Web***的性能测试过程中,若在对该重点影响的应用组件进行压力测试时,发现该Web***发生由该重点影响的应用组件引起的性能瓶颈,并且在重点影响的应用组件优化消除该性能瓶颈后,该Web***仍不能满足用户性能需求,则根据性能瓶颈分布模型在中间层选择一个与该处理器具有业务逻辑关系的应用组件作为新的测试对象,如2所示,可以选取存储设备作为新的测试对象;在底层的相关应用组件都优化后,发现该Web***仍不能满足用户性能需求,则先在中间层中选取与底层的相关应用组件具有业务逻辑关系的应用组件作为新的测试对象;在中间层中的相关应用组件都优化后,该Web***仍不能满足用户性能需求时,最后从顶层选取具有业务逻辑关系的应用组件作为测试对象。
实施例二:
本实施例提供了一种对Web***进行性能测试的方法。在本实施例中,假设测试人员在对Web***进行综合测试时,发现该Web***不满足用户的性能需求,继而按照图3中所示的方法进行下述性能测试。
如图3所示,图3为本实施例提供的Web***的性能测试方法的测试流程图,该性能测试方法的具体流程如下:
S310,从Web***的相关应用组件中选取一应用组件作为测试对象,并设定该应用组件的压力测试参数的初始值、终止值和迭代步长。其中,压力测试参数包括测试环境参数和测试压力值。
需要说明的是,本实施例优选地将Web***的重点影响应用组件作为第一个测试对象,以便于节省测试流程。
S320,利用测试工具对测试对象进行压力测试。
需要说明的是,本实施例从压力测试参数的初始值开始对测试对象进行压力测试。
S330,收集用于反映Web***性能的测试数据。
S340,分析收集到的用于反映Web***性能的测试数据,判断Web***是否出现性能瓶颈,若出现性能瓶颈则执行步骤S341,否则执行步骤S342。
S341,对当前的应用组件进行优化消除性能瓶颈,并执行步骤S350。
其中,若当前的应用组件为硬件,优选地优化该应用组件的配置参数;若当前的应用组件为软件,优选地优化该应用组件的代码逻辑。
S342,判断当前压力测试参数值是否达到压力测试参数的终止值,在当前压力测试参数值未达到压力测试参数的终止值时,执行步骤S343,否则执行步骤S350。
S343,按照迭代步长调整压力测试参数,返回步骤S320。
S350,对Web***进行混合场景的压力测试。
S360,判断Web***是否满足用户的性能需求,在Web***不满足用户的性能需求时,执行步骤S370,否则执行步骤S380。
S370,根据预先建立的性能瓶颈分布模型从所述Web***的应用组件中选取下一应用组件作为新的测试对象,并返回S320对新的测试对象进行迭代化的压力测试。
S380,结束Web***的性能测试。
实施例三:
基于与实施例一相同的设计构思,本实施例提供了一种Web***的性能测试装置。
图4为本实施例提供的Web***的性能测试装置结构示意图,如图4所示,图4中的性能测试装置包括:应用组件测试单元41、应用组件优化单元42、混合场景测试单元43和应用组件选取单元44。
应用组件测试单元41,用于在Web***未满足用户的性能需求时,从Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试。
应用组件优化单元42,用于分析应用组件每次压力测试时Web***的性能,在确定Web***出现所述应用组件在压力测试下引起的性能瓶颈时,优化应用组件。
混合场景测试单元43,用于在应用组件结束迭代化的压力测试时,对Web***进行混合场景的压力测试,判断Web***是否满足用户的性能需求。
应用组件选取单元44,用于在混合场景测试单元43判断Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从Web***的应用组件中选取下一应用组件作为新的测试对象,并驱动应用组件测试单元41对新的测试对象进行迭代化的压力测试。
在本实施例的一个优选方案中,性能瓶颈分布模型通过下述方法建立:
获取Web***的各应用组件以及各应用组件之间的通讯方式;
根据Web***的性能瓶颈的潜在位置将Web***从下向上依次划分为底层的硬件层性能瓶颈、中间层的***层性能瓶颈和顶层的应用层性能瓶颈,并将Web***的各应用组件划分到相应的层级;
根据应用组件之间的通讯方式建立所述Web***的应用组件间的业务逻辑关系,从而获得性能瓶颈分布模型。
则应用组件选取单元44包括:
层级确定模块,用于确定当前应用组件在性能瓶颈分布模型中的层级;
主判断模块,用于首先判断当前应用组件所在层级中是否存在与其具有业务逻辑关系的其他应用组件,若存在,则选取该层级中与当前应用组件具有业务逻辑关系的一应用组件作为新的测试对象;
从判断模块,用于在主判断模块判断所述当前应用组件所在层级中不存在与其具有业务逻辑关系的其他应用组件时,
若当前应用组件处于所述性能瓶颈分布模型中的底层,则按照从下向上的方向依次判断中间层、顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
若当前应用组件处于性能瓶颈分布模型中的顶层,则按照从上向下的方向依次判断中间层、底层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
若当前应用组件处于所述性能瓶颈分布模型中的中间层,先判断顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件,在顶层不存在与其具有业务逻辑关系的其他应用组件时,再判断底层是否存在与其具有业务逻辑关系的其他应用组件。
本实施例的各单元的具体工作方式可以参见本发明实施例一的具体内容,在此不再赘述。
综上所述,本发明公开了一种Web***的性能测试方法和装置,在Web***的性能测试过程中,每次测试只测试相关应用组件中的一个,在测试过程中若发现Web***出现所述应用组件在压力测试下引起的性能瓶颈,则通过对应用组件进行优化来解决出现的性能瓶颈,在该应用组件完成其压力测试后,再根据性能瓶颈分布模型选取下一应用组件作为新的测试对象,继续该新的测试对象的压力测试,从而实现了Web***性能测试的组件化测试方法,能够在较短时间内确定性能瓶颈,缩短性能测试周期,有效地减少测试工程师的工作量,提高性能测试的测试效率;以及在每个应用组件的压力测试过程中,通过设定相应的压力测试参数,测试应用组件在不同测试环境下的性能表现,从而实现Web***性能测试的迭代化测试方法,以提高定位性能瓶颈的准确性。。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (6)
1.一种Web***的性能测试方法,其特征在于,所述方法包括:
在Web***未满足用户的性能需求时,从所述Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试,将所述Web***的重点影响应用组件作为第一个测试对象;
分析所述应用组件在进行每次压力测试时所述Web***的性能,在确定所述Web***出现所述应用组件在压力测试下引起的性能瓶颈时,优化所述应用组件;
在所述应用组件结束所述迭代化的压力测试时,对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求;
在所述Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从所述Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试;
其中,所述性能瓶颈分布模型通过下述方法建立:
获取所述Web***的各应用组件以及各应用组件之间的通讯方式;
根据所述Web***的性能瓶颈的潜在位置将所述Web***从下向上依次划分为底层的硬件层性能瓶颈、中间层的***层性能瓶颈和顶层的应用层性能瓶颈,并将所述Web***的各应用组件划分到相应的层级;
根据所述应用组件之间的通讯方式建立所述Web***的应用组件间的业务逻辑关系,从而获得所述性能瓶颈分布模型;
则所述根据预先建立的性能瓶颈分布模型从所述Web***的应用组件中选取下一应用组件作为新的测试对象进行迭代化的压力测试包括:
确定当前应用组件在所述性能瓶颈分布模型中的层级,首先判断所述当前应用组件所在层级中是否存在与其具有业务逻辑关系的其他应用组件,若存在,则选取该层级中与所述当前应用组件具有业务逻辑关系的一应用组件作为新的测试对象;
若不存在,当所述当前应用组件处于所述性能瓶颈分布模型中的底层时,则按照从下向上的方向依次判断中间层、顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
当所述当前应用组件处于所述性能瓶颈分布模型中的顶层时,则按照从上向下的方向依次判断中间层、底层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
当所述当前应用组件处于所述性能瓶颈分布模型中的中间层时,先判断顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件,在顶层不存在与其具有业务逻辑关系的其他应用组件时,再判断底层是否存在与其具有业务逻辑关系的其他应用组件。
2.根据权利要求1所述的性能测试方法,其特征在于,所述从所述Web***的应用组件中选取一应用组件作为测试对象进行迭代化的压力测试包括:
根据用户的性能需求,确定所述Web***的相关应用组件;
根据所述Web***的相关应用组件的通讯方式,从所述Web***的相关应用组件中确定一重点影响的应用组件作为测试对象进行迭代化的压力测试。
3.根据权利要求2所述的性能测试方法,其特征在于,所述从所述Web***的相关应用组件中确定一重点影响的应用组件作为测试对象进行迭代化的压力测试包括:
选取测试工具,并设定所述测试对象的压力测试参数的初始值、终止值和迭代步长,所述压力测试参数包括测试环境参数和测试压力值;
利用所述测试工具,从所述压力测试参数的初始值开始对所述测试对象进行压力测试,并收集用于反映所述Web***性能的测试数据;
按照所述迭代步长调整所述压力测试参数,对所述测试对象进行调整后的压力测试参数的压力测试,并在所述压力测试参数值达到所述压力测试参数的终止值时,结束所述测试对象的压力测试。
4.根据权利要求3所述的性能测试方法,其特征在于,分析所述应用组件在进行每次压力测试时所述Web***的性能具体为:根据用于反映所述Web***性能的测试数据来分析所述Web***的性能;
所述方法还包括:所述对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求,在所述Web***已满足用户的性能需求时,所述方法结束。
5.根据权利要求3所述的性能测试方法,其特征在于,所述对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求包括:
利用所述测试工具对所述Web***的所有相关应用组件进行压力测试,并收集所述Web***的性能数据;
将收集到的所述Web***的性能数据与所述用户的性能需求进行比较,在所述Web***的性能数据达到所述用户的性能需求时,判断所述Web***满足用户的性能需求。
6.一种Web***的性能测试装置,其特征在于,所述性能测试装置包括:
应用组件测试单元,用于在所述Web***未满足用户的性能需求时,从所述Web***的应用组件中选取一重点影响的应用组件作为测试对象进行迭代化的压力测试,将所述Web***的重点影响应用组件作为第一个测试对象 ;
应用组件优化单元,用于分析所述应用组件在进行每次压力测试时所述Web***的性能,在确定所述Web***出现所述应用组件在压力测试下引起的性能瓶颈时,优化所述应用组件;
混合场景测试单元,用于在所述应用组件结束所述迭代化的压力测试时,对所述Web***进行混合场景的压力测试,判断所述Web***是否满足用户的性能需求;
应用组件选取单元,用于在混合场景测试单元判断所述Web***仍不满足用户的性能需求时,根据预先建立的性能瓶颈分布模型从所述Web***的应用组件中选取下一应用组件作为新的测试对象,并驱动所述应用组件测试单元对新的测试对象进行迭代化的压力测试;
其中,所述性能瓶颈分布模型通过下述方法建立:
获取所述Web***的各应用组件以及各应用组件之间的通讯方式;
根据所述Web***的性能瓶颈的潜在位置将所述Web***从下向上依次划分为底层的硬件层性能瓶颈、中间层的***层性能瓶颈和顶层的应用层性能瓶颈,并将所述Web***的各应用组件划分到相应的层级;
根据所述应用组件之间的通讯方式建立所述Web***的应用组件间的业务逻辑关系,从而获得所述性能瓶颈分布模型;
则所述应用组件选取单元包括:
层级确定模块,用于确定当前应用组件在所述性能瓶颈分布模型中的层级;
主判断模块,用于首先判断所述当前应用组件所在层级中是否存在与其具有业务逻辑关系的其他应用组件,若存在,则选取该层级中与所述当前应用组件具有业务逻辑关系的一应用组件作为新的测试对象;
从判断模块,用于在所述主判断模块判断所述当前应用组件所在层级中不存在与其具有业务逻辑关系的其他应用组件时,
若所述当前应用组件处于所述性能瓶颈分布模型中的底层,则按照从下向上的方向依次判断中间层、顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
若所述当前应用组件处于所述性能瓶颈分布模型中的顶层,则按照从上向下的方向依次判断中间层、底层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件;
若所述当前应用组件处于所述性能瓶颈分布模型中的中间层,先判断顶层中是否存在与该当前应用组件具有业务逻辑关系的其他应用组件,在顶层不存在与其具有业务逻辑关系的其他应用组件时,再判断底层是否存在与其具有业务逻辑关系的其他应用组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510904269.7A CN106855843B (zh) | 2015-12-09 | 2015-12-09 | 一种Web***的性能分析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510904269.7A CN106855843B (zh) | 2015-12-09 | 2015-12-09 | 一种Web***的性能分析方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106855843A CN106855843A (zh) | 2017-06-16 |
CN106855843B true CN106855843B (zh) | 2020-04-03 |
Family
ID=59132673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510904269.7A Active CN106855843B (zh) | 2015-12-09 | 2015-12-09 | 一种Web***的性能分析方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106855843B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209178A (zh) * | 2020-01-13 | 2020-05-29 | 中信银行股份有限公司 | 全链路瓶颈测试方法及*** |
CN114546852B (zh) * | 2022-02-21 | 2024-04-09 | 北京百度网讯科技有限公司 | 一种性能测试方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625658A (zh) * | 2009-08-04 | 2010-01-13 | 卓望信息技术(北京)有限公司西城分公司 | 一种软件***性能测试方法 |
CN104391789A (zh) * | 2014-11-17 | 2015-03-04 | 国云科技股份有限公司 | 一种Web应用程序压力测试的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300423A1 (en) * | 2008-05-28 | 2009-12-03 | James Michael Ferris | Systems and methods for software test management in cloud-based network |
-
2015
- 2015-12-09 CN CN201510904269.7A patent/CN106855843B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625658A (zh) * | 2009-08-04 | 2010-01-13 | 卓望信息技术(北京)有限公司西城分公司 | 一种软件***性能测试方法 |
CN104391789A (zh) * | 2014-11-17 | 2015-03-04 | 国云科技股份有限公司 | 一种Web应用程序压力测试的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106855843A (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341098B (zh) | 软件性能测试方法、平台、设备及存储介质 | |
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
CN110532168B (zh) | 全链路接口压测方法、装置、计算机设备及存储介质 | |
CN105760286A (zh) | 应用数据库动态性能检测方法及检测装置 | |
CN106803799B (zh) | 一种性能测试方法和装置 | |
CN102141962A (zh) | 一种安全性分布式测试框架***及其测试方法 | |
CN104579854A (zh) | 众包测试方法 | |
FR2838844A1 (fr) | Procede de generation d'un modele de performance a partir d'un modele fonctionnel | |
Liu | Research of performance test technology for big data applications | |
CN111737143B (zh) | 一种网页ab测试故障排查方法及*** | |
CN111181800A (zh) | 测试数据处理方法、装置、电子设备及存储介质 | |
CN104123397A (zh) | Web页面的自动化测试装置及方法 | |
CN106855843B (zh) | 一种Web***的性能分析方法和装置 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN112346962A (zh) | 一种应用于对照测试***中的对照数据测试方法及装置 | |
EP4152715A1 (en) | Method and apparatus for determining resource configuration of cloud service system | |
KR101794016B1 (ko) | 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체 | |
CN106445812A (zh) | 回归测试***及回归测试方法 | |
CN115952098A (zh) | 一种性能测试调优方案推荐方法及*** | |
CN115509931A (zh) | 基于***的性能测试方法、装置、电子设备及存储介质 | |
Liu et al. | Agent-based online quality measurement approach in cloud computing environment | |
CN106855840B (zh) | 一种***cpu分析方法和装置 | |
CN111679924B (zh) | 构件化软件***可靠性仿真方法、装置及电子设备 | |
CN115866235A (zh) | 视频质量评估方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A Room 601 Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |