一种性能测试方法和设备的制作方法

文档序号:6503188阅读:192来源:国知局
一种性能测试方法和设备的制作方法
【专利摘要】本申请公开了一种性能测试方法和设备,主要内容包括:预先针对各应用软件创建性能测试件,所述性能测试件中包含了对应用软件进行压测时所需的测试脚本和运行环境参数,在需要对应用软件进行测试时,可直接调用性能测试件来构建测试场景并对应用软件进行压测,无需手动创建测试环境,可有效提高对应用软件的测试效率,即使在应用软件更新频率高的情况下,利用本申请实施例的方案也可及时对应用软件的性能进行测试,避免由于性能测试延迟导致应用软件运行异常的问题。
【专利说明】一种性能测试方法和设备

【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种性能测试方法和设备。

【背景技术】
[0002]应用软件开发后,应用软件的软件代码将在网站服务器内上线运行,用户可登录网站服务器并使用运行的软件代码所提供的应用服务。以购物网站内“查看产品详情”这一应用软件(后续称之为应用软件A)为例,应用软件A的软件代码在购物网站的服务器内运行,用户登录该服务器后,可通过页面上的输入接口(如页面上的“详情”按键)调用该应用软件A,以获得查看某一产品详情的应用服务。
[0003]应用软件开发运行后,仍需不断地对该应用软件进行维护、更新,例如:增加应用软件的功能、更改应用软件已有的功能或是删除应用软件已有的功能等,对应用软件的维护、更新是通过对应用软件的软件代码的更新来实现的。仍以“查看产品详情”这一应用软件A为例,为了增加向用户提供“购买产品的人群年龄”这一功能,可将“购买产品的人群年龄”这一子应用的软件代码发布至应用软件A的软件代码中,得到更新后的应用软件A的软件代码。在购物网站的服务器中运行更新后的应用软件A的软件代码时,用户运行应用软件A时,可查看产品详情中“购买产品的人群年龄”这一内容。
[0004]实际上,在大型的业务网站中,网站服务器内运行着若干个应用软件的软件代码,针对任一应用软件而言,其更新频率是非常高的,甚至能达到每年数万次的更新频率。如此高频率的更新很可能会对应用软件的软件代码改动较大,因此需对应用软件的性能进行测试,判断出执行哪些更新操作时所发布的子应用对应用软件的性能造成了明显影响。
[0005]目前,对应用软件的性能测试方式主要有以下两种:
[0006]方式一:
[0007]通过对服务器内运行的应用软件的性能进行实时监控,以判断对该应用软件的各次更新是否对应用软件的性能造成了影响。例如,实时对应用软件A的系统开销进行监控,当监控出应用软件A的系统开销发生明显变化时,确定最近一次对应用软件A的更新操作对应用软件A的性能造成了影响。
[0008]方式一可以比较简便地实现对应用软件的性能测试,但是,由于应用软件在真实的环境下运行时,其性能的变化会受到网络拓扑环境或是访问流量的变化影响,也就是说,在监控出应用软件的性能受到影响时,不一定是对应用软件的更新过程造成的,因此,利用方式一得到的监控结果并不准确。
[0009]方式二:
[0010]通过为每次更新后的应用软件的软件代码模拟运行环境,来测试本次对应用软件的更新操作是否对应用软件的性能造成了影响,具体做法如图1所示,主要包括以下流程:
[0011]第一步:在对应用软件的软件代码执行更新操作后,评估是否需要进行性能测试。
[0012]业界一般将应用软件在服务器内上线运行的软件代码称之为主干代码,在本步骤中,将执行更新操作时发布的子应用的软件代码集成到主干代码后,可对更新后的主干代码进行评估,判断是否需要对更新后的主干代码进行性能测试。
[0013]具体的评估依据可以为:当本次对主干代码的内容更新比较多或更新后的主干代码在运行时出现异常时,可认为需要进行性能测试处理。
[0014]第二步:手动创建测试场景。
[0015]在本步骤中,根据待测应用软件需测试的功能,分别创建测试场景,如应用软件A的功能I和功能2的性能需要测试,要分别针对功能I和功能2创建两个测试场景。
[0016]以针对功能I的测试场景为例,对该测试场景的创建过程包括以下操作:
[0017]首先生成调用功能I的测试脚本,然后为功能I的运行过程配置运行环境参数,如测试时间、测试压力(并行触发数量)等参数,以创建针对功能I的测试场景。
[0018]第三步:将待测应用软件的主干代码在创建的测试场景下进行压测。
[0019]本步骤中,待测应用软件的主干代码是该应用软件最近一次更新后的主干代码。
[0020]第四步:将本次压测结果与统计的历史运行结果进行比较,确定本次对应用软件的更新操作是否对其性能造成影响,并上报测试结果。
[0021]方式二可以在一定程度上反映出对应用软件的更新操作对应用软件的性能造成的影响程度,但是,手动创建测试场景需要耗费大量的时间,特别是在每年数万次更新操作的情况下,针对每次更新操作都要手动创建测试环境,会导致测试效率低下,更新后的软件代码在线上运行后不能立即对其性能影响进行测试,可能出现应用软件性能受更新操作影响过大而报警的问题。


