实现网络场景模拟的方法和装置与流程

文档序号:11147639阅读:682来源:国知局
实现网络场景模拟的方法和装置与制造工艺

本公开涉及计算机应用领域,特别涉及一种实现网络场景模拟的方法和装置。



背景技术:

终端中网络场景往往较为复杂,比如,存在着有网切换至无网、无网切换至有网的状况,在有网条件下还存在多种网络类型的相互切换,并且随着用户的不同,所发生与网络相关的切换也各不相同。

而终端中应用的很多功能都涉及网络,而这些功能在开发过程中,往往由于未考虑终端中的复杂网络场景,因此即便进行了严格的应用测试,仍然会在后续的正常运行中由于复杂网络而引发各种问题。

具体而言,应用的测试,即开发过程中应用的内部测试阶段,并无法覆盖终端中的复杂网络场景。也就是说,执行应用测试所在的网络场景,与终端中真实存在的复杂网络场景并不相符,进而必然导致应用测试中无法发现由于复杂网络场景而引发的各种问题。

因此,亟待解决应用测试中网络场景与终端中复杂网络场景不相符的缺陷,即亟待实现网络场景的模拟。



技术实现要素:

为了解决相关技术中应用测试所在网络场景与真实存在的复杂网络场景不相符的技术问题,本公开提供了一种实现网络场景模拟的方法和装置。

一种实现网络场景模拟的方法,所述方法包括:

按照配置的限定值进行随机数生成,得到处于所述限定值限定范围的随机数;

在处于已连接网络状态时,根据所述随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令;

根据所述网络连接修改指令修改与网络连接相关的返回值,通过所述返回值的修改模拟网络场景。

一种实现网络场景模拟的装置,所述装置包括:

随机数生成模块,用于按照配置的限定值进行随机数生成,得到处于所述限定值限定范围的随机数;

指令生成模块,用于在处于已连接网络状态时,根据所述随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令;

返回值修改模块,用于根据所述网络连接修改指令修改与网络连接相关的返回值,通过所述返回值的修改模拟网络场景。

本公开的实施例提供的技术方案可以包括以下有益效果:

为实现真实存在的复杂网络场景的模拟,按照配置的限定值进行随机数的生成,得到处于限定值限定范围的随机数,在处于已连接状态时,根据随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令,根据网络连接修改指令修改与网络连接相关的返回值,此时通过返回值的修改便模拟了网络场景,与网络连接相关返回值的修改,便随之模拟了网络连接相关的切换,因此,所模拟的网络场景,是在随机数和网络切换概率的控制下进行网络连接相关的切换,与真实存在的网络连接相关的切换是相类似,进而使得所模拟的网络场景是与真实存在的复杂网络场景相符的,保证了网络场景模拟的真实性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种实现网络场景模拟的方法的流程图;

图2是另一示例性实施例示出的一种实现网络场景模拟的方法的流程图;

图3是根据图1对应实施例示出的对在处于已连接网络状态时,根据随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令步骤的细节在一个示例性实施例进行描述的流程图;

图4是根据图1对应实施例示出的对在处于已连接网络状态时,根据随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令步骤的细节在另一个示例性实施例进行描述的流程图;

图5是根据一示例性实施例示出的一应用测试覆盖复杂网络场景的流程图;

图6是根据一示例性实施例示出的一种实现网络场景模拟的装置的框图;

图7是根据另一示例性实施例示出的一种实现网络场景模拟的装置的框图;

图8是根据图6对应示例性实施例示出的对指令生成模块的细节在一个示例性实施例进行描述的框图;

图9是根据图6对应示例性实施例示出的对指令生成模块的细节在一个示例性实施例进行描述的框图;

图10是根据一示例性实施例示出的一种装置的框图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种实现网络场景模拟的方法的流程图。该实现网络场景模拟的方法,如图1所示,可以包括以下步骤。

在步骤110中,按照配置的限定值进行随机数生成,得到处于限定值限定范围的随机数。

