本发明实施例涉及数据测试技术领域,具体涉及一种负载测试方法、装置、电子设备及计算机可读存储介质。
背景技术:
随着数据技术和互联网技术的发展,越来越多的服务提供商通过软件系统为用户提供服务,其中不乏为数量众多的用户提供服务、对全球数十亿用户的日常生活产生重大影响的大型软件系统,比如亚马逊aws、谷歌gmail和netflix。显然,这些大型软件系统的稳定运行非常重要,即使是细小的故障也会给用户带来不良的用户体验,数据的丢失以及收益的损失。因此,在实践中通常使用负载测试来确保软件系统在负载下的运行质量。
负载测试的目标是确保软件系统在现实工作负载下表现良好,为了达到这个目标,首先需要恢复工作负载,然后根据恢复的工作负载设计负载测试。恢复负载工作量是一项挑战性的任务,因为需要在工作负载的粒度级别与使用此类工作负载进行负载测试的成本之间取得平衡。若恢复的工作负载太粗糙,即工作负载过于简化,比如,specweb96基准定义了一个工作负载,它仅指定访问文件的概率,例如“文件少于1kb,占所有请求的35%”,则该恢复的工作负载无法捕获用户行为的差异,从而导致负载测试丧失代表性;若工作负载逐步重放确切的现场工作负载,虽然能够重现确切的用户行为,但该方法维持工作负载的成本非常高,这是因为,软件系统用户数量众多,重放确切的工作负载需要负载测试来模拟每个用户大量的上下文信息,还需要为每个特定的事件序列开发模拟代码,同时,由于几乎不可能两次观察完全相同的工作负载,因此需要对于工作负载不断的更新。
为了达到工作负载的理想粒度级别,现有技术通常基于少量群集的代表性用户行为来设计工作负载,而在聚集用户时,通常是基于不同用户操作的频率来实现。但是,由于大型软件系统中用户存在高度可变性,仅仅考虑事件的发生频率不免过于粗糙。相反,用户操作的顺序和上下文可以使工作负载更具代表性,比如,一个用户重复从文件中读取小块数据,然后将每个小块写回文件,而另一个用户以交互方式读取并将大量小块数据写入文件。如果仅考虑读取和写入等操作的频率,则无法区分这两个用户的工作负载,但若添加有关这些用户操作的更多详细信息又将会导致恢复、执行和维护成本过高。
技术实现要素:
本发明实施例提供一种负载测试方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例中提供了一种负载测试方法。
具体的,所述负载测试方法,包括:
获取负载数据,并基于所述负载数据确定操作方操作数据序列;
对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组;
确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述负载数据为负载日志数据或者模拟负载数据或者实时负载数据。
结合第一方面和第一方面的第一种实现方式,本发明实施例在第一方面的第二种实现方式中,所述获取负载数据,并基于所述负载数据确定操作方操作数据序列,包括:
获取负载日志数据;
确定所述负载日志数据中的操作方标识信息;
基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,得到与所述操作方标识信息对应的操作方操作数据序列。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组,包括:
计算所述操作方操作数据序列的距离矩阵;
根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
结合第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述计算所述操作方操作数据序列的距离矩阵,包括:
基于所述操作方操作数据序列构建操作方操作数据序列矩阵;
基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵;
将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,得到所述操作方的距离矩阵。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵,被实施为:
确定所述操作方操作数据序列中的频繁序列;
计算所述频繁序列之间的编辑距离;
根据所述频繁序列之间的编辑距离确定所述操作方操作数据序列之间的相似度,并生成所述操作方操作数据序列相似度矩阵。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式和第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试,包括:
确定所述操作方类组中满足预设条件的目标操作方;
获取所述目标操作方的频繁序列及其出现频率;
根据所述频繁序列的出现频率计算所述频繁序列的出现概率;
根据所述频繁序列的出现概率生成负载测试数据;
回放运行所述负载测试数据进行负载测试。
第二方面,本发明实施例中提供了一种负载聚类方法。
具体的,所述负载聚类方法,包括:
获取负载数据,并基于所述负载数据确定操作方操作数据序列;
对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
第三方面,本发明实施例中提供了一种负载测试装置。
具体的,所述负载测试装置,包括:
确定模块,被配置为获取负载数据,并基于所述负载数据确定操作方操作数据序列;
第一聚类模块,被配置为对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组;
生成模块,被配置为确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试。
结合第三方面,本发明实施例在第三方面的第一种实现方式中,所述负载数据为负载日志数据。
结合第三方面和第三方面的第一种实现方式,本发明实施例在第三方面的第二种实现方式中,所述确定模块包括:
第一获取子模块,被配置为获取负载日志数据;
第一确定子模块,被配置为确定所述负载日志数据中的操作方标识信息;
第二获取子模块,被配置为基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,得到与所述操作方标识信息对应的操作方操作数据序列。
结合第三方面、第三方面的第一种实现方式和第三方面的第二种实现方式,本公开在第三方面的第三种实现方式中,所述第一聚类模块包括:
第一计算子模块,被配置为计算所述操作方操作数据序列的距离矩阵;
聚类子模块,被配置为根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
结合第三方面、第三方面的第一种实现方式、第三方面的第二种实现方式和第三方面的第三种实现方式,本公开在第三方面的第四种实现方式中,所述第一计算子模块包括:
构建子模块,被配置为基于所述操作方操作数据序列构建操作方操作数据序列矩阵;
第一生成子模块,被配置为基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵;
相乘子模块,被配置为将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,得到所述操作方的距离矩阵。
结合第三方面、第三方面的第一种实现方式、第三方面的第二种实现方式、第三方面的第三种实现方式和第三方面的第四种实现方式,本公开在第三方面的第五种实现方式中,所述第一生成子模块被配置为:
第二确定子模块,被配置为确定所述操作方操作数据序列中的频繁序列;
第二计算子模块,被配置为计算所述频繁序列之间的编辑距离;
第二生成子模块,被配置为根据所述频繁序列之间的编辑距离确定所述操作方操作数据序列之间的相似度,并生成所述操作方操作数据序列相似度矩阵。
结合第三方面、第三方面的第一种实现方式、第三方面的第二种实现方式、第三方面的第三种实现方式、第三方面的第四种实现方式和第三方面的第五种实现方式,本公开在第三方面的第六种实现方式中,所述生成模块包括:
第三确定子模块,被配置为确定所述操作方类组中满足预设条件的目标操作方;
第三获取子模块,被配置为获取所述目标操作方的频繁序列及其出现频率;
第三计算子模块,被配置为根据所述频繁序列的出现频率计算所述频繁序列的出现概率;
第三生成子模块,被配置为根据所述频繁序列的出现概率生成负载测试数据;
测试子模块,被配置为回放运行所述负载测试数据进行负载测试。
第四方面,本发明实施例中提供了一种负载测试装置。
具体的,所述负载测试装置,包括:
获取模块,被配置为获取负载数据,并基于所述负载数据确定操作方操作数据序列;
第二聚类模块,被配置为对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
第五方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持负载测试装置/负载聚类装置执行上述负载测试方法/负载聚类方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述负载测试装置/负载聚类装置还可以包括通信接口,用于负载测试装置/负载聚类装置与其他设备或通信网络通信。
第六方面,本发明实施例提供了一种计算机可读存储介质,用于存储负载测试装置/负载聚类装置所用的计算机指令,其包含用于执行上述负载测试方法/负载聚类方法为负载测试装置/负载聚类装置所涉及的计算机指令。
本发明实施例提供的技术方案可包括以下有益效果:
上述技术方案基于负载数据来获取操作方操作数据序列,并通过对于操作方操作数据序列进行聚类,得到一个或多个操作方类组,根据操作方类组中满足预设条件的目标操作方的数据序列生成负载测试数据进行负载测试。该技术方案使用操作方事件和上下文信息组合的序列来帮助恢复负载工作量,从而实现在不同操作方行为粒度级别上的工作负载恢复,另外通过聚类方法来挖掘具有代表性的操作方,从而借助少量用户就可以实现工作负载的生成。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本发明一实施方式的负载测试方法的流程图;
图2示出根据图1所示实施方式的负载测试方法的步骤s101的流程图;
图3示出根据图1所示实施方式的负载测试方法的步骤s102的流程图;
图4示出根据图3所示实施方式的负载测试方法的步骤s301的流程图;
图5示出根据图1所示实施方式的负载测试方法的步骤s103的流程图;
图6示出根据本发明一实施方式的负载聚类方法的流程图;
图7示出根据本发明一实施方式的负载测试装置的结构框图;
图8示出根据图7所示实施方式的负载测试装置的确定模块701的结构框图;
图9示出根据图7所示实施方式的负载测试装置的第一聚类模块702的结构框图;
图10示出根据图9所示实施方式的负载测试装置的第一计算子模块901的结构框图;
图11示出根据图7所示实施方式的负载测试装置的生成模块703的结构框图;
图12示出根据本发明一实施方式的负载聚类装置的结构框图;
图13示出根据本发明一实施方式的应用场景示意图;
图14示出根据本发明一实施方式的电子设备的结构框图;
图15是适于用来实现根据本发明一实施方式的负载测试方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
本发明实施例提供的技术方案基于负载数据来获取操作方操作数据序列,并通过对于操作方操作数据序列进行聚类,得到一个或多个操作方类组,根据操作方类组中满足预设条件的目标操作方的数据序列生成负载测试数据进行负载测试。该技术方案使用操作方事件和上下文信息组合的序列来帮助恢复负载工作量,从而实现在不同操作方行为粒度级别上的工作负载恢复,另外通过聚类方法来挖掘具有代表性的操作方,从而借助少量用户就可以实现工作负载的生成。
图1示出根据本发明一实施方式的负载测试方法的流程图,如图1所示,所述负载测试方法包括以下步骤s101-s103:
在步骤s101中,获取负载数据,并基于所述负载数据确定操作方操作数据序列;
在步骤s102中,对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组;
在步骤s103中,确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试。
上文提及,随着数据技术和互联网技术的发展,越来越多的服务提供商通过软件系统为用户提供服务,为了保障软件系统的稳定运行,在实践中通常使用负载测试来确保软件系统在负载下的运行质量。负载测试的目标是确保软件系统在现实工作负载下表现良好,为了达到这个目标,首先需要恢复工作负载,然后根据恢复的工作负载设计负载测试。恢复负载工作量是一项挑战性的任务,因为需要在工作负载的粒度级别与使用此类工作负载进行负载测试的成本之间取得平衡。若恢复的工作负载太粗糙,即工作负载过于简化,则该恢复的工作负载无法捕获用户行为的差异,从而导致负载测试丧失代表性;若工作负载逐步重放确切的现场工作负载,虽然能够重现确切的用户行为,但该方法维持工作负载的成本非常高。现有技术通常基于少量群集的代表性用户行为来设计工作负载,而在聚集用户时,通常是基于不同用户操作的频率来实现。但是,由于大型软件系统中用户存在高度可变性,仅仅考虑事件的发生频率不免过于粗糙,若添加有关用户操作的更多详细信息又将会导致恢复、执行和维护成本过高。
考虑到上述问题,在该实施方式中,提出一种负载测试方法,该方法基于负载数据来获取操作方操作数据序列,并通过对于操作方操作数据序列进行聚类,得到一个或多个操作方类组,根据操作方类组中满足预设条件的目标操作方的数据序列生成负载测试数据进行负载测试。该技术方案使用操作方事件和上下文信息组合的序列来帮助恢复负载工作量,从而实现在不同操作方行为粒度级别上的工作负载恢复,另外通过聚类方法来挖掘具有代表性的操作方,从而借助少量用户就可以实现工作负载的生成。
在本发明一实施方式中,所述负载数据指的是在预设时间段内基于操作方的操作产生或生成的负载数据。其中,所述操作方指的是负载操作用户、负载操作机器或者负载操作资源等操作方。其中,所述操作方的操作比如可以为搜索操作、删除操作、新增操作、编辑操作等操作。
在本发明一实施方式中,所述负载数据可包括以下数据中的一种或多种:操作方标识信息和与所述操作方标识信息对应的负载数据,包括负载工作量、负载内容、负载处理结果等等。其中,所述操作方标识信息用于对于操作方进行唯一性标识。
在本发明一实施方式中,所述操作方操作数据序列指的是由某一特定操作方产生的负载数据组成的数据序列,所述操作方操作数据序列能够体现操作方操作事件特征,能够体现与操作方操作事件存在某种关联的上下文信息,其中,所述操作方操作事件特征比如可以包括以下特征中的一种或多种:操作方操作事件目的、操作方操作事件内容、操作方操作事件效果等等,其中,所述上下文信息比如可以包括以下信息中的一种或多种:与所述操作方相关的其他操作方的操作事件信息、与所述操作方操作事件存在时间先后顺序的该操作方的其他操作事件信息等等。基于所述数据序列中丰富的信息,可根据实际应用的需要获取具有不同操作方行为粒度级别的数据信息。其中,所述操作方操作数据序列可按照某一预设规律排列,比如,按照时间先后的顺序,按照某一字段出现的顺序或者某一字段出现频率的顺序等等。比如,按照某一字段出现的顺序,所述操作方操作数据序列可以为搜索删除新增序列、搜索编辑序列、新增编辑序列等等。
考虑到日志数据是一种能够详细记录事件过程和经历的数据,具有完备性和完整性,从日志数据中能够更完整、更准确地获取操作方负载数据,因此,在本发明一实施方式中,所述负载数据为负载日志数据。当然,所述负载数据也可以为模拟负载数据或者实时负载数据。
在本发明一实施方式中,如图2所示,所述步骤s101,即获取负载数据,并基于所述负载数据确定操作方操作数据序列的步骤,包括以下步骤s201-s203:
在步骤s201中,获取负载日志数据;
在步骤s202中,确定所述负载日志数据中的操作方标识信息;
在步骤s203中,基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,得到与所述操作方标识信息对应的操作方操作数据序列。
为了获取操作方操作数据序列,进而得到操作方的行为信息,在该实施方式中,从所述负载数据中分析并挖掘出操作方操作数据序列。具体地,首先获取负载日志数据;然后确定所述负载日志数据中出现的操作方标识信息;最后基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,将与所述操作方标识信息对应的负载日志数据组合起来,即可得到与所述操作方标识信息对应的操作方操作数据序列。
在本发明一实施方式中,在组合与所述操作方标识信息对应的负载日志数据时,既可按照时间先后的顺序进行组合,也可按照某一字段出现的顺序进行组合,再或者按照某一字段出现频率的顺序进行组合。本领域技术人员可根据实际应用的需要以及被组合数据的特点选择合适的数据组合方式,本公开对其不作具体限定。
在本发明一实施方式中,如图3所示,所述步骤s102,即对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组的步骤,包括以下步骤s301-s302:
在步骤s301中,计算所述操作方操作数据序列的距离矩阵;
在步骤s302中,根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
为了在保证负载测试数据正确性的前提下,使用尽可能少的操作方操作数据生成负载测试数据,减少负载测试运算量,提高负载测试工作效率,在该实施方式中,通过对于操作方进行聚类的方法以便于后续基于聚类类组获取具有代表性的操作方及其对应的负载测试数据,最终得到进行负载测试的负载测试数据。其中,聚类指的是将物理或抽象对象的集合分成由类似的对象组成的多个类的过程,也即由聚类操作所生成的类组是一组数据对象的集合,这些对象与同一个类组中的对象彼此相似,与其他类组中的对象彼此相异。
在本发明一实施方式中,使用层次聚类的方法,基于皮尔孙距离对于所述操作方操作数据序列进行聚类,最终聚类的结果可通过树状图展示出来,在聚类过程中,使用calinski-harabasz停止规则来切割树状图并确定最终的类组数目。具体地,采用以下步骤实现聚类:首先计算所述操作方操作数据序列的距离矩阵;然后根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组,位于同一操作方类组中的操作方可认为操作行为比较类似,进而可获取每一操作方类组中具有代表性的操作方来代表该操作方类组的行为。
在本发明一实施方式中,在聚类之前,还可对于聚类方法所使用的参数进行初始化。
当然,上述层次聚类的方法仅为示例性说明,在实际应用中,也可以使用其他聚类方法,比如,基于划分的聚类算法、基于密度的聚类算法、以及基于分布的聚类算法等等。在聚类停止判断时,除了上文示例的calinski-harabasz停止规则,还可以使用其他聚类停止判断方法,比如silhouette轮廓系数停止规则,davies-bouldin停止规则等等。本领域技术人员可根据实际应用的需要以及待聚类对象的特点选择合适的聚类方法及聚类停止判断规则,本公开对其不作特别限定。
在本发明一实施方式中,如图4所示,所述步骤s301,即计算所述操作方操作数据序列的距离矩阵的步骤,包括以下步骤s401-s403:
在步骤s401中,基于所述操作方操作数据序列构建操作方操作数据序列矩阵;
在步骤s402中,基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵;
在步骤s403中,将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,得到所述操作方的距离矩阵。
在该实施方式中,在计算所述操作方操作数据序列的距离矩阵时,首先基于所述操作方操作数据序列构建操作方操作数据序列矩阵,比如,可按照操作方标识信息将对应的操作方操作数据序列组合成操作方操作数据序列矩阵;然后基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵,其中,所述操作方操作数据序列相似度矩阵用于表征操作方操作数据序列彼此之间的相似度;最后将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,即可得到所述操作方的距离矩阵,使用该方法得到的距离矩阵不仅考虑了操作方与操作方之间的相似度,同时也考虑了所有操作方操作数据序列之间的相似度。
在本发明一实施方式中,所述步骤s402,即基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵的步骤,可被实施为:
确定所述操作方操作数据序列中的频繁序列;
计算所述频繁序列之间的编辑距离;
根据所述频繁序列之间的编辑距离确定所述操作方操作数据序列之间的相似度,并生成所述操作方操作数据序列相似度矩阵。
考虑到频繁序列在一定程度上具有一定的代表性,能够代表数据序列集合中数据出现的特点,因此,在该实施方式中,基于频繁序列来生成操作方操作数据序列相似度矩阵。具体地,首先确定所述操作方操作数据序列中的频繁序列,其中,所述频繁序列指的是出现频率高于预设频率阈值的数据序列,能够在一定程度上代表数据的特点;然后计算所述频繁序列之间的编辑距离,比如,可使用levenshtein方法来计算所述频繁序列之间的编辑距离,当然也可以使用其他编辑距离计算方法,本公开对于具体的编辑距离计算方法不作具体限定;最后根据所述频繁序列之间的编辑距离计算所述操作方操作数据序列之间的相似度,编辑距离越近的频繁序列,其相似度就越高,基于所述操作方操作数据序列之间的相似度即可生成所述操作方操作数据序列相似度矩阵。
在上述示例中,采用的是levenshtein编辑距离相似度计算方法,当然也可以采用其他字符串相似度计算方法,比如余弦相似度计算方法和杰卡德系数相似度计算方法等等,具体可根据实际应用的需要以及数据序列的特点选择合适的相似度计算方法,本公开对其不作具体限定。
在本发明一实施方式中,如图5所示,所述步骤s103,即确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试的步骤,包括以下步骤s501-s505:
在步骤s501中,确定所述操作方类组中满足预设条件的目标操作方;
在步骤s502中,获取所述目标操作方的频繁序列及其出现频率;
在步骤s503中,根据所述频繁序列的出现频率计算所述频繁序列的出现概率;
在步骤s504中,根据所述频繁序列的出现概率生成负载测试数据;
在步骤s505中,回放运行所述负载测试数据进行负载测试。
上文提及,为了在保证负载测试数据正确性的前提下,使用尽可能少的操作方操作数据生成负载测试数据,减少负载测试运算量,提高负载测试工作效率,本公开对于操作方进行聚类,基于聚类类组获取具有代表性的操作方及其对应的负载测试数据以得到最终进行负载测试的负载测试数据。在该实施方式中,在得到一个或多个操作方类组之后,首先选择所述操作方类组中满足预设条件的目标操作方,其中,所述预设条件指的是预设代表点条件,即选择得到的目标操作方为对应操作方类组中具有代表性的操作方;然后获取所述目标操作方的频繁序列及其出现频率,其中,可根据上文描述方法来获取频繁序列,本公开在此不再赘述,在获取频繁序列的同时可相应获取频繁序列的出现频率;根据所述频繁序列的出现频率计算所述频繁序列的出现概率,比如,将所述目标操作方的频繁序列的出现频率除以所述目标操作方数据序列的总数量即可得到所述目标操作方频繁序列的出现概率;然后根据所述频繁序列的出现概率生成负载测试数据;最后回放运行所述负载测试数据来实现负载测试。
在本发明一实施方式中,可使用中心点算法(partitioningaroundmedoids,pam)来识别每个操作方类组中的代表操作方,中心点算法是一种基于k-中心点的聚类算法,具有较强的鲁棒性和准确性。当然,也可以借助其他方法来选择代表操作方,本领域技术人员根据实际应用的需要以及操作方类组数据的特点选择合适的代表操作方识别方法,本公开对其不作具体限定。
在本发明一实施方式中,在得到目标操作方的频繁序列的出现概率之后,由于所述目标操作方在其操作方类组中具有代表性,因此,可使用所述目标操作方的频繁序列及其出现概率来替换相应操作方类组中其他操作方的操作数据序列及其出现概率,进而生成将要实现负载测试工作的负载测试数据。比如,若某一操作方类组的目标操作方的频繁序列为搜索删除新增序列、搜索编辑序列和新增编辑序列,相应的出现概率为50%、25%和25%,则可使用上述频繁序列及其出现概率替换该操作方类组中其他操作方的操作数据序列及其出现概率,假设除了目标操作方还有两个操作方:操作方1和操作方2,那么最终生成的负载测试数据可以为:
目标操作方:搜索删除新增序列,50%;搜索编辑序列,25%;新增编辑序列,25%;
操作方1:搜索删除新增序列,50%;搜索编辑序列,25%;新增编辑序列,25%;
操作方2搜索删除新增序列,50%;搜索编辑序列,25%;新增编辑序列,25%。
在本发明一实施方式中,可借助回放工具fio或者jmeter回放运行所述负载测试数据来实现负载测试,在负载测试过程中,回放运行所述负载测试数据之后,记录测试系统的测试性能数据,将其与原始负载运行的性能数据相比较,即可得到负载测试结果。
图6示出根据本发明一实施方式的负载聚类方法的流程图,如图6所示,所述负载聚类方法包括以下步骤s601-s602:
在步骤s601中,获取负载数据,并基于所述负载数据确定操作方操作数据序列;
在步骤s602中,对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
该实施方式中的上述技术特征已在上文中进行详细解释,本公开在此不再赘述。
下述为本发明装置实施例,可以用于执行本发明方法实施例。
图7示出根据本发明一实施方式的负载测试装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,所述负载测试装置包括:
确定模块701,被配置为获取负载数据,并基于所述负载数据确定操作方操作数据序列;
第一聚类模块702,被配置为对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组;
生成模块703,被配置为确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试。
上文提及,随着数据技术和互联网技术的发展,越来越多的服务提供商通过软件系统为用户提供服务,为了保障软件系统的稳定运行,在实践中通常使用负载测试来确保软件系统在负载下的运行质量。负载测试的目标是确保软件系统在现实工作负载下表现良好,为了达到这个目标,首先需要恢复工作负载,然后根据恢复的工作负载设计负载测试。恢复负载工作量是一项挑战性的任务,因为需要在工作负载的粒度级别与使用此类工作负载进行负载测试的成本之间取得平衡。若恢复的工作负载太粗糙,即工作负载过于简化,则该恢复的工作负载无法捕获用户行为的差异,从而导致负载测试丧失代表性;若工作负载逐步重放确切的现场工作负载,虽然能够重现确切的用户行为,但该方法维持工作负载的成本非常高。现有技术通常基于少量群集的代表性用户行为来设计工作负载,而在聚集用户时,通常是基于不同用户操作的频率来实现。但是,由于大型软件系统中用户存在高度可变性,仅仅考虑事件的发生频率不免过于粗糙,若添加有关用户操作的更多详细信息又将会导致恢复、执行和维护成本过高。
考虑到上述问题,在该实施方式中,提出一种负载测试装置,该装置基于负载数据来获取操作方操作数据序列,并通过对于操作方操作数据序列进行聚类,得到一个或多个操作方类组,根据操作方类组中满足预设条件的目标操作方的数据序列生成负载测试数据进行负载测试。该技术方案使用操作方事件和上下文信息组合的序列来帮助恢复负载工作量,从而实现在不同操作方行为粒度级别上的工作负载恢复,另外通过聚类方法来挖掘具有代表性的操作方,从而借助少量用户就可以实现工作负载的生成。
在本发明一实施方式中,所述负载数据指的是在预设时间段内基于操作方的操作产生或生成的负载数据。其中,所述操作方指的是负载操作用户、负载操作机器或者负载操作资源等操作方。其中,所述操作方的操作比如可以为搜索操作、删除操作、新增操作、编辑操作等操作。
在本发明一实施方式中,所述负载数据可包括以下数据中的一种或多种:操作方标识信息和与所述操作方标识信息对应的负载数据,包括负载工作量、负载内容、负载处理结果等等。其中,所述操作方标识信息用于对于操作方进行唯一性标识。
在本发明一实施方式中,所述操作方操作数据序列指的是由某一特定操作方产生的负载数据组成的数据序列,所述操作方操作数据序列能够体现操作方操作事件特征,能够体现与操作方操作事件存在某种关联的上下文信息,其中,所述操作方操作事件特征比如可以包括以下特征中的一种或多种:操作方操作事件目的、操作方操作事件内容、操作方操作事件效果等等,其中,所述上下文信息比如可以包括以下信息中的一种或多种:与所述操作方相关的其他操作方的操作事件信息、与所述操作方操作事件存在时间先后顺序的该操作方的其他操作事件信息等等。基于所述数据序列中丰富的信息,可根据实际应用的需要获取具有不同操作方行为粒度级别的数据信息。其中,所述操作方操作数据序列可按照某一预设规律排列,比如,按照时间先后的顺序,按照某一字段出现的顺序或者某一字段出现频率的顺序等等。比如,按照某一字段出现的顺序,所述操作方操作数据序列可以为搜索删除新增序列、搜索编辑序列、新增编辑序列等等。
考虑到日志数据是一种能够详细记录事件过程和经历的数据,具有完备性和完整性,从日志数据中能够更完整、更准确地获取操作方负载数据,因此,在本发明一实施方式中,所述负载数据为负载日志数据。当然,所述负载数据也可以为模拟负载数据或者实时负载数据。
在本发明一实施方式中,如图8所示,所述确定模块701包括:
第一获取子模块801,被配置为获取负载日志数据;
第一确定子模块802,被配置为确定所述负载日志数据中的操作方标识信息;
第二获取子模块803,被配置为基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,得到与所述操作方标识信息对应的操作方操作数据序列。
为了获取操作方操作数据序列,进而得到操作方的行为信息,在该实施方式中,从所述负载数据中分析并挖掘出操作方操作数据序列。具体地,第一获取子模块801获取负载日志数据;第一确定子模块802确定所述负载日志数据中出现的操作方标识信息;第二获取子模块803基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,将与所述操作方标识信息对应的负载日志数据组合起来,即可得到与所述操作方标识信息对应的操作方操作数据序列。
在本发明一实施方式中,第二获取子模块803在组合与所述操作方标识信息对应的负载日志数据时,既可按照时间先后的顺序进行组合,也可按照某一字段出现的顺序进行组合,再或者按照某一字段出现频率的顺序进行组合。本领域技术人员可根据实际应用的需要以及被组合数据的特点选择合适的数据组合方式,本公开对其不作具体限定。
在本发明一实施方式中,如图9所示,所述第一聚类模块702包括:
第一计算子模块901,被配置为计算所述操作方操作数据序列的距离矩阵;
聚类子模块902,被配置为根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
为了在保证负载测试数据正确性的前提下,使用尽可能少的操作方操作数据生成负载测试数据,减少负载测试运算量,提高负载测试工作效率,在该实施方式中,所述第一聚类模块702通过对于操作方进行聚类的方法以便于后续基于聚类类组获取具有代表性的操作方及其对应的负载测试数据,最终得到进行负载测试的负载测试数据。其中,聚类指的是将物理或抽象对象的集合分成由类似的对象组成的多个类的过程,也即由聚类操作所生成的类组是一组数据对象的集合,这些对象与同一个类组中的对象彼此相似,与其他类组中的对象彼此相异。
在本发明一实施方式中,所述第一聚类模块702使用层次聚类的方法,基于皮尔孙距离对于所述操作方操作数据序列进行聚类,最终聚类的结果可通过树状图展示出来,在聚类过程中,使用calinski-harabasz停止规则来切割树状图并确定最终的类组数目。具体地,采用以下方案实现聚类:第一计算子模块901计算所述操作方操作数据序列的距离矩阵;聚类子模块902根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组,位于同一操作方类组中的操作方可认为操作行为比较类似,进而可获取每一操作方类组中具有代表性的操作方来代表该操作方类组的行为。
在本发明一实施方式中,在聚类之前,还可对于聚类方法所使用的参数进行初始化。
当然,上述层次聚类的方法仅为示例性说明,在实际应用中,也可以使用其他聚类方法,比如,基于划分的聚类算法、基于密度的聚类算法、以及基于分布的聚类算法等等。在聚类停止判断时,除了上文示例的calinski-harabasz停止规则,还可以使用其他聚类停止判断方法,比如silhouette轮廓系数停止规则,davies-bouldin停止规则等等。本领域技术人员可根据实际应用的需要以及待聚类对象的特点选择合适的聚类方法及聚类停止判断规则,本公开对其不作特别限定。
在本发明一实施方式中,如图10所示,所述第一计算子模块901包括:
构建子模块1001,被配置为基于所述操作方操作数据序列构建操作方操作数据序列矩阵;
第一生成子模块1002,被配置为基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵;
相乘子模块1003,被配置为将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,得到所述操作方的距离矩阵。
在该实施方式中,在所述第一计算子模块901计算所述操作方操作数据序列的距离矩阵时,构建子模块1001首先基于所述操作方操作数据序列构建操作方操作数据序列矩阵,比如,可按照操作方标识信息将对应的操作方操作数据序列组合成操作方操作数据序列矩阵;第一生成子模块1002然后基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵,其中,所述操作方操作数据序列相似度矩阵用于表征操作方操作数据序列彼此之间的相似度;相乘子模块1003最后将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,即可得到所述操作方的距离矩阵,使用该方法得到的距离矩阵不仅考虑了操作方与操作方之间的相似度,同时也考虑了所有操作方操作数据序列之间的相似度。
在本发明一实施方式中,所述第一生成子模块1002可被配置为:
确定所述操作方操作数据序列中的频繁序列;
计算所述频繁序列之间的编辑距离;
根据所述频繁序列之间的编辑距离确定所述操作方操作数据序列之间的相似度,并生成所述操作方操作数据序列相似度矩阵。
考虑到频繁序列在一定程度上具有一定的代表性,能够代表数据序列集合中数据出现的特点,因此,在该实施方式中,所述第一生成子模块1002基于频繁序列来生成操作方操作数据序列相似度矩阵。具体地,首先确定所述操作方操作数据序列中的频繁序列,其中,所述频繁序列指的是出现频率高于预设频率阈值的数据序列,能够在一定程度上代表数据的特点;然后计算所述频繁序列之间的编辑距离,比如,可使用levenshtein方法来计算所述频繁序列之间的编辑距离,当然也可以使用其他编辑距离计算方法,本公开对于具体的编辑距离计算方法不作具体限定;最后根据所述频繁序列之间的编辑距离计算所述操作方操作数据序列之间的相似度,编辑距离越近的频繁序列,其相似度就越高,基于所述操作方操作数据序列之间的相似度即可生成所述操作方操作数据序列相似度矩阵。
在上述示例中,采用的是levenshtein编辑距离相似度计算方法,当然也可以采用其他字符串相似度计算方法,比如余弦相似度计算方法和杰卡德系数相似度计算方法等等,具体可根据实际应用的需要以及数据序列的特点选择合适的相似度计算方法,本公开对其不作具体限定。
在本发明一实施方式中,如图11所示,所述生成模块703包括:
第三确定子模块1101,被配置为确定所述操作方类组中满足预设条件的目标操作方;
第三获取子模块1102,被配置为获取所述目标操作方的频繁序列及其出现频率;
第三计算子模块1103,被配置为根据所述频繁序列的出现频率计算所述频繁序列的出现概率;
第三生成子模块1104,被配置为根据所述频繁序列的出现概率生成负载测试数据;
测试子模块1105,被配置为回放运行所述负载测试数据进行负载测试。
上文提及,为了在保证负载测试数据正确性的前提下,使用尽可能少的操作方操作数据生成负载测试数据,减少负载测试运算量,提高负载测试工作效率,本公开对于操作方进行聚类,基于聚类类组获取具有代表性的操作方及其对应的负载测试数据以得到最终进行负载测试的负载测试数据。在该实施方式中,在得到一个或多个操作方类组之后,第三确定子模块1101首先选择所述操作方类组中满足预设条件的目标操作方,其中,所述预设条件指的是预设代表点条件,即选择得到的目标操作方为对应操作方类组中具有代表性的操作方;第三获取子模块1102然后获取所述目标操作方的频繁序列及其出现频率,其中,可根据上文描述方法来获取频繁序列,本公开在此不再赘述,在获取频繁序列的同时可相应获取频繁序列的出现频率;第三计算子模块1103根据所述频繁序列的出现频率计算所述频繁序列的出现概率,比如,将所述目标操作方的频繁序列的出现频率除以所述目标操作方数据序列的总数量即可得到所述目标操作方频繁序列的出现概率;第三生成子模块1104然后根据所述频繁序列的出现概率生成负载测试数据;测试子模块1105最后回放运行所述负载测试数据来实现负载测试。
在本发明一实施方式中,所述第三确定子模块1101可使用中心点算法(partitioningaroundmedoids,pam)来识别每个操作方类组中的代表操作方,中心点算法是一种基于k-中心点的聚类算法,具有较强的鲁棒性和准确性。当然,也可以借助其他方法来选择代表操作方,本领域技术人员根据实际应用的需要以及操作方类组数据的特点选择合适的代表操作方识别方法,本公开对其不作具体限定。
在本发明一实施方式中,在得到目标操作方的频繁序列的出现概率之后,由于所述目标操作方在其操作方类组中具有代表性,因此,所述第三生成子模块1104可使用所述目标操作方的频繁序列及其出现概率来替换相应操作方类组中其他操作方的操作数据序列及其出现概率,进而生成将要实现负载测试工作的负载测试数据。比如,若某一操作方类组的目标操作方的频繁序列为搜索删除新增序列、搜索编辑序列和新增编辑序列,相应的出现概率为50%、25%和25%,则可使用上述频繁序列及其出现概率替换该操作方类组中其他操作方的操作数据序列及其出现概率,假设除了目标操作方还有两个操作方:操作方1和操作方2,那么最终生成的负载测试数据可以为:
目标操作方:搜索删除新增序列,50%;搜索编辑序列,25%;新增编辑序列,25%;
操作方1:搜索删除新增序列,50%;搜索编辑序列,25%;新增编辑序列,25%;
操作方2搜索删除新增序列,50%;搜索编辑序列,25%;新增编辑序列,25%。
在本发明一实施方式中,所述测试子模块1105可借助回放工具fio或者jmeter回放运行所述负载测试数据来实现负载测试,在负载测试过程中,回放运行所述负载测试数据之后,记录测试系统的测试性能数据,将其与原始负载运行的性能数据相比较,即可得到负载测试结果。
图12示出根据本发明一实施方式的负载聚类装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图12所示,所述负载聚类装置包括:
获取模块1201,被配置为获取负载数据,并基于所述负载数据确定操作方操作数据序列;
第二聚类模块1202,被配置为对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
该实施方式中的上述技术特征已在上文中进行详细解释,本公开在此不再赘述。
接下来以一应用场景为例对于本发明技术方案进行进一步的说明,如图13所示,在该应用场景中,所述负载测试装置可布设于分布式数据系统中,对于所述分布式数据系统中的一个或多个分布式数据设备比如客户端1301进行负载测试。在所述分布式数据系统中,多个客户端1301分别与数据库1302连接,所述负载测试装置1303从所述数据库1302中获取负载数据,所述负载测试装置1303中的确定模块1304基于所述负载数据确定得到操作方操作数据序列,所述负载测试装置1303中的第一聚类模块1305对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组,所述负载测试装置1303中的生成模块1306确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试,最终得到负载测试结果。
本发明实施例还公开了一种电子设备,图14示出根据本发明一实施方式的电子设备的结构框图,如图14所示,所述电子设备1400包括存储器1401和处理器1402;其中,
所述存储器1401用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1402执行以实现上述任一方法步骤。
图15适于用来实现根据本发明实施方式的负载测试方法的计算机系统的结构示意图。
如图15所示,计算机系统1500包括处理单元1501,其可以根据存储在只读存储器(rom)1502中的程序或者从存储部分1508加载到随机访问存储器(ram)1503中的程序而执行上述实施方式中的各种处理。在ram1503中,还存储有系统1500操作所需的各种程序和数据。处理单元1501、rom1502以及ram1503通过总线1504彼此相连。输入/输出(i/o)接口1505也连接至总线1504。
以下部件连接至i/o接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至i/o接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。其中,所述处理单元1501可实现为cpu、gpu、fpag、npu等处理单元。
特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述负载测试方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。
附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
1.一种负载测试方法,其特征在于,包括:
获取负载数据,并基于所述负载数据确定操作方操作数据序列;
对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组;
确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试。
2.根据权利要求1所述的方法,其特征在于,所述负载数据为负载日志数据或者模拟负载数据或者实时负载数据。
3.根据权利要求2所述的方法,其特征在于,所述获取负载数据,并基于所述负载数据确定操作方操作数据序列,包括:
获取负载日志数据;
确定所述负载日志数据中的操作方标识信息;
基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,得到与所述操作方标识信息对应的操作方操作数据序列。
4.根据权利要求1-3任一所述的方法,其特征在于,所述对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组,包括:
计算所述操作方操作数据序列的距离矩阵;
根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
5.根据权利要求4所述的方法,其特征在于,所述计算所述操作方操作数据序列的距离矩阵,包括:
基于所述操作方操作数据序列构建操作方操作数据序列矩阵;
基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵;
将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,得到所述操作方的距离矩阵。
6.根据权利要求5所述的方法,其特征在于,所述基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵,被实施为:
确定所述操作方操作数据序列中的频繁序列;
计算所述频繁序列之间的编辑距离;
根据所述频繁序列之间的编辑距离确定所述操作方操作数据序列之间的相似度,并生成所述操作方操作数据序列相似度矩阵。
7.根据权利要求1所述的方法,其特征在于,所述确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试,包括:
确定所述操作方类组中满足预设条件的目标操作方;
获取所述目标操作方的频繁序列及其出现频率;
根据所述频繁序列的出现频率计算所述频繁序列的出现概率;
根据所述频繁序列的出现概率生成负载测试数据;
回放运行所述负载测试数据进行负载测试。
8.一种负载聚类方法,其特征在于,包括:
获取负载数据,并基于所述负载数据确定操作方操作数据序列;
对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
9.一种负载测试装置,其特征在于,包括:
确定模块,被配置为获取负载数据,并基于所述负载数据确定操作方操作数据序列;
第一聚类模块,被配置为对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组;
生成模块,被配置为确定所述操作方类组中满足预设条件的目标操作方,并根据所述目标操作方的数据序列生成负载测试数据进行负载测试。
10.根据权利要求9所述的装置,其特征在于,所述负载数据为负载日志数据或者模拟负载数据或者实时负载数据。
11.根据权利要求10所述的装置,其特征在于,所述确定模块包括:
第一获取子模块,被配置为获取负载日志数据;
第一确定子模块,被配置为确定所述负载日志数据中的操作方标识信息;
第二获取子模块,被配置为基于所述操作方标识信息获取与所述操作方标识信息对应的负载日志数据,得到与所述操作方标识信息对应的操作方操作数据序列。
12.根据权利要求9-11任一所述的装置,其特征在于,所述第一聚类模块包括:
第一计算子模块,被配置为计算所述操作方操作数据序列的距离矩阵;
聚类子模块,被配置为根据所述距离矩阵对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
13.根据权利要求12所述的装置,其特征在于,所述第一计算子模块包括:
构建子模块,被配置为基于所述操作方操作数据序列构建操作方操作数据序列矩阵;
第一生成子模块,被配置为基于所述操作方操作数据序列生成操作方操作数据序列相似度矩阵;
相乘子模块,被配置为将所述操作方操作数据序列矩阵与所述操作方操作数据序列相似度矩阵相乘,得到所述操作方的距离矩阵。
14.根据权利要求13所述的装置,其特征在于,所述第一生成子模块被配置为:
第二确定子模块,被配置为确定所述操作方操作数据序列中的频繁序列;
第二计算子模块,被配置为计算所述频繁序列之间的编辑距离;
第二生成子模块,被配置为根据所述频繁序列之间的编辑距离确定所述操作方操作数据序列之间的相似度,并生成所述操作方操作数据序列相似度矩阵。
15.根据权利要求9所述的装置,其特征在于,所述生成模块包括:
第三确定子模块,被配置为确定所述操作方类组中满足预设条件的目标操作方;
第三获取子模块,被配置为获取所述目标操作方的频繁序列及其出现频率;
第三计算子模块,被配置为根据所述频繁序列的出现频率计算所述频繁序列的出现概率;
第三生成子模块,被配置为根据所述频繁序列的出现概率生成负载测试数据;
测试子模块,被配置为回放运行所述负载测试数据进行负载测试。
16.一种负载聚类装置,其特征在于,包括:
获取模块,被配置为获取负载数据,并基于所述负载数据确定操作方操作数据序列;
第二聚类模块,被配置为对于所述操作方操作数据序列进行聚类,得到一个或多个操作方类组。
17.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-8任一项所述的方法步骤。
18.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-8任一项所述的方法步骤。
技术总结