【发明内容】

[0022]本申请实施例提供了一种性能测试方法和设备,用以解决现有技术中存在对应用软件的测试效率低下的问题。
[0023]一种性能测试方法,所述方法包括:
[0024]从性能测试库中选取与待测应用软件关联的性能测试件,所述性能测试件中包含测试脚本和运行环境参数;
[0025]利用选取的所述性能测试件对所述待测应用软件的主干代码进行压测;
[0026]将压测结果与设定阈值进行比较,确定所述待测应用软件的性能。
[0027]—种性能测试设备,所述设备包括:
[0028]测试件选取模块,用于从性能测试库中选取与待测应用软件关联的性能测试件,所述性能测试件中包含测试脚本和运行环境参数;
[0029]压测模块,用于利用选取的所述性能测试件对所述待测应用软件的主干代码进行压测;
[0030]性能确定模块,用于将压测结果与设定阈值进行比较,确定所述待测应用软件的性能。
[0031]本申请有益效果如下:
[0032]在本申请实施例的方案中,通过预先针对各应用软件创建性能测试件,使得在需要对应用软件进行测试时,可直接调用性能测试件来构建测试场景并对应用软件进行压测,而无需手动创建测试环境,可有效提高对应用软件的测试效率。

【专利附图】

【附图说明】
[0033]图1为【背景技术】中对应用软件的更新操作造成性能影响的测试流程示意图;
[0034]图2为本申请实施例一中性能测试件的示意图;
[0035]图3为本申请实施例二中对应用软件进行性能测试的方法步骤示意图;
[0036]图4为本申请实施例二中性能累计影响示意图;
[0037]图5为本申请实施例二中性能累计影响与基线结果比较示意图;
[0038]图6为本申请实施例三中性能测试设备的结构示意图。

