发布信息

应用测试方法、装置、电子设备和存储介质与流程

作者:admin      2022-07-30 06:50:22     476



计算;推算;计数设备的制造及其应用技术1.本技术涉及计算机及通信技术领域,尤其涉及一种应用测试方法、装置、电子设备和存储介质。背景技术:2.在互连网中,不同区域和时段下的网络环境通常不同,而应用程序为了适用于不同区域和时段的网络环境,需要在不同网络环境进行测试和优化,以保证处于不同网络环境下的应用程序均可以获得良好的用户体验。3.为了测试应用程序在不同网络环境中的表现,通常需要收集真实网络的网络环境并且利用模拟网络对其进行模拟,然后在模拟网络中运行应用程序,以便确定其表现和用户体验。4.然而,真实网络的网络环境情况复杂且变化速度较快,对于突发变化的网络状态,模拟网络经常存在难以处理动态变化的信息而无法准确模拟出真实网络的变化情况,从而导致应用程序测试结果不准确。技术实现要素:5.基于上述技术问题,本技术提供一种应用测试方法,以在测试网络中复现出真实网络中出现的各种复杂情况和突发变化,从而可以在测试网络中针对这些网络情况对目标应用进行针对性测试,有利于提高应用程序测试的准确性。6.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。7.根据本技术实施例的一个方面,提供一种应用测试的方法,包括:8.当目标应用运行于第一测试网络时,获取所述第一测试网络产生的待处理网络状态参数;9.采用滑动窗口对所述待处理网络状态参数进行取样处理,得到m组网络状态参数,其中,所述m组网络状态参数中的每组网络状态参数包括网络属性所对应的特征值,所述m为大于1的整数;10.从所述m组网络状态参数中获取n组网络状态参数,其中,所述n组网络状态参数与所述第一测试网络的网络异常状态相关联的参数,所述n为大于或等于1,且小于所述m的整数;11.根据所述n组网络状态参数中所包含的特征值生成第二测试网络;12.控制所述目标应用运行在所述第二测试网络中,以获取所述目标应用的测试结果。13.根据本技术实施例的一个方面,提供一种应用测试装置,包括:14.第一获取模块,用于当目标应用运行于第一测试网络时,获取所述第一测试网络产生的待处理网络状态参数;15.取样模块,用于采用滑动窗口对所述待处理网络状态参数进行取样处理,得到m组网络状态参数,其中,所述n组网络状态参数指示所述第一测试网络的网络异常状态,所述m组网络状态参数中的每组网络状态参数包括网络属性所对应的特征值,所述m为大于1的整数;16.第二获取模块,用于从所述m组网络状态参数中获取n组网络状态参数,其中,所述n为大于或等于1,且小于所述m的整数;17.生成模块,用于根据所述n组网络状态参数中所包含的特征值生成第二测试网络;18.控制模块,用于控制所述目标应用运行在所述第二测试网络中,以获取所述目标应用的测试结果。19.在本技术的一个实施例中,基于以上技术方案,第二获取模块可以包括:20.获取单元,还用于从所述第一参数组获取所述各个网络属性所对应的第一特征值,并且从所述第二参数组中获取所述各个网络属性所对应的第二特征值;21.确定单元,还用于根据所述第一特征值和所述第二特征值,确定所述各个网络属性所对应的特征平均值;22.确定单元,还用于将所述网络属性所对应的特征平均值确定为所述n组网络状态参数。23.在本技术的一个实施例中,基于以上技术方案,第二获取模块可以包括:24.获取单元,还用于从所述第一参数组获取所述各个网络属性所对应的第一特征值,并且从所述第二参数组中获取所述各个网络属性所对应的第二特征值;25.聚类单元,还用于对所述第一特征值和所述第二特征值进行聚类,得到聚类分组和所述聚类分组对应的聚类中心值,其中,所述聚类分组中的特征值来自所述第一特征值和所述第二特征值中的至少一个;26.确定单元,还用于根据所述聚类中心值以及异常阈值,确定所述聚类分组中的异常聚类分组;27.确定单元,还用于根据所述异常聚类分组,确定所述n组网络状态参数。28.在本技术的一个实施例中,基于以上技术方案,生成模块可以包括:29.更新单元,用于当达到指定时刻时,根据所述n组网络状态参数中的第三网络状态参数的特征值,得到所述指定时刻的第二测试网络;30.更新单元,还用于在所述指定时刻之后的各个时刻,根据所述n组网络状态参数中的第四网络状态参数的特征值,对前一时刻更新得到的第二测试网络进行更新,得到更新后的第二测试网络。31.在本技术的一个实施例中,基于以上技术方案,控制模块1005可以包括:32.接收单元,用于接收所述目标应用发送的数据包;33.统计单元,用于对所述数据包进行统计,得到网络响应数据,其中,所述网络响应数据包括丢包率、延时、带宽中的至少一种;34.结果生成单元,用于根据所述网络响应数据生成所述目标应用所对应的测试结果。35.根据本技术实施例的一个方面,提供一种电子设备,该电子提示设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行如以上技术方案中的应用测试的方法。36.根据本技术实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现如以上技术方案中的应用测试的方法。37.根据本技术实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的应用测试的方法。38.在本技术的实施例中,针对目标应用所处的现有网络进行网络状态参数的采集,并从中挑选特定的网络状态参数,随后根据该特定的网络状态参数,在测试网络中重现对所对应的网络状态,然后在测试网络中进行目标应用的测试。通过上述方式,可以在测试网络中复现出真实网络中出现的各种复杂情况和突发变化,从而可以在测试网络中针对这些网络情况对目标应用进行针对性测试,有利于提高应用程序测试的准确性。39.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。附图说明40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:41.图1为本技术所适用的一种应用场景的组成架构示意图;42.图2示出了本技术实施例中的一种应用测试的方法的流程示意图;43.图3示出了本技术实施例中的一种应用测试的方法的流程示意图;44.图4示出了本技术实施例中的一种应用测试的方法的流程示意图;45.图5示出了本技术实施例中的一种应用测试的方法的流程示意图;46.图6示出了本技术实施例中的一种应用测试的方法的流程示意图;47.图7示出了本技术实施例中的一种应用测试的方法的流程示意图;48.图8示出了本技术实施例中的一种应用测试的方法的流程示意图;49.图9示出了本技术实施例中的一种应用测试的方法的流程示意图;50.图10示意性地示出了本技术实施例中应用测试装置的组成框图;51.图11示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。具体实施方式52.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。53.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。54.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。55.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。56.本技术的方案适用于测试应用程序在异常或者突变的特定网络条件下的表现,以便提升应用程序测试的准确性。在本技术中所提到的网络状态参数可以是应用程序等软件产品在网络中运行时的网络状态数据,通过对网络状态数据的收集、分析和模拟,可以在测试网络中复现真实网络中的状态,从而对软件产品进行测试,以便技术发现软件产品中存在的性能差以及故常等问题。57.本技术的方案可应用于个人计算机、服务器或者多个服务器构成的服务器系统,为了提高确定应用程序测试的效率,本技术还可以应用于云平台或者其他计算系统。58.为了便于理解,以本技术的方案应用于云平台这一场景为例进行说明。请参阅图1,图1为本技术所适用的一种应用场景的组成架构示意图。59.由图1可以看出,该场景包括应用客户端110、第一测试网络120、云平台130、第二测试网络140以及测试客户端150。60.应用客户端110具体包括多个客户端,该客户端中可以运行有待测试的目标应用程序。相应地,测试客户端150也具体可以包括多个客户端,并且客户端中运行与应用客户端110相同的目标应用程序。应用客户端110中的目标应用程序运行在第一测试网络120的网络环境中,通常,第一测试网络120可以是目标应用程序所处的实际应用环境,例如互联网。61.云平台130包括本技术提供的应用测试装置。在应用客户端110上的目标应用程序的运行过程中,云平台130利用该应用测试装置可以收集第一测试网络所产生的各类网络参数,并且对收集到的网络参数进行分析和过滤,来得到第一测试网络的特定状态下的网络参数,例如处于异常状态或者负荷较大的状态等。然后,云平台130可以利用第二测试网络140复现第一测试网络120的网络状态,并且利用测试客户端150在第二测试网络中运行来测试目标应用程序在该特定网络状态下的表现。62.其中,云平台也可以称为云计算平台,是基于云技术构建出的网络平台。云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。63.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如数据收集以及分析等等。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。64.云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。65.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。66.在图1的场景中,通过在云平台的云服务器可以完成对第一测试网络的数据收集、过滤和分析,以及根据分析结果在第二测试网络中模拟第一测试网络的状态等处理。67.可以理解的是,图1是以云平台直接从第一测试网络中获取网络状态参数为例,在实际应用中,云平台还可以通过其他检测设备或通过其他网络途径获得网络状态参数,对此不加限制。68.需要说明的是,图1是为了便于理解,以本技术应用于云平台为例进行说明,当利用单个计算设备、服务器或服务器集群进行应用测试时,只需要将图1所示场景中的云平台替换为相应的设备或者服务器集群即可,其场景类似,此处不再赘述。69.下面结合具体实施方式对本技术提供的技术方案做出详细说明。70.如图2所示,图2示出了本技术实施例中的一种应用测试的方法的流程示意图,本实施例的方法可以应用于前面提到的计算机设备、服务器或者云平台等等。本实施例的方法可以包括:71.步骤s201,当目标应用运行于第一测试网络时,获取所述第一测试网络产生的待处理网络状态参数。72.其中,待处理网络状态参数可以通过流数据的方式进行获取,具体可以由服务器直接对于第一测试网络进行检测来直接获取,或者由运行目标应用程序的客户端收集并主动报告给服务器,或者由第三方的检测设备进行检测并发送给服务器。待处理网络状态参数可以是体现网络通信性能的参数信息,网络状态参数中的每个参数均可以体现目标应用在运行的过程中所面对的网络状态。73.可以理解的是,对于应用或测试网络,不同时刻可以出现不同的网络状态和网络状态参数,因此,待处理网络状态参数实际上可以包含分别在多个不同时刻的多个网络状态参数。例如,待处理网络状态参数可以是网络状态报告,该网络状态报告中包含多条网络状态数据,该多条网络状态数据可以看做按照时刻顺序生成的网络状态数据序列。74.需要说明的是,在实际应用中,可能同时会从多个不同的来源获得多个网络状态参数,但对于每个网络状态参数的过滤和分析过程均相同,均可以用于本技术的后续步骤中的对于应用程序的测试。75.步骤s202,采用滑动窗口对所述待处理网络状态参数进行取样处理,得到m组网络状态参数,其中,所述m组网络状态参数中的每组网络状态参数包括网络属性所对应的特征值,所述m为大于1的整数。76.具体地,针对流数据形式的待处理网络状态参数,通过滑动窗口的方式对每条流数据中进行数据取样。滑动窗口的具体大小可以取决于待处理网络状态参数的取样频率。例如,若待处理网络状态参数为每秒一次取样,则滑动窗口的大小则可以以秒为单位,例如5秒。利用滑动窗口所获得的网络状态参数中至少包括两组网络状态参数,也就是说,若待处理网络状态参数为每秒一次取样,则滑动窗口的大小则至少为2秒。77.每组网络状态参数中包含至少一种网络属性,第一测试网络在每种网络属性的状态值即其所对应的特征值。网络属性至少可以包括动态延时,动态丢包率,动态带宽,静态队列大小等。78.可以理解的是,由于软件产品一般会具有多种不同的功能模式,例如,软件产品包括不同功能模块,不同功能模块实现不同功能模式。例如,游戏应用中可能会包括游戏通信模块和文字消息模块。对于游戏在运行不同的功能模块时,待处理网络状态参数中所包含的网络属性可以不相同。在实际应用时,可以将针对不同功能模块的待处理网络状态参数划归到不同的分组中并且分别进行处理。79.相应的,对于具体形式相同或者近乎相同的功能模块,可以基于待处理网络状态参数中数据组成特征,将类似的数据划归到同一个分组中一起处理。例如,对于视频类应用,视频评论模块与站内信模块所涉及到的网络属性可能相同或者近乎相同,则针对这两个模块的待处理网络状态参数则可以共同处理。80.可以理解的是,网络状态参数是根据第一测试网络的状态产生的参数,其变化不一定依赖于目标应用程序的使用状态,上述针对不同功能模块的网络状态参数可以理解为目标应用程序在执行特定模块的功能时,第一测试网络所产生的参数。81.步骤s203,从所述m组网络状态参数中获取n组网络状态参数,其中,所述n组网络状态参数与所述第一测试网络的网络异常状态相关联的参数,所述n为大于或等于1,且小于所述m的整数。82.其中,获取n组网络状态参数的方式可以不同,例如,可以采用统计数据的方式,根据特定的用户反馈信息进行筛选、利用大数据进行迭代评估等方式获得。所获得的n组网络状态参数与第一测试网络的网络异常状态具有关联关系。具体地,n组网络状态参数可以是第一测试网络处于异常状态时所产生的参数,或者是指示第一测试网络处于异常状态的统计参数。统计参数可以例如是延时大于阈值的点的百分比、丢包率大于阈值的点的百分比、延时均值、延时标准差、丢包率均值以及丢包率标准差等。n为大于或等于1,且小于m的整数,即当存在10组网络状态参数时,n的取值范围可以是1至9。83.获取n组网络状态参数时,服务器可以判断各组网络状态参数是否与至少一种异常检测规则相匹配。异常检测规则包括各组网络参数状态中的网络属性所需满足的条件。例如,网络状态参数可以包括:延时以及队列长度,相应的,异常检测规则可以包括,延迟大于预定延时以及队列长度大于预定长度等。84.可以理解的是,上述的异常检测规则可以根据网络状态参数中的网络属性以及所涉及的目标应用程序中的不同功能模块等因素结合实际需要设定,对此不加限制。85.步骤s204,根据所述n组网络状态参数中所包含的特征值生成第二测试网络。86.具体地,服务器可以根据n组网络状态参数中的各组网络状态参数的特征值,控制第二测试网络中的网络状态模拟器来对第一测试网络的状态进行模拟,从而达到复现第一测试网络的异常状态。87.具体地,第二测试网络中可以包括网络状态模拟器以及需要连接的测试终端。测试设备将网络状态模拟器作为网关,通过网络状态模拟器连接到网络。而网络状态模拟器则直接连接到网络并且负责接收和转发测试终端的网络通信。88.服务器根据各自网络状态参数中网络属性的特征值配置网络状态模拟器的控制参数。网络状态模拟器根据控制参数来对测试终端的通信进行转发。例如,若服务器将模拟器的控制参数中的实时延时调整为500ms,则模拟器在收到测试终端的通信时,将会将其延迟500ms以后再进行转发。89.步骤s205,控制所述目标应用运行在所述第二测试网络中,以获取所述目标应用的测试结果。90.服务器可以向第二测试网络中的测试设备发送控制指令。测试设备根据控制指令来运行目标应用,以获得目标应用的在第二测试网络中的表现作为测试结果。例如,对于直播类应用,服务器在配置第二测试网络中的丢包率设置为较高值,然后控制第二测试网络中的测试设备进行直播操作或者收看操作,并且收集直播应用在直播和收看方面的表现作为测试结果,以此作为优化高丢包率时直播应用的性能的基础。91.在本技术的实施例中,针对目标应用所处的现有网络进行网络状态参数的采集,并从中挑选特定的网络状态参数,随后根据该特定的网络状态参数,在测试网络中重现对所对应的网络状态,然后在测试网络中进行目标应用的测试。通过上述方式,可以测试网络中复现出真实网络中出现的各种复杂情况和突发变化,从而可以在测试网络中针对这些网络情况对目标应用进行针对性测试,有利于提高应用程序测试的准确性。92.在本技术的一个实施例中,m组网络状态参数来源于同一个滑动窗口,为了从m组网络状态参数中获取n组网络状态参数,具体可以如图3所示,上述步骤s203可以如下步骤s301至s303,详细说明如下:93.在步骤s301中,获取m组网络状态参数中包含的各个网络属性所对应的特征值。94.其中,对于m组网络状态参数中的各组网络状态参数,从中读取各个网络属性所对应的特征值。95.在步骤s302中,根据网络属性所对应的特征值,计算各个网络属性所对应的特征平均值。96.具体地,对于m组网络状态参数,可以将相同的网络属性整合在一起,并且计算其特征平均值。其中,特征平均值的计算可以采用m组网络状态参数中的子集。例如,对于一个滑动窗口中的6组网络状态参数,针对其中的各个网络属性,特征平均值可以是6组网络状态参数的平均值,即对于每个网络属性,仅存在一个特征平均值。特征平均值可以是每2组或3组网络状态参数的平均值,即对于每个网络属性,存在3个或2个特征平均值。在另一个实施例中,在计算特征平均值前,可以首先对特征值进行过滤,例如,对于一个滑动窗口中的10组网络状态参数,,针对其中的一个网络属性,可以首先过滤出其超过预定阈值的特征值或者按照特征值大小排序并且获得排行为前若干的特征值,随后基于这些过滤出的特征值计算特征平均值。97.在步骤s303中,根据各个网络属性所对应的特征平均值,生成n组网络状态参数。98.具体地,每个网络属性均得到特征平均值,可以将其组合为n组网络状态参数。对于不同的特征平均值获取方式,生成n组网络状态参数的方式不同。n组网络状态参数中可以仅包括1组特征平均值,而该组特征平均值是基于滑动窗口内所有的网络状态参数得到的,也可以包括多组特征平均值,每组特征平均值基于m组网络状态参数的子集获得。99.在本实施例中,通过计算平均值的方式对采集到的网络状态参数进行处理,使得瞬时存在的网络异常不对后续测试的过程产生过大的影响,从而不会对过于短暂的网络瞬态或者偶发的瞬时波动进行过度测试,节约测试资源同时提升测试效率。100.在本技术的一个实施例中,m组网络状态参数来源于同一个滑动窗口,为了从m组网络状态参数中获取n组网络状态参数,具体可以如图4所示,上述步骤s203可以如下步骤s401至s404,详细说明如下:101.在步骤s401中,获取m组网络状态参数中包含的各个网络属性所对应的特征值。102.该步骤中的获取方式与上述步骤s301中的获取方式相同,此处不再赘述。103.在步骤s402中,对各个网络属性所对应的特征值进行聚类,得到聚类分组和聚类分组对应的聚类中心值。104.具体地,取决于网络状态参数的形式,聚类算法可以采用streamkm++或kmeans等各类适合的方式进行计算。下面,以针对流数据采用streamkm++的方式为例进行介绍。105.对于一个网络属性,在一个滑动窗口的m个网络状态参数中,将会存在m个特征值,并且它们会按照获取的时间排成序列输入到streamkm++聚类算法中。106.streamkm++聚类算法计算聚类中心值方法如下:[0107][0108]nt+1=nt+mt[0109]其中,ct表示上次聚类计算所得到的聚类中心值,其为一个向量;nt表示上次聚类计算采用的特征值的数量;xt表示本次输入的特征值的中心值,其为一个向量;mt为本次聚类计算新加入的特征值的数量;a为遗忘因子,取值范围为a∈(0,1)。[0110]聚类过程如下:[0111]假定每个网络状态参数包括两个网络属性,例如连接个数和队列长度,对于第一次计算,将会随机生成两个聚类中心值。假定随机生成的聚类中心ct为[[0,0],[10,10]]。假定m为4,则本次聚类过程中,输入的特征值的数量为4,假定其为[[0,1],[1,0],[2,1],[9,9]],遗忘因子a为0.5。对于每个输入特征值,将会计算其距离自身最近的聚类中心值,然后计算nt、xt、mt。以聚类中心值为[0,0]的簇a为例,nt=0、xt=[1,2/3]、mt=3,则对于本次聚类计算,[0112][0113]此时,假定第二次计算,输入的特征值为[[1,0],[0,1],[11,9],[10,10]],则对于簇a,ct+1=[1,2/3]、nt+1=3、xt+1=[0.5,0.5]、mt+1=2,则对于第二次聚类计算,[0114][0115]对于后续输入,则可以继续进行后续的迭代,以循环得到聚类中心值。[0116]在步骤s403中,根据聚类中心值以及异常阈值,确定从聚类分组中确定异常聚类分组。[0117]具体地,根据聚类中心值以及异常阈值是否满足至少一种异常检测规则来判断异常聚类分组。异常检测规则包括相较于异常阈值,聚类中心值所需满足的条件。例如,网络状态参数包括时延,异常检测规则可以包括时延的聚类中心值大于异常阈值。[0118]在步骤s404中,根据异常聚类分组,确定n组网络状态参数。[0119]对于所有异常聚类分组,可以对各个组内的特征值的情况进行统计。例如,统计各个组内异常值数量与正常值数量之间的比例或者异常值本身超出正常值的程度,对于各个异常聚类分组进行排序,并且将排序最高的聚类分组作为n组网络状态参数。具体地,例如,异常聚类分组包括时延聚类和丢包率聚类,每个聚类中分别包括20个特征值,其中,时延聚类包含15个异常值,丢包率聚类包含18个异常值,则可以根据丢包率聚类中的异常特征值生成n组网络状态参数。[0120]可以理解的是,在n组网络状态参数中,可以仅包括异常聚类分组中的特征值,也可以将其中特征值所对应的各个网络状态参数加入n组网络状态参数。例如,上述的示例中,n组网络状态参数可以仅包括丢包率聚类中18个异常值,也可以包括18个异常值与所对应的时延特征值组成的向量。[0121]在一个实施例中,可以使用前一周期的所得到的聚类中心值,对当前输入的m个网络状态参数进行类别判断。如果输入的m个网络状态参数中包括特征值大于前一周期的聚类中心值,则可以确定该网络状态参数为异常值,此时可以基于网络状态参数生成异常状态报告,并通过向用户进行汇报,以便进行实时监控。[0122]在本实施例中,通过聚类的方式对异常网络状态参数进行筛选,由于聚类的方式能够更充分的体现中各个网络属性变化趋势,因此在网络状况变差时,挑选出的网络状态参数能够更充分地体现网络异常状态,从而能够对异常状况进行更准确的模拟,提高网络模拟的准确性。[0123]在本技术的一个实施例中,m组网络状态参数来源于至少两个滑动窗口,m组网络状态参数包括第一参数组和第二参数组,第一参数组和第二参数组包括相同组数的网络状态参数。为了从m组网络状态参数中获取n组网络状态参数,具体可以如图5所示,上述步骤s203可以如下步骤s501至s503,详细说明如下:[0124]在步骤s501中,从第一参数组获取各个网络属性所对应的第一特征值,并且从第二参数组中获取各个网络属性所对应的第二特征值。[0125]具体地,第一参数组和第二参数组中所包含的网络状态参数的数量相同,并且,通常所包含的网络属性的种类也相同。取决于网络属性的数量,第一特征值可包括具体包括分别对应于多个网络属性的多个特征值,类似地,第二特征值也可以包括分别对应于多个网络属性的多个特征值。对于每个网络属性,从第一参数组和第二参数组中各组网络状态参数中读取各个网络属性所对应的特征值。[0126]在步骤s502中,根据第一特征值和第二特征值,确定各个网络属性所对应的特征平均值.[0127]具体地,对于第一参数组和第二参数组的各个网络属性,将对应于相同网络属性的第一特征值和第二特征值整合到一起,并且计算其特征平均值。第一参数组和第二参数组所包括的网络属性可以不同。对于第一参数组和第二参数组中共同包括的网络属性,则在跨滑动窗口计算特征平均值,对于不相同的网络属性,则仅在窗口内进行特征平均值的计算。[0128]特征平均值的计算可以采用第一特征值和第二特征值中的子集。例如,对于来自两个不同窗口的共6组网络状态参数,其中第一参数组和第二参数组分别包括3组网络状态参数,针对其中的各个网络属性,特征平均值可以是6组网络状态参数的平均值即对于每个网络属性,仅存在一个特征平均值。特征平均值也可以是分别来自第一参数组和第二参数组的多组网络状态参数的平均值,即对于每个网络属性,将第一参数组中的一组网络状态参数与第二参数组中的一组网络状态参数求平均值,因此对于6组网络状态参数中的每个网络属性,将存在3组平均值。[0129]在步骤s503中,将网络属性所对应的特征平均值确定为n组网络状态参数。[0130]具体地,每个网络属性均得到特征平均值,可以将其组合为n组网络状态参数。对于不同的特征平均值获取方式,生成n组网络状态参数的方式不同。n组网络状态参数中可以仅包括1组特征平均值,而该组特征平均值是基于至少两个滑动窗口内所有的网络状态参数得到的,也可以包括多组特征平均值,每组特征平均值基于分别来自第一参数组和第二参数组的特征值获得。[0131]可以理解的是,虽然在上述实施例中仅以两个滑动窗口为例,但对于两个以上的滑动窗口,计算特征平均值的方式根据上述的过程进行类推,此处不再赘述。[0132]在本实施例中,基于来自不同滑动窗口的网络状态参数计算特征平均值作为计算结果,由于滑动窗口的采样结果仅能针对一个窗口内的短暂状态,跨滑动窗口计算平均值使得计算结果基于时间跨度充分的样本空间,从而能够削弱单独特例对于计算结果的影响,根据计算结果能够更加准确地模拟出网络状态。[0133]在本技术的一个实施例中,m组网络状态参数来源于至少两个滑动窗口,m组网络状态参数包括第一参数组和第二参数组,第一参数组和第二参数组包括相同组数的网络状态参数。为了从m组网络状态参数中获取n组网络状态参数,具体可以如图6所示,上述步骤s203可以如下步骤s601至s604,详细说明如下:[0134]在步骤s601中,从第一参数组获取各个网络属性所对应的第一特征值,并且从第二参数组中获取各个网络属性所对应的第二特征值。[0135]该步骤中的获取方式与上述步骤s501中的获取方式相同,此处不再赘述。[0136]在步骤s602中,对第一特征值和第二特征值进行聚类,得到聚类分组和聚类分组对应的聚类中心值,其中,聚类分组中的特征值来自第一特征值和第二特征值中的至少一个。[0137]具体地,取决于网络状态参数的形式,聚类算法可以采用streamkm++或kmeans等各类适合的方式进行计算。下面,以针对流数据采用streamkm++的方式为例进行介绍。[0138]取决于网络状态参数中所包括的网络属性的数量,第一特征值和第二特征值具体可以包括多个特征值。[0139]对于一个网络属性,在来源于至少两个滑动窗口的m个网络状态参数中,将会存在m个特征值,这m个特征值具体可以来自第一特征值和第二特征值中的至少一个,并且它们会按照获取的时间排成序列输入到streamkm++聚类算法中。[0140]streamkm++聚类算法的具体计算过程请参照上述步骤s402中的介绍,此处不在赘述。[0141]在步骤s603中,根据聚类中心值以及异常阈值,确定聚类分组中的异常聚类分组。[0142]具体地,根据聚类中心值以及异常阈值是否满足至少一种异常检测规则来判断异常聚类分组。异常检测规则包括相较于异常阈值,聚类中心值所需满足的条件。例如,网络状态参数包括时延,异常检测规则可以包括时延的聚类中心值大于异常阈值。[0143]在步骤s604中,根据异常聚类分组,确定n组网络状态参数。[0144]对于所有异常聚类分组,可以对各个组内的特征值的情况进行统计。例如,统计各个组内异常值数量与正常值数量之间的比例或者异常值本身超出正常值的程度,对于各个异常聚类分组进行排序,并且将排序最高的聚类分组作为n组网络状态参数。具体地,例如,异常聚类分组包括时延聚类和丢包率聚类,每个聚类中分别包括20个特征值,其中,时延聚类包含15个异常值,丢包率聚类包含18个异常值,则可以根据丢包率聚类中的异常特征值生成n组网络状态参数。[0145]可以理解的是,在n组网络状态参数中,可以仅包括异常聚类分组中的特征值,也可以将其中特征值所对应的各个网络状态参数加入n组网络状态参数。例如,上述的示例中,n组网络状态参数可以仅包括丢包率聚类中18个异常值,也可以包括18个异常值与所对应的时延特征值组成的向量。[0146]在一个实施例中,可以使用前一周期的所得到的聚类中心值,对当前输入的m个网络状态参数进行类别判断。如果输入的m个网络状态参数中包括特征值大于前一周期的聚类中心值,则可以确定该网络状态参数为异常值,此时可以基于网络状态参数生成异常状态报告,并通过向用户进行汇报,以便进行实时监控。[0147]在本实施例中,在利用来自至少两个滑动窗口的网络状态参数对对异常网络状态参数进行筛选,由于增多了聚类算法的输入值数量,使得聚类中心值的能够能加贴近与网络中的真实状况,从而能够对异常状况进行更准确的模拟,提高网络模拟的准确性。[0148]在本技术的一个实施例中,基于上述技术方案,具体可以如图7所示,上述步骤s204.根据n组网络状态参数中的特征值生成第二测试网络,可以如下步骤s701和步骤s702:[0149]在步骤s701中,当达到指定时刻时,根据n组网络状态参数中的第三网络状态参数的特征值,得到指定时刻的第二测试网络;[0150]在步骤s702中,在指定时刻之后的各个时刻,根据n组网络状态参数中的第四网络状态参数的特征值,对前一时刻更新得到的第二测试网络进行更新,得到更新后的第二测试网络。[0151]具体地,服务器包括第二测试网络中的网络状态模拟器,并且利用该网络状态模拟器生成第二测试网络。请参阅图8,图8为网络状态模拟器的功能模块示意图。如图8所示,网络状态模拟器800包括远程控制接口801、参数控制器802、上行队列803、下行队列804以及数据可视化装置805。其中,远程控制接口801可以用于与服务器之间收发控制信号以及与第二测试网络中的测试设备之间收发控制信号。参数控制器802用于根据服务器的控制信号控制数据包的转发。上行队列803和下行队列804用于将测试设备上目标应用发送和接收的数据包。数据可视化装置805则根据上行队列和下行队列的记录,将其中通信信息的情况进行统计并显示为图表以供用户检验。[0152]具体地,在此实施例中,服务器根据n组网络状态参数,在参数控制器中为每组网络状态参数启动一个计时器。计时器的计时长度主要根据网络状态参数的顺序以及异常程度确定,例如,在第一测试网络中发生时间较早的网络状态参数的计时器的计时长度可以较短,异常程度高的网络状态参数也可以较短。可以理解的是,各个计时器的计时长度应各不相同,以确保每组网络状态参数具有适当的测试时长。[0153]当任一计时器到期时,则表示当前时间到达了指定时刻,此时,参数控制器将会根据该计时器对应的第三网络状态参数的特征值,更新网络状态模拟器的控制参数。随后,网络状态模拟器将会根据控制参数,为第二测试网络中测试设备的目标应用提供通信服务,对于需要进行异常模拟的通讯数据,可以利用上行队列或者下行队列来进行延迟、丢包、缩减带宽等操作,例如,根据时延参数,将测试设备中的目标应用的通信请求加入到上行队列或者下行队列中延迟一定时间后再进行转发,以模拟高时延网络。[0154]其中,网络状态模拟器在根据网络状态参数控制通信时,可以根据测试设备用于通信的互联网协议地址、端口以及协议类型等进行过滤判断,以便仅将与目标应用相关的通信数据加入到队列中进行通信控制。[0155]在到达指定时刻后,其他的计时器将会继续进行计时。在指定时刻之后的各个时刻,在任一计时器到期时,根据n组网络状态参数中的第四网络状态参数的特征值,对前一时刻更新得到的第二测试网络进行更新,即,网络状态模拟器中的参数控制器将会根据第四网络状态参数的特征值更新其控制参数,以便对新的异常网络状态进行模拟和测试。[0156]在网络状态模拟器更新控制参数后,可以通过远程控制接口向第二测试网络中的测试设备发送指令,以启动目标应用来执行测试操作。目标应用的启动以测试操作的执行也可以有其他方式进行,例如由第三方来主动触发执行,此处不加限制。[0157]可以理解的是,上述的网络状态模拟器可以由独立设备来执行,也可以由执行应用测试的方法的服务器本身来担任。在由服务器本身担任的实施例中,服务器可以在自身的功能模块之间发送控制指令,以此根据所获得的与异常网络状态相关联的网络状态参数来生成第二测试网络。[0158]在本技术中,到达指定时刻及其后续的各个时刻时,对第二测试网络进行更新,因此,能够自动在各个网络状态之间进行切换,从而避免人为接入配置过程,能够提高对应用进行测试的效率。[0159]在本技术的一个实施例中,基于上述技术方案,具体可以如图9所示,上述步骤s205.控制所述目标应用运行在所述第二测试网络中,以获取所述目标应用所对应的测试结果,可以如下步骤s901和步骤s903:[0160]在步骤s901中,接收目标应用发送的数据包;[0161]在步骤s902中,对数据包进行统计,得到网络响应数据,其中,网络响应数据包括丢包率、延时、带宽中的至少一种;[0162]在步骤s903中,根据网络响应数据生成目标应用所对应的测试结果。[0163]具体地,服务器可以通过网络状态模拟器接收目标应用发送的数据包。数据包可以包括目标应用对自身的运行状态进行监控和统计的信息,服务器对数据包进行解析和统计,以得到网络响应数据。数据包也可以是用于进行业务处理的数据包,此时,则可以由服务器对目标应用的业务表现进行统计,以便得到网络响应数据。网络响应数据通常至少包括目标应用在通信中的丢包率、延时、带宽中的至少一种。网络响应数据还可以包括目标应用本身对于网络状态的表现,此类表现取决于目标应用本身的类别和用途不同,例如,对于游戏类应用,可以统计游戏在高延时下的流畅程度,对于交易类应用,可以统计交易在高丢包率情况下的交易成功率。与目标应用的具体表现相关的测试内容此处不做限定。[0164]在得到网络响应数据后,可以根据网络响应数据中的内容进行统计,作为目标应用所对应的测试结果,同时,还可以与之前所得到的测试结果合并进行图形化的展示,以便于用户进行使用。[0165]在本技术中,根据目标应用发送的数据包得到网络响应数据,从而能够自动获得关于目标应用在第二测试网络下测试的测试结果,由此,能够减少测试过程中的人工介入,从而节约测试的成本消耗并提高测试的效率和可操作性。[0166]应当注意,尽管在附图中以特定顺序描述了本技术中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。[0167]以下介绍本技术的装置实施,可以用于执行本技术上述实施例中的应用测试的方法。图10示意性地示出了本技术实施例中应用测试装置的组成框图。如图10所示,应用测试装置1000主要可以包括:[0168]第一获取模块1001,用于当目标应用运行于第一测试网络时,获取第一测试网络产生的待处理网络状态参数;[0169]取样模块1002,用于采用滑动窗口对待处理网络状态参数进行取样处理,得到m组网络状态参数,其中,n组网络状态参数指示第一测试网络的网络异常状态,m组网络状态参数中的每组网络状态参数包括网络属性所对应的特征值,m为大于1的整数;[0170]第二获取模块1003,用于从m组网络状态参数中获取n组网络状态参数,其中,n为大于或等于1,且小于m的整数;[0171]生成模块1004,用于根据n组网络状态参数中所包含的特征值生成第二测试网络;[0172]控制模块1005,用于控制目标应用运行在第二测试网络中,以获取目标应用的测试结果。[0173]在本技术的一个实施例中,基于以上技术方案,第二获取模块1003可以包括:[0174]获取单元,用于获取所述m组网络状态参数中包含的各个网络属性所对应的特征值;[0175]计算单元,用于根据所述网络属性所对应的特征值,计算所述各个网络属性所对应的特征平均值;[0176]生成单元,用于根据所述各个网络属性所对应的特征平均值,生成所述n组网络状态参数。[0177]在本技术的一个实施例中,基于以上技术方案,第二获取模块1003可以包括:[0178]获取单元,还用于获取所述m组网络状态参数中包含的各个网络属性所对应的特征值;[0179]聚类单元,用于对所述各个网络属性所对应的特征值进行聚类,得到聚类分组和所述聚类分组对应的聚类中心值;[0180]确定单元,用于根据所述聚类中心值以及异常阈值,确定从所述聚类分组中确定异常聚类分组;1101、rom 1102以及ram 1103通过总线1104彼此相连。输入/输出(input/output,i/o)接口1105也连接至总线1104。[0202]以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分1107;包括硬盘等的储存部分1108;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入储存部分1108。[0203]特别地,根据本技术的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(cpu)1101执行时,执行本技术的系统中限定的各种功能。[0204]需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。[0205]附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0206]应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0207]通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本技术实施方式的方法。[0208]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。[0209]应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部