其中,限定值,是一预先配置的数值,用于指定生成随机数的范围。按照限定值所执行的随机数生成所得到的随机数,必然是在0到限定值这一范围的。在一个示例性实施例的具体实现中,限定值可以是100,以方便运算。此时,所运算得到的随机数是一个100以内的数值。

在一个示例性实施例中,可以为应用的测试执行此步骤,进而为应用的测试模拟网络场景,以使得应用测试是在模拟的网络场景中进行的,应用的测试中能够通过模拟的网络场景模拟网络切换。

在步骤130中,在处于已连接网络状态时,根据随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令。

其中,已连接网络状态,是指当前处于存在可用网络并已连接至可用网络的状态。预先配置了网络切换概率,网络切换概率指示了所进行的网络场景模拟中执行与网络连接相关的切换操作的概率。

由于网络连接所相关的切换是非常多的,比如,有网至无网的切换、无网至有网的切换、在有网条件下多种网络类型相互之间的切换等等,与网络连接相关的切换操作的执行,是用于实现某一网络连接所相关的切换的。因此,与网络连接相关的切换操作,非常多,并且在实际情况下,与网络连接相关的切换操作的执行是具备随机性的。

比如,在实际情况下,网络连接所相关的切换,是随着用户的需求、或者终端所能够连接网络的情况以及应用中需要访问网络的功能等因素的存在而发生的,而这些因素本身就是随机存在的,因此,必然导致了实际情况下网络连接所相关的切换是随机进行的,从而才会导致实际存在的网络场景复杂。

基于此,在随机数和网络切换概率的控制下所生成的网络连接修改指令,将使得后续所进行的与网络连接相关的返回值的修改具备随机性,进而保证了其是与真实存在的网络相关的切换相适应。

在此应当说明的是,网络切换概率对应的范围,是由网络切换概率和配置的限定值确定的。网络切换概率和限定值在数值上的乘积便构成了网络切换概率对应范围中的上限值,即网络切换概率对应的范围,是在0至前述所指的上限值之间的数值范围。

通过随机数和网络切换概率对应的范围,在数值上对模拟的网络场景划分其所随机对应的网络连接状况,进而生成相应的网络连接修改指令。

在步骤150中,根据网络连接修改指令修改与网络连接相关的返回值,通过返回值的修改模拟网络场景。

其中,网络连接修改指令,指示了当前所执行的网络连接相关的切换。而对于此网络连接相关的切换,其通过对应的与网络连接相关的返回值修改实现的。因此,网络连接修改指令,指示了所需要修改的返回值。

例如,可以通过修改NetworkInfo.isConnected方法的返回值,将其由true修改为false,即可模拟由有网络切换无网络的网络场景;也可以修改ConnectivityManager.getActiveNetworkInfo方法的返回值为空,便也能够模拟由有网络切换无网络的网络场景;还可以修改NetworkInfo.getType方法的返回值来切换至其它网络类型,进而模拟发生了网络类型切换的网络场景,在此不进行一一列举。

通过如上的过程,在随机数和网络切换概率的作用下,实现了网络场景的模拟,并在这一网络场景的模拟中随机进行了一次与网络切换概率相符合的网络连接相关的切换,因此,其是与真实存在的网络连接相关的切换相符的。

在此,可以通过反复执行的随机数生成来不断模拟网络场景中随机进行的多种网络相关的切换,进而实现与真实存在的复杂网络场景相符合的网络场景模拟。

图2是另一示例性实施例示出的一种实现网络场景模拟的方法的流程图。该步骤130之前,如图2所示,该实现网络场景模拟的方法,还可以包括以下步骤。

在步骤210中,触发进行连网状态的获取,得到指示连网状态的返回值。

其中,连网状态,包括已连接网络状态和未连接网络状态。指示连网状态的返回值,在一个示例性实施例的具体实现中,NetworkInfo对象为空,且NetworkInfo.isConnected方法返回的true。