【具体实施方式】
[0039]在本申请实施例的方案中,预先针对各应用软件创建性能测试件,所述性能测试件中包含了对应用软件进行压测时所需的测试脚本和运行环境参数,在需要对应用软件进行测试时,可直接调用性能测试件来构建测试场景并对应用软件进行压测,得到对该应用软件的性能测试结果。
[0040]由于本申请实施例的方案中无需手动创建测试环境,而是直接调用已创建的性能测试件来构建测试场景,可有效提高对应用软件的测试效率,即使在应用软件更新频率高的情况下,利用本申请实施例的方案也可及时对应用软件的性能进行测试,避免由于性能测试延迟导致应用软件运行异常的问题。
[0041]需要说明的是,本申请实施例以对一个待测应用软件进行性能测试为例进行描述,但本申请实施例的方案也不限于并行对多个待测应用软件的性能进行测试,针对每个待测应用软件的测试方式相同。
[0042]下面结合具体实施例对本申请的方案进行详细描述。
[0043]实施例一:
[0044]本申请实施例一描述了一种创建性能测试件的方案,在对应用软件进行性能测试之前执行,包括以下步骤:
[0045]第一步:为创建的性能测试件分配资源。
[0046]在本步骤中,可为待创建的性能测试件分配资源,如为性能测试件分配存储空间坐寸ο
[0047]第二步:在创建的性能测试件中生成该性能测试件和其所针对的应用软件之间的关联关系。
[0048]由于性能测试件是针对某一应用软件创建的,因此,可建立该性能测试件与该应用软件之间的关联关系,即:在性能测试件中记录具有关联关系的应用软件的标识。
[0049]一方面,一个性能测试件可为至少一个应用软件的性能测试提供服务,因此,一个性能测试件可与至少一个应用软件建立关联关系;另一方面,一个应用软件的测试环境需由至少一个性能测试件来搭建,因此,一个应用软件可与至少一个性能测试件建立关联关系O
[0050]第三步:在创建的性能测试件中生成针对关联的应用软件的测试脚本和运行环境参数。
[0051 ] 以“查看产品详情”这一应用软件A为例,创建的测试脚本为“调用应用软件A,发起查看产品详情的请求”,即生成压测请求,若调用应用软件A的路径为画.aliexpress.com,则生成的压测请求为调用WWW.aliexpress.com。
[0052]创建的运行环境参数可包括压测时间(如15分钟)、并发用户数(如10个用户并行发起查看产品详情的请求)等。
[0053]第四步:在创建的性能测试件中生成触发时间。
[0054]本步骤是创建性能测试件的优选步骤,所述触发时间可视为该性能测试件的运行时间,即:与该性能测试件关联的应用软件性能测试的触发条件,当触发时间到达时,该性能测试件可自动运行,为应用软件搭建测试环境,对应用软件的性能进行测试。
[0055]例如:若触发时间为8:00和20:00,表示每当8:00或20:00到达时,可自动调用在当前时刻具有关联关系的应用软件的主干代码,并自动编译并搭建测试环境,利用测试脚本和运行环境参数对调用的主干代码进行压测。
[0056]通过以上四步创建得到的性能测试件的内容示意图如图2所示,其中,测试脚本(如压测请求)和运行环境参数(如压测时间、并发用户数)是进行压测过程的要素;触发时间作为可选参数是触发压测的条件,用于指定性能测试件何时运行;性能测试件和应用软件的关联关系表明性能测试件属于哪个应用软件,从而可以在对某一应用软件进行性能测试时选取合适的性能测试件。
[0057]本实施例一并不对以上第二、三、四步骤的先后顺序进行限定,可按任意顺序执行上述三个步骤并生成相应的参数,或是并行执行上述三个步骤并生成相应的参数。
[0058]利用上述实施例一的方案创建性能测试件后,多个性能测试件构成性能测试库。当需要对某一应用软件的性能进行测试时,可首先自动选取性能测试件,然后自动执行选取的性能测试件,最后自动分析测试结果,完成对应用软件的性能测试过程,具体做法参见实施例二。
[0059]实施例二:
[0060]如图3所示,为本实施例二中对应用软件进行性能测试的方法步骤示意图,主要包括以下步骤:
[0061]步骤101:从性能测试库中选取与待测应用软件关联的性能测试件。
[0062]在实施例一中创建的性能测试件中包含了与该性能测试件具有关联关系的应用软件的标识,因此,可以从性能测试库中选取包含所述待测应用软件标识的性能测试件,选取出的性能测试件即为与待测应用软件关联的性能测试件。
[0063]假设本步骤101中选取的性能测试件为图2所示的性能测试件,则可以在性能测试件的触发时间(8:00和20:00)到达时,自动执行后续步骤,即:将性能测试件的触发时间作为性能测试的触发条件。
[0064]本实施例的方案也可以不以触发时间作为性能测试的触发条件,而以手动触发作为性能测试的触发条件,即:在执行完本步骤101后,不论触发时间是否到达,都可手动触发继续执行后续步骤。
[0065]步骤102:利用选取的所述性能测试件对所述待测应用软件的主干代码进行压测。
[0066]在本步骤102中,进行压测的主干代码是指:在当前时刻待测应用软件最新的主干代码。
[0067]在获取待测应用软件最新的主干代码后,利用选取的性能测试件自动搭建测试环境,并将待测应用软件的主干代码在所述测试场景下进行压测,得到本次针对该待测应用软件的压测结果。
[0068]例如,以图2所示的性能测试件搭建的测试场景对待测应用软件A的主干代码进行压测时,并行向WWW.aliexpress.com路径发起10个查看产品详情的请求,持续15分钟后,得到对待测应用软件A的压测结果。
[0069]所述压测结果包括但不限于以下内容:
[0070]主干代码版本号、平均响应时长、每秒完成事务数(TPS)、错误率。
[0071]步骤103:将压测结果与设定阈值进行比较,确定所述待测应用软件的性能。
[0072]根据压测结果包含的内容不同,本步骤103中进行比较的内容也不同,下面以压测结果为主干代码版本号、平均响应时长、TPS为例来进行说明。
[0073]本步骤103中的具体执行方式包括但不限于以下两种方式:
[0074]方式一:将本次压测结果与预设的基线结果进行比较,在本次压测结果与基线结果的差别满足第一设定条件时,确定待测应用软件的性能受到影响。
[0075]所述基线结果是指应用软件的性能基准值,通常指应用软件在特定场景下(如恒定的并发数、恒定的持续时间)的性能指标,可反映该应用软件理论上的性能。基线结果包括但不限于平均响应时长、TPS、错误率。
[0076] 所述第一设定条件用于反映本次压测结果与基线结果的差别是否较大,如果差别较大,则确定本次压测结果与基线结果的差别满足第一设定条件。根据压测结果和基线结果的内容不同,所述第一设定条件也不同。例如,若压测结果和基线结果中的内容为平均响应时长,则本次压测结果与基线结果的平均响应时长之差大于设定值(如10%)时,认为满足第一设定条件。
[0077]假设表1为待测应用软件的基线结果,表2为本次对待测应用软件进行压测后的压测结果。
[0078]

