公共组件测试方法、装置、电子设备及存储介质与流程

文档序号:26628235发布日期:2021-09-14 22:16阅读:123来源:国知局
公共组件测试方法、装置、电子设备及存储介质与流程

1.本公开涉及计算机技术领域,更具体地涉及一种公共组件测试方法、装置、电子设备及存储介质。


背景技术:

2.随着互联网技术的发展,公共组件被广泛应用于各个领域,从而产生了海量的压测需求。在实现本公开构思的过程中,发明人发现针对公共组件的压测通常仅从单一角度来进行,例如仅考虑通用版本而未对用户定制版本进行测试,或者仅考虑了公认的调用方法而忽略了其他可能的方法,不仅存在应用风险,而且这样往往会忽视用户的实际需求,进而无法快速而准确地为用户提供最优的版本及配置。


技术实现要素:

3.有鉴于此,本公开提供了一种公共组件测试方法、装置、电子设备、存储介质和程序产品。
4.根据本公开的一个方面,提供了一种公共组件测试方法,包括:
5.获取待测试公共组件的至少一个版本,作为测试版本;其中,所述测试版本至少包括用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本;
6.针对每个所述测试版本,获取测试程序;
7.针对每个所述测试程序,基于预设目标配置测试参数,生成多组测试用例;
8.使用所述多组测试用例对每个所述测试程序进行测试,得到测试结果;以及
9.根据所述测试结果和所述预设目标,确定最优的测试版本以及对应的测试参数。
10.根据本公开的实施例,所述方法还包括:在所述获取测试程序时,至少依据接口调用次数、调用线程数量对测试接口进行配置,以放大被测试点。
11.根据本公开的实施例,所述方法还包括:获取所述待测试公共组件的所有接口;
12.确定所述待测试公共组件的所有接口的测试优先级;其中,所述测试优先级用于指示所述待测试公共组件的接口的测试优先顺序;以及
13.基于所述测试优先级确定所述待测试公共组件的所有接口中的至少一个,以作为所述测试接口。
14.根据本公开的实施例,所述测试参数包括:测试接口、测试数据、测试工具和测试环境。
15.根据本公开的实施例,所述针对每个所述测试程序,基于预设目标配置测试参数,生成多组测试用例,包括:
16.基于第一预设维度设置不同的所述测试参数的组合,并生成多组测试用例;其中,所述第一预设维度用于表征在相同测试数据量不同并发条件下各个测试版本的吞吐量、响应时间、资源消耗情况;或者,
17.基于所述第一预设维度和第二预设维度设置不同的所述测试参数的组合,并生成
多组测试用例;其中,所述第二测试维度用于表征在相同并发不同测试数据量条件下各个测试版本的吞吐量、响应时间、资源消耗情况。
18.根据本公开的实施例,所述确定所述待测试公共组件的所有接口的测试优先级,包括:
19.所述待测试公共组件的所有接口的测试优先顺序依次为:生产上已使用的所有接口、官方文档给出的所有接口和风险接口;其中,所述风险接口根据所述生产上已使用的所有接口和所述官方文档给出的所有接口获得。
20.根据本公开的另一方面,提供了一种公共组件测试装置,包括:
21.第一获取模块,用于获取待测试公共组件的至少一个版本,作为测试版本;其中,所述测试版本至少包括用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本;
22.第二获取模块,用于针对每个所述测试版本,获取测试程序;
23.生成模块,用于针对每个所述测试程序,基于预设目标配置测试参数,生成多组测试用例;
24.测试模块,用于使用所述多组测试用例对每个所述测试程序进行测试,得到测试结果;以及
25.分析模块,用于根据所述测试结果和所述预设目标,确定最优的测试版本以及对应的测试参数。
26.根据本公开的实施例,在所述获取测试程序之时,所述第二获取模块还用于至少依据接口调用次数、调用线程数量对测试接口进行配置,以放大被测试点。
27.根据本公开的实施例,所述装置还包括第三获取模块,用于:
28.获取所述待测试公共组件的所有接口;
29.确定所述待测试公共组件的所有接口的测试优先级;其中,所述测试优先级用于指示所述待测试公共组件的接口的测试优先顺序;以及
30.基于所述测试优先级确定所述待测试公共组件的所有接口中的至少一个,以作为所述测试接口。
31.根据本公开的实施例,所述测试参数包括:测试接口、测试数据、测试工具和测试环境。
32.根据本公开的实施例,所述生成模块还用于:
33.基于第一预设维度设置不同的所述测试参数的组合,并生成多组测试用例;其中,所述第一预设维度用于表征在相同测试数据量不同并发条件下各个测试版本的吞吐量、响应时间、资源消耗情况;或者,
34.基于所述第一预设维度和第二预设维度设置不同的所述测试参数的组合,并生成多组测试用例;其中,所述第二测试维度用于表征在相同并发不同测试数据量条件下各个测试版本的吞吐量、响应时间、资源消耗情况。
35.根据本公开的另一方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行实现如上所述的方法。
36.根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有可执行指
令,该指令被处理器执行时使处理器执行实现如上所述的方法。
37.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如上所述的方法。
38.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
39.通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
40.图1示意性示出了根据本公开实施例的公共组件测试方法、装置、设备、介质和程序产品的应用场景;
41.图2示意性示出了根据本公开实施例的公共组件测试方法的流程图;
42.图3示意性示出了根据本公开实施例的获取待测试公共组件测试接口的方法的流程图;
43.图4示意性示出了根据本公开实施例的公共组件测试装置的框图;
44.图5示意性示出了根据本公开另一实施例的公共组件测试装置的框图;以及
45.图6示意性示出了根据本公开实施例的适用于实现公共组件测试方法的电子设备的框图。
具体实施方式
46.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
47.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
48.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
49.在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
50.附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方
框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
51.本公开的实施例提供了一种公共组件测试方法、装置、设备、介质和程序产品,可用于金融领域、计算机领域或其他领域,在此不做限定。上述方法包括:获取待测试公共组件的至少一个版本,作为测试版本;其中,测试版本至少包括用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本;针对每个测试版本,获取测试程序;针对每个测试程序,基于预设目标配置测试参数,生成多组测试用例;使用多组测试用例对每个测试程序进行测试,得到测试结果;以及根据测试结果和预设目标,确定最优的测试版本以及对应的测试参数。上述方法将公共组件的各个版本(包括用户定制版本)纳入测试,并基于预设目标配置测试参数,形成多个测试用例,从而通过在不同版本之间的对比测试,可以快速和准确地获取满足预设目标(可以根据公共组件的应用场景需求设定)的最优测试版本及其配置,提高了测试效率。
52.图1示意性示出了根据本公开实施例的公共组件测试方法、装置、设备、介质和程序产品的应用场景图。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
53.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104、服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
54.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
55.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
56.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
57.需要说明的是,本公开实施例所提供的公共组件测试方法一般可以由服务器105执行。相应地,本公开实施例所提供的公共组件测试装置一般可以设置于服务器105中。本公开实施例所提供的公共组件测试方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的公共组件测试装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
58.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需
要,可以具有任意数目的终端设备、网络和服务器。
59.以下将基于图1描述的场景,通过图2~图3对公开实施例的公共组件测试方法进行详细描述。
60.图2示意性示出了根据本公开实施例的公共组件测试方法的流程图。
61.如图2所示,公共组件测试方法具体包括操作s210~s250。
62.在操作s210,获取待测试公共组件的至少一个版本,作为测试版本;其中,测试版本至少包括用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本。
63.可以理解,由于软件升级、更新等原因,公共组件通常具有较多的版本(可能多达几十个版本),如果对公共组件的所有版本一一进行测试,不仅效率低下,而且对于一些使用率不高或者无使用历史的版本进行测试,可能会导致测试资源的浪费。因此,需要对公共组件的版本进行筛选,以提高测试效率,节省时间。
64.这里的待测试公共组件是指需要进行压测的公共组件。测试版本是指按照预设规则筛选,经确认需要进行压测的公共组件。其中预设规则可以根据操作人员的经验、设计分析或应用实际需要来设定,在此不做限定。考虑到实际应用需要和测试效率等因素,可以将用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本等作为测试版本。其中,当用户使用的版本为定制版本时,该用户使用的版本具体是指用户的定制版本;当用户使用的版本为通用版本时,该用户使用的版本具体是指该通用版本。各大版本的最新版本例如可以是每个大版本的最新版,例如公共组件2.0版本等。修改版本例如可以是指有重大改动的小版本、重点版本配置差异明显的版本、依赖包有重大改动的版本等。上述这些测试版本可以根据官方(即组件发布者)发布的版本更新日志(changelog)获取。
65.在操作s220,针对每个测试版本,获取测试程序。
66.针对已经筛选出的测试版本,例如用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本等版本,分别获取每个测试版本的测试程序。
67.各个版本的测试程序可参考如下方式获取:
68.针对各大版本的最新版本和有重大改动的小版本的测试程序,例如可以参考官方文档给出的调用方式获取。
69.针对重点版本配置差异明显的版本的测试程序,可以参考官方文档给出的调用方式及不同的配置来获取。
70.针对依赖包有重大改动的版本的测试程序,可以参考官方文档给出的调用方式,分别添加不同版本的依赖包获取。
71.针对应用最广泛的版本的测试程序,可以通过调研业界最流行的版本,根据官方文档给出的调用方式以及业界流行的非官方方式(如有),分别获取不同的测试程序。
72.针对用户定制版本,由于要适应既存其他业务系统,在使用公共组件时进行压测时需要对特定功能或格式进行改造,以保证测试包处理逻辑与生产逻辑一致,故而可以根据用户的业务特殊性对官方提供的api进行封装,形成定制化的版本包,再调用该版本包获取针对用户定制版本的测试程序。
73.在本公开实施例中,上述官方文档给出的调用方式例如可以是组件发布者给出的接口调用方法,非官方方式例如可以是除组件发布者给出的接口调用方法之外的用户自定义的接口调用方法。例如,u公司发布了组件a的最新版本n1,那么,u公司发布的关于组件a
的最新版本n1的所有接口调用方法可以理解为官方文档给出的调用方式;而用户y为了适应既存的业务系统,对上述官方文档给出的接口调用方法进行了改动,则用户y提供的接口调用方法即为非官方方式。
74.需要说明的是,上述获取各个版本的测试程序的方式仅是示例性的,以便于本领域技术人员理解本公开的技术方案,并非用以限定本公开的保护范围。在其他一些实施例中,可以采用其他方式获取上述各个版本的测试程序。
75.在操作s230,针对每个测试程序,基于预设目标配置测试参数,生成多组测试用例。
76.预设目标是指对公共组件各个测试版本进行测试的目的,例如预设目标是为了筛选出在相同数据量不同并发下处理能力最优的版本及测试参数,可以基于上述预设目标配置测试参数(例如测试数据量、测试接口、测试工具、测试环境等),生成多组测试用例,进而通过测试结果分析是否满足预设目标。测试结果可以为后续公共组件的应用提供参考依据。
77.每组测试用例包含一个测试版本及一组测试参数。不同的测试用例之间可以包含相同的测试版本或一组测试参数,以便对比相同测试版本在不同测试参数条件下的处理能力,或者不同测试版本在相同测试参数条件下的处理能力。通过设置不同测试参数的组合,可以形成多组测试用例,用于后续统计、分析,进而得到不同应用场景下最优的版本和测试参数。
78.在操作s240,使用多组测试用例对每个测试程序进行测试,得到测试结果。
79.服务器获取到多组测试用例,按照各个测试用例中已搭建的测试环境(例如结合用户生产环境的实际工作场景布置的测试环境),将各个测试程序在测试环境中运行。将测试参数输入测试程序中,启动测试脚本对带有测试用例参数的测试程序进行测试,得到测试结果。
80.在操作s250,根据测试结果和预设目标,确定最优的测试版本以及对应的测试参数。
81.例如,将预设目标设定为在相同数据量不同并发下处理能力最优的版本及测试参数。其中,各测试版本不同并发下处理能力可以通过测试结果中的吞吐量、响应时间、错误率、资源消耗(例如内存占用率)等评价指标来评估。具体地,例如可以利用权重评价分析方法,将各个评价指标转换为相应的评分,并综合运用专家判断法或经验等设定各个评价指标的权重。各测试版本不同并发下处理能力的评估得分可以通过各评价指标及其对应的权重计算得到,评估得分最高者即可视为获取相同数据量不同并发时处理能力最优的测试版本及测试参数。
82.下面将结合示例对如何确定最优的测试版本以及测试参数进行说明。
83.沿用上述的预设目标(即需要获取在相同数据量不同并发下处理能力最优的版本及测试参数)。假设在有两组测试用例的情况下,两组测试用例分别为x1、x2。评价指标吞吐量、响应时间、错误率、资源消耗所对应的权重分别为m1、m2、m3和m4。执行测试用例x1得到测试结果中,吞吐量、响应时间、错误率、资源消耗对应的评分分别为a
11
、a
12
、a
13
、a
14
;执行测试用例x2得到测试结果中,吞吐量、响应时间、错误率、资源消耗对应的评分分别为a
21
、a
22
、a
23
、a
24
。那么,测试用例x1所对应的测试版本在不同并发下处理能力,即评估得分p1=a
11
·
m1+a
12
·
m2+a
13
·
m3+a
14
·
m4,测试用例x2所对应的测试版本在不同并发下处理能力,即评估得分p2=a
21
·
m1+a
22
·
m2+a
23
·
m3+a
24
·
m4。若p1>p2,则测试用例x1对应的测试版本及测试参数作为最优的版本及测试参数。需要说明的是,上述对于如何确定最优测试版本和测试参数的描述仅是示例性的,以便于本领域技术人员理解本公开的技术方案,并非用以限定本公开的保护范围。在其他一些实施例中,可以采用其他方式来实现,在此不做限定。对于测试评价指标及其对应的权重可以由测试人员结合测试预设目标、经验和设计分析来配置。
84.本公开实施例的公共组件测试方法将公共组件的各个版本(包括用户定制版本)纳入测试,并基于预设目标配置测试参数,形成多个测试用例,从而通过在不同版本之间的对比测试,可以快速和准确地获取满足预设目标(可以根据公共组件的应用场景需求设定)的最优测试版本及其配置,提高了测试效率。
85.在本公开的一些实施例中,上述操作s230中的测试参数例如可以包括测试接口、测试数据、测试工具和测试环境。
86.为了更好地模拟实际生产环境,从而为用户提供更可靠的测试结果,测试接口、测试数据、测试工具和测试环境等测试参数应尽可能地模拟实际生产环境下的参数来配置。例如,针对测试数据的获取,具体可以参考用户生产环境的数据量(例如平日数据量、峰值数据量、归纳数据类型、统计数据比例以及观测数据波动趋势等),准备同量数据(如果条件允许)或等比缩小数据量进行造数或从生产环境进行恢数。对于测试工具,可以选择公认的测试工具,例如jmeter、loadrunner等等。对于测试环境,可以参考用户生产环境的实际工作场景来实施。由于公共组件涉及的接口较多,下面将结合图3对测试接口的获取进行详细说明。
87.图3示意性示出了根据本公开实施例的获取待测试公共组件测试接口的方法的流程图。
88.如图3所示,获取待测试公共组件的测试接口方法包括操作s310~s330。
89.在操作s310,获取待测试公共组件的所有接口。
90.待测公共组件的所有接口主要可以分为三类:官方文档给出的所有接口、生产上已经在用的所有接口、其他可能用到的接口。
91.这里所谓的官方文档给出的所有接口是指接口发布者提供的文档中给出的针对待测公共组件的所有接口。例如,u公司发布了组件a的最新版本n1,那么,u公司发布的关于组件a的最新版本n1的所有接口可以理解为官方文档给出的所有接口。生产上已经在用的所有接口是指生产环境上有使用历史或者正在使用的待测公共组件的接口。其他可能用到的接口是指除了官方文档给出的接口之外的其他公有方法。
92.基于上述分类,可以获得每一类接口的清单,例如,将官方文档给出的所有接口列入第一类接口清单,将生产上已经在用的所有接口列入第二类接口清单,将其他可能用到的接口列入第三类接口清单。基于第二类接口清单和第三类接口清单可以得到未使用接口的清单(第四类接口清单),再结合用户业务特殊性对第四类接口清单进行筛选,可以获得风险接口清单(第五类接口清单)。后续在对公共组件进行测试时,可以从第一类接口清单、第二类接口清单和第五类接口清单中选择一个或多个接口作为测试接口。
93.在操作s320,确定待测试公共组件的所有接口的测试优先级;其中,测试优先级用
于指示待测试公共组件的接口的测试优先顺序。
94.由于公共组件涉及的接口较多,如果一一对其测试,会费时耗力,测试效率低下,尤其是在测试时间有限的情况下,从众多接口中挑选符合要求的测试接口更是不切实际。因此,可以结合实际应用和测试需要,对第一类接口清单、第二类接口清单和第五类接口清单中的接口进行测试优先级划分,这样在时间有限的情况下,可以按照优先级顺序获取测试接口,从而在保证测试需求的前提下,节省了测试时间。
95.在本公开实施例中,待测试公共组件的所有接口的测试优先顺序依次为:生产上已使用的所有接口>官方文档给出的所有接口>风险接口,即第二类接口清单中的接口优先于第一类接口清单中的接口和第五类接口清单中的接口。
96.在操作s330,基于测试优先级确定待测试公共组件的所有接口中的至少一个,以作为测试接口。
97.具体地,基于上述测试优先级可以确定待测试公共组件的所有接口中的至少一个,以作为测试接口。该至少一个测试接口在后续用于配置测试用例。
98.在本公开的一些实施例中,在操作s220中,在获取每个测试版本的测试程序时,至少依据接口调用次数、调用线程数量对测试接口进行配置,以放大被测试点。
99.由于传统的单机压测工具对于大并发量的压测需求发压时并不友好,在并发量需求较大的时候常常需要搭建分布式压测集群,进而导致测试成本较高。为了解决这一问题,在本实施例中,在获取每个测试版本的测试程序的过程中,可以对上述至少一个测试接口进行可配置化操作,以放大被测试点。例如可以依据接口调用次数、调用线程数量等放大被测试点,例如,压测工具起500个并发进行压测,调用次数例如配置为100次、调用线程数量例如配置为2,那么对于测试接口就会产生500
×
100
×
2=100000并发的压力。采用上述方式可以提高压测工具的并发量,从而灵活地解决了单机压测工具无法满足大并发量压力需求而必须要搭建压测集群的弊端,降低了压测成本。需要说明的是,上述对于依据接口调用次数、调用线程数量等放大被测试点的描述仅是示例性的,以便于本领域技术人员理解本公开的技术方案,并非用以限定本公开的保护范围。在其他一些实施例中,可以根据实际需要设置其他放大倍数,在此不做限定。
100.在本公开的一些实施例中,上述操作s230中,针对每个测试程序,基于预设目标配置测试参数,生成多组测试用例,具体包括如下操作:
101.基于第一预设维度设置不同的测试参数的组合,并生成多组测试用例。其中,第一预设维度用于表征在相同测试数据量不同并发条件下各个测试版本的吞吐量、响应时间、资源消耗情况;或者,基于第一预设维度和第二预设维度设置不同的测试参数的组合,并生成多组测试用例;其中,第二测试维度用于表征在相同并发不同测试数据量条件下各个测试版本的吞吐量、响应时间、资源消耗情况。
102.对于所有的测试程序,可以进行两个维度的测试。其中,第一预设维度指相同测试数据量不同并发条件下各测试版本的吞吐量、相响应时间、资源消耗等情况。进行第一预设维度测试的目的在于对比不同压力下不同测试版本同一测试接口的处理能力。第二测试维度指不同测试数据量相同并发条件下各个测试版本的吞吐量、响应时间、资源消耗等情况。进行第二预设维度测试的目的在于对比同一接口对于不同大小数据量的处理能力。
103.以上两个维度的测试可以根据待测试公共组件的实际情况以及预设目的进行选
择。例如,对于有些功能也可能存在大小数据量的处理逻辑不同(数据量超过某一阈值时会进行特殊处理,例如压缩数据等),此时需要基于第一预设维度和第二预设维度设置不同的测试参数的组合,并生成多组测试用例,进而进行测试,以便获取在此种条件下的最优测试版本和测试参数。除了上述情况,其他情况下可以只进行第一预设维度的测试,即测试相同测试数据量不同并发条件下各测试版本的吞吐量、相响应时间、资源消耗等情况,进而获取该条件下的最优测试版本和测试参数。
104.下面将结合具体的实施例对本公开的公共组件测试方法进行进一步地说明。应当理解,本实施例中示出的内容仅是为了便于本领域技术人员理解本公开的技术方案,并非用以限定本公开的保护范围。
105.表一示意性示出了本公开实施例的公共组件测试方法的多组测试用例的配置。如表一所示,表一中示出了多个测试用例x1~x5,其中每个测试用例xi根据测试版本、测试程序、测试接口、测试工具、测试数据和测试环境配置而成。具体地,测试程序、测试接口、测试工具、测试数量和测试环境等的获取过程与以上描述的过程相同,在此不再赘述。在表一中,将以测试接口表示并发压力,即不同的测试接口代表不同的并发压力。
106.表一
[0107][0108][0109]
如表一所示,针对每个测试版本(对应一个测试程序),可以根据预设目标配置测试参数,进而生成多组测试用例,例如,对于测试版本n1,可以配置不同的测试参数,生成测试用例x1、x2和x3。通过对比测试用例x1、x2和x3,可以对比同一个测试接口a1对于不同大小数据量c1~c3的处理能力,即基于第二预设维度进行测试。通过对比测试用例x3、x4和x5,可以对比相同测试数据量c2时,不同并发压力(a1~a3)下不同测试版本的处理能力,即基于第一预设维度进行测试。
[0110]
在本实施例中,各测试版本的处理能力可以通过吞吐量、响应时间、错误率、资源消耗(例如内存占用率)等评价指标来评估。沿用以上采用权重评价分析方法(仅为示例)对测试结果进行评估,假设评价指标吞吐量、响应时间、错误率、资源消耗所对应的权重分别为m1、m2、m3和m4。
[0111]
表二示意性示出了表一中各个测试用例的测试结果。如表二所示,各测试版本的处理能力分别可以表示如下:
[0112]
[0113]
其中,p
i
表示各个测试用例的评估得分,a
ij
表示各评估指标的得分,m
i
表示各评估指标对应的权重,n表示评估指标的项数。
[0114]
表二
[0115]
测试用例吞吐量响应时间错误率资源消耗x1a
11
a
12
a
13
a
14
x2a
21
a
22
a
23
a
24
x3a
31
a
32
a
33
a
34
x4a
41
a
42
a
43
a
44
x5a
51
a
52
a
53
a
54
[0116]
通过上述公式(1)即可计算得到测试用例x1~x5的评估得分,通过比较各测试用例的评估得分即可获取符合预设目标的最优测试版本和测试参数。本公开实施例中的公共组件测试方法将公共组件的各个版本(包括用户定制版本)纳入测试,并基于预设目标配置测试参数,形成多个测试用例,从而通过在不同版本之间的对比测试,可以快速和准确地获取满足预设目标(可以根据公共组件的应用场景需求设定)的最优测试版本及其配置,提高了测试效率。
[0117]
基于上述公共组件测试方法,本公开还提供了一种公共组件测试装置。以下将结合图4和图5对该装置进行详细描述。
[0118]
图4示意性示出了根据本公开实施例的公共组件测试装置的结构框图。
[0119]
如图4所示,公共组件测试装置400包括第一获取模块410、第二获取模块420、生成模块430、测试模块440和分析模块450。
[0120]
第一获取模块410用于获取待测试公共组件的至少一个版本,作为测试版本,其中,测试版本至少包括用户使用的版本、各大版本的最新版本、修改版本以及应用最广泛的版本。
[0121]
第二获取模块420用于针对每个测试版本,获取测试程序。
[0122]
生成模块430用于针对每个测试程序,基于预设目标配置测试参数,生成多组测试用例。
[0123]
测试模块440用于使用多组测试用例对每个测试程序进行测试,得到测试结果。
[0124]
分析模块450用于根据测试结果和预设目标,确定最优的测试版本以及对应的测试参数。
[0125]
在本公开的一些实施例中,在获取测试程序之时,第二获取模块420还用于至少依据接口调用次数、调用线程数量对测试接口进行配置,以放大被测试点。
[0126]
在本公开的一些实施例中,测试参数包括:测试接口、测试数据、测试工具和测试环境。
[0127]
在本公开的一些实施例中,生成模块430还用于基于第一预设维度设置不同的测试参数的组合,并生成多组测试用例;其中,第一预设维度用于表征在相同测试数据量不同并发条件下各个测试版本的吞吐量、响应时间、资源消耗情况;或者,基于第一预设维度和第二预设维度设置不同的测试参数的组合,并生成多组测试用例;其中,第二测试维度用于表征在相同并发不同测试数据量条件下各个测试版本的吞吐量、响应时间、资源消耗情况。
[0128]
图5示意性示出了根据本公开另一实施例的公共组件测试装置的结构框图。
[0129]
如图5所示,公共组件测试装置500包括第一获取模块510、第二获取模块520、第三获取模块530、生成模块540、测试模块550和分析模块560。其中,第一获取模块510、第二获取模块520、生成模块540、测试模块550和分析模块560分别具有与第一获取模块410、第二获取模块420、生成模块430、测试模块440和分析模块450对应相同的功能,重复的部分不再赘述。
[0130]
在本公开实施例中,第三获取模块530用于获取待测试公共组件的所有接口;确定待测试公共组件的所有接口的测试优先级;其中,测试优先级用于指示待测试公共组件的接口的测试优先顺序;以及基于测试优先级确定待测试公共组件的所有接口中的至少一个,以作为测试接口。
[0131]
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
[0132]
根据本公开的实施例,第一获取模块510、第二获取模块520、第三获取模块530、生成模块540、测试模块550和分析模块560中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块510、第二获取模块520、第三获取模块530、生成模块540、测试模块550和分析模块560中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块510、第二获取模块520、第三获取模块530、生成模块540、测试模块550和分析模块560中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0133]
本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律的规定,且不违背公序良俗。
[0134]
图6示意性示出了根据本公开实施例的适于实现公共组件测试方法的电子设备的方框图。
[0135]
如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0136]
在ram 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、rom 602以及ram 603通过总线604彼此相连。处理器601通过执行rom 602和/或ram 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 602和ram 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0137]
根据本公开的实施例,电子设备600还可以包括输入/输出(i/o)接口605,输入/输出(i/o)接口605也连接至总线604。电子设备600还可以包括连接至i/o接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0138]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0139]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 602和/或ram 603和/或rom 602和ram 603以外的一个或多个存储器。
[0140]
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
[0141]
在该计算机程序被处理器601执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
[0142]
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0143]
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0144]
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c++,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备
或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0145]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0146]
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
[0147]
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1