具体的,所触发进行的连网状态的获取,包括两个层面。一是首先确认是否存在可用网络;二是在确认存在可用网络情况下获得已连接网络状态或未连接网络状态。

在一个示例性实施例的具体实现中,将首先通过hook系统方法ConnectivityManager.getActiveNetworkInfo,来获得返回值NetworkInfo对象,判断返回值NetworkInfo对象是否为空,如果为空,则说明无可用网络,如果不为空,则进一步通过hook系统方法NetworkInfo.isConnected获得相应的返回值,并判断此返回值是否为true,如果为true,则判定当前处于已连接网络状态。

在步骤230中,根据指示连网状态的返回值判定处于已连接网络状态。

通过如上的过程,为图1对应实施例中确认处于已连接网络状态提供了具体实现,进而使得网络场景的模拟是在能够连接网络的基础上进行的,以保证网络场景模拟的可实施。

图3是根据图1对应实施例示出的对步骤130的细节在一个示例性实施例进行描述的流程图。网络切换概率包括有无连网切换概率,该步骤130,如图3所示,可以包括以下步骤。

在步骤131中,在处于已连接网络状态时,判断随机数是否处于有无连网切换概率对应的范围,如果为是,则执行步骤132,如果为否,则可不作处理。

其中,在通过图2对应实施例,确认当前处于已连接网络状态之后,即可在随机数和有无连网切换概率的作用下实现网络场景的模拟,模拟的网络场景中,进行了有网至无网的切换。

有无连网切换概率,用于指示网络场景中有网至无网的切换概率。

与前述描述相类似的,有无连网切换概率对应的范围,是指有无连网切换概率和限定值在数值上的乘积所限定的范围,即0至有无连网切换概率和限定值在数值上的乘积所构成的数值范围。

当前的网络场景下,正处于已连接网络状态,如果随机数处于有无连网切换概率对应的范围,则执行步骤132,即通过生成网络连接修改指令,以此来实现相应返回值的修改,进而由有网随机切换至无网,实现发生了有网切换至无网的网络场景模拟。

在步骤132中,生成对指示连网状态的返回值进行修改的网络连接修改指令。

其中,所生成的网络连接修改指令,用于修改指示连网状态的返回值,例如,前述所说的hook系统方法NetworkInfo.isConnected所对应的返回值,将其由true修改为false;或者,将前述hook系统方法ConnectivityManager.getActiveNetworkInfo返回的NetworkInfo对象修改为空,这些返回值的修改,都可实现有网至无网的切换,进而使得模拟的网络场景能够模拟真实存在的随机切换为有网至无网的状况。

通过如上所述的过程,实现了网络场景中有网至无网的随机模拟,进而能够模拟真实存在的有网切换至无网的网络场景,进而使应用的测试中能够检查应用在无网络时是否会发生异常。

图4是根据图1对应实施例示出的对步骤130的细节在另一个示例性实施例进行描述的流程图。该网络切换概率还包括网络类型切换概率,则步骤130,如图4所示,还可以包括以下步骤。

在步骤133中,进一步判断随机数是否处于网络切换概率对应的范围,如果为是,则执行步骤134,如果为否,则执行步骤136。

其中,在图3对应实施例所实现的有网切换至无网的网络场景模拟基础上,还可在网络类型切换概率的作用下实现多种网络类型切换的网络场景模拟。

网络类型切换概率,用于指示任意网络类型之间发生切换的概率。在随机数和网络类型切换概率的作用下,实现网络类型之间与网络类型切换概率相符合的随机切换。

网络切换概率对应的范围,是在有无连网切换概率对应的范围之上由网络切换概率延伸出来的范围,即获取有无连网切换概率与网络切换概率之和,在此基础上获取与限定值之间的乘积,即为网络切换概率对应范围的上限值。0至这一上限值便构成了网络切换概率对应的范围。

在步骤134中,触发进行网络类型的获取,得到指示网络类型的返回值。