【权利要求】
1.一种性能测试方法,其特征在于,所述方法包括: 从性能测试库中选取与待测应用软件关联的性能测试件,所述性能测试件中包含测试脚本和运行环境参数; 利用选取的所述性能测试件对所述待测应用软件的主干代码进行压测; 将压测结果与设定阈值进行比较,确定所述待测应用软件的性能。
2.如权利要求1所述的性能测试方法,其特征在于,所述性能测试件中还包含与该性能测试件具有关联关系的应用软件的标识; 从性能测试库中选取与待测应用软件关联的性能测试件,具体包括: 从性能测试库中选取包含所述待测应用软件标识的性能测试件。
3.如权利要求1所述的性能测试方法,其特征在于,所述性能测试件包含的运行环境参数中有触发时间; 利用选取的性能测试件对待测应用软件的主干代码进行压测之前,所述方法还包括: 确定到达所述触发时间。
4.如权利要求1?3任一所述的性能测试方法,其特征在于,将压测结果与设定阈值进行比较,确定所述待测应用软件的性能,具体包括: 将本次压测后得到的压测结果与预设的基线结果进行比较,在本次压测结果与基线结果的差别满足第一设定条件时,确定待测应用软件的性能受到影响。
5.如权利要求1?3任一所述的性能测试方法,其特征在于,将压测结果与设定阈值进行比较,确定所述待测应用软件的性能,具体包括: 将本次压测后得到的压测结果与上一次对所述待测应用软件进行压测后的压测结果进行比较,在两次压测结果的差别满足第二设定条件时,确定待测应用软件的性能受到影响。
6.一种性能测试设备,其特征在于,所述设备包括: 测试件选取模块,用于从性能测试库中选取与待测应用软件关联的性能测试件,所述性能测试件中包含测试脚本和运行环境参数; 压测模块,用于利用选取的所述性能测试件对所述待测应用软件的主干代码进行压测; 性能确定模块,用于将压测结果与设定阈值进行比较,确定所述待测应用软件的性能。
7.如权利要求6所述的性能测试设备,其特征在于, 测试件选取模块,具体用于在所述性能测试件中还包含与该性能测试件具有关联关系的应用软件的标识时,从性能测试库中选取包含所述待测应用软件标识的性能测试件。
8.如权利要求6所述的性能测试设备,其特征在于,所述设备还包括: 触发模块,用于在所述性能测试件包含的运行环境参数中有触发时间时,确定到达所述触发时间时触发所述压测模块。
9.如权利要求6?8任一所述的性能测试设备,其特征在于, 性能确定模块,具体用于将本次压测后得到的压测结果与预设的基线结果进行比较,在本次压测结果与基线结果的差别满足第一设定条件时,确定待测应用软件的性能受到影响。
10.如权利要求6?8任一所述的性能测试设备,其特征在于, 性能确定模块,具体用于将本次压测后得到的压测结果与上一次对所述待测应用软件进行压测后的压测结果进行比较,在两次压测结果的差别满足第二设定条件时,确定待测应用软件的性能受到影响。
【文档编号】G06F11/36GK104182333SQ201310195624
【公开日】2014年12月3日 申请日期:2013年5月23日 优先权日:2013年5月23日
【发明者】袁翠, 许晓, 韩建亚, 胡刚 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1