其中,触发进行网络类型的获取也将是通过获取相应的返回值实现的。例如,可以通过NetworkInfo.getType()方法获得此返回值。

可以理解的,网络类型,包括移动网络、WiFi网络等。返回值中指示的数值,是对应于一网络类型的,因此,能够通过获取的返回值获知网络类型。

通过前述步骤判断到随机数据处于网络切换概率对应的范围,则说明可进行网络类型的随机切换,因此,需要执行当前步骤获得指示网络类型的返回值,以便于基于此返回值来生成相应的网络连接修改指令。

在步骤135中,生成对指示网络类型的返回值进行修改的网络连接修改指令。

其中,根据返回值指示的网络类型,生成将网络类型切换为其它另一网络类型的网络连接修改指令,在执行此网络修改指令进行返回值的修改之后,即可使得当前进行测试的应用认为网络场景中发生了网络类型的切换,进而检查此应用在发生网络类型的切换时是否发生异常。

在步骤136中,保持网络场景。

通过如上所述的过程,模拟了网络场景中网络类型的随机切换,使得网络场景的模拟与真实存在的复杂网络场景相符,与真实存在的复杂网络场景相类似的,也会发生网络类型的随机切换。

通过如上所述的网络场景模拟,使得应用的测试,能够覆盖复杂网络场景,进而提高应用测试中发现网络问题的概率,即提高应用的运行中网络切换导致问题的概率,有助于帮助开发人员定位问题。

以一应用测试的过程为例,结合具体应用场景,描述该实现网络场景模拟的方法。例如,图5是根据一示例性实施例示出的一应用测试覆盖复杂网络场景的流程图。

为此应用的测试,将设定网络切换概率,此网络切换概率,包括两种概率值,一为有无连网切换概率P1,二为网络类型切换概率P2,并配置限定值为110。

则如图5所示的,计算一个100以内的随机数,即执行步骤310。此随机数,将用于为应用的测试模拟网络场景中的一次网络切换,这一网络切换,根据随机数的大小,可能是有网至无网的切换,也可以是网络类型的切换。

执行步骤320至330,调用hook系统方法ConnectivityManager.getActiveNetworkInfo得到返回值NetworkInfo对象,判断NetworkInfo对象是否为空,如果为空,则说明无网络,此时,可结束整个流程。

如果NetworkInfo对象不为空,则执行步骤340,判断hook系统方法NetworkInfo.isConnected的返回值是否为true,如果为true,则说明当前是处于已连接网络状态的。

在处于已连接网络状态时,即可进行网络切换。在此应当说明的是,如果网络切换概率仅有有无连网切换概率,则模拟有网至无网的切换;如果网络切换概率还包括了网络类型切换概率,则也可随机模拟网络类型的切换。

在图5中,通过步骤350,判断随机数是否落在100*P1范围内,来确定是随机进行有网至无网的切换,还是随机进行网络类型的切换。

在随机数是否落在100*P1范围时,执行步骤360,通过修改返回值来模拟网络场景中发生了有网至无网的切换,进而能够在这一网络场景中确认应用是否会由于有网至无网的切换产生问题。

如果随机数未落在100*P1范围,则执行步骤370,进一步判断随机数是否落在100*(P1+P2)范围内,如果是,则可在网络场景中模拟网络类型的切换,即执行步骤380,进而在此网络场景中确认应用是否会由于网络类型的切换产生问题。

至此,便实现了复杂网络场景的模拟,并具备非常高的真实性,进而使得在此基础上应用测试的实现覆盖复杂网络场景。

下述为本公开装置实施例,可以用于执行本公开上述实现网络场景模拟的方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开实现网络场景模拟的方法实施例。

图6是根据一示例性实施例示出的一种实现网络场景模拟的装置的框图。该实现网络场景模拟的装置,执行图1所示的实现网络场景模拟的方法的全部步骤。如图6所示,该实现网络场景模拟的装置包括但不限于:随机数生成模块510、指令生成模块530和返回值修改模块550。

随机数生成模块510,用于按照配置的限定值进行随机数生成,得到处于限定值限定范围的随机数。

指令生成模块530,用于在处于已连接网络状态时,根据随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令。

返回值修改模块550,用于根据网络连接修改指令修改与网络连接相关的返回值,通过返回值的修改模拟网络场景。

图7是根据另一示例性实施例示出的一种实现网络场景模拟的装置的框图。该实现网络场景模拟的装置,如图7所示,还包括但不限于:连网返回值获得模块610和连网状态判定模块630。

连网返回值获得模块610,用于触发进行连网状态的获取,得到指示连网状态的返回值。

连网状态判定模块630,用于根据指示连网状态的返回值判定处于已连接网络状态。

图8是根据图6对应示例性实施例示出的对指令生成模块的细节在一个示例性实施例进行描述的框图。该指令生成模块530,如图8所示,可以包括但不限于:连网切换范围判断单元531和连网指令生成单元532。

连网切换范围判断单元531,用于在处于已连接网络状态时,判断随机数是否处于有无连网切换概率对应的范围,如果为是,则触发连网返回值修改单元532。

连网指令生成单元532用于生成对指示连网状态的返回值进行修改的网络连接修改指令。

图9是根据图6对应示例性实施例示出的对指令生成模块的细节在一个示例性实施例进行描述的框图。网络切换概率包括网络类型切换概率,该指令生成模块530,如图9所示,还可以包括但不限于:类型切换范围判断单元533、类型返回值获得单元534和类型指令生成单元535。

类型切换范围判断单元533,用于如果随机数未处于有无连网切换概率对应的范围,则进一步判断随机数是否处于网络切换概率对应的范围,如果为是,则触发类型返回值获得单元534,如果为否,则保持网络场景。

类型返回值获得单元534用于触发进行网络类型的获取,得到指示网络类型的返回值。

类型指令生成单元535,用于生成对指示网络类型的返回值进行修改的网络连接修改指令。

图10是根据一示例性实施例示出的一种装置700的框图。例如,700可以是各种终端。

参照图10,装置700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,传感器组件714以及通信组件716。

处理组件702通常控制装置700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件702可以包括一个或多个处理器718来执行指令,以完成下述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。

存储器704被配置为存储各种类型的数据以支持在装置700的操作。这些数据的示例包括用于在装置700上操作的任何应用程序或方法的指令。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储器704中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器718执行,以完成下述图3、4和图5任一所示方法中的全部或者部分步骤。

电源组件706为装置700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为装置700生成、管理和分配电力相关联的组件。

多媒体组件708包括在所述装置700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。屏幕还可以包括有机电致发光显示器(OLED)。

音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当装置700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。

传感器组件714包括一个或多个传感器,用于为装置700提供各个方面的状态评估。例如,传感器组件714可以检测到装置700的打开/关闭状态,组件的相对定位,传感器组件714还可以检测装置700或装置700一个组件的位置改变以及装置700的温度变化。在一些实施例中,该传感器组件714还可以包括磁传感器,压力传感器或温度传感器。

通信组件716被配置为便于装置700和其他设备之间有线或无线方式的通信。装置700可以接入基于通信标准的无线网络,如WiFi。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,装置700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。

可选的,本公开还提供一种终端,该终端可以执行图1、图2、图3和图4任一所示的实现网络场景模拟的方法的全部或者部分步骤。所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行:

按照配置的限定值进行随机数生成,得到处于所述限定值限定范围的随机数;

在处于已连接网络状态时,根据所述随机数与网络切换概率对应范围二者之间的关系生成网络连接修改指令;

根据所述网络连接修改指令修改与网络连接相关的返回值,通过所述返回值的修改模拟网络场景。

该实施例中的装置的处理器执行操作的具体方式已经在有关该实现网络场景模拟的方法的实施例中执行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介指例如包括指令的存储器704,上述指令可由装置700的处理器718执行以完成上述实现网络场景模拟的方法方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1