具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图1与图2,图1为本申请实施例提供的应用程序网络环境检测方法的一个流程示意图,图2为本申请实施例提供的应用程序网络环境检测方法的整体框架流程示意图。如图1与图2所示,预设应用程序安装在电子设备上,该方法包括以下步骤S11-S20:
S11、基于所述预设应用程序,发送网络请求,并根据所述网络请求对应的网络请求数据,判断是否满足预设检查条件,所述预设检查条件用于启动检查所述电子设备的网络连接。
具体地,用户在电子设备上使用应用程序,所述电子设备可以为移动终端,或者为台式计算机等电子设备,如智能手机、平板电脑等移动终端,例如,用户在移动终端上使用NativeAPP、WebApp或者hybridAPP等APP时,或者使用H5网页时,应用程序启动,会向应用程序对应的服务器发送网络请求,所述网络请求以发送数据包的形式进行,针对所述网络请求会产生对应的网络请求数据,所述网络请求数据包括网络请求是否发送成功对应的网络请求数据,及发送网络请求的数据包所使用的时长等网络请求数据。由于应用程序的网络环境为弱网时,会导致网络请求对应的接口请求出现失败,或者虽然接口请求成功,但网络请求的数据包的传输时间较长,因此,若出现网络请求对应的接口请求出现失败,或者虽然接口请求成功,但网络请求的数据包的传输时间较长的情形时,都存在所述预设应用程序所在电子设备的网络连接为弱网的情形,都需要对所述电子设备的网络连接进行弱网检测,以判断所述电子设备的网络连接是不是为弱网状态,即判断所述电子设备的网络连接状况较差。
进一步地,请参阅图2与图3,图3为本申请实施例提供的应用程序网络环境检测方法的第一个子流程示意图,如图2与图3所示,所述根据所述网络请求对应的网络请求数据,判断是否满足预设检查条件的步骤包括:
S111、根据所述网络请求对应的网络请求数据,判断所述网络请求对应的请求结果是否为失败;
S112、若所述请求结果为失败,统计所述网络请求连续失败对应的连续失败次数,并判断所述连续失败次数是否大于或者等于预设次数阈值;
S113、若所述连续失败次数大于或者等于预设次数阈值,判定满足所述预设检查条件;
S114、若所述网络请求成功,判断所述网络请求的首包时间是否大于或者等于预设LINE阈值;
S115、若所述首包时间大于或者等于预设LINE阈值,判定满足所述预设检查条件;
S116、若所述首包时间小于预设LINE阈值,判定不满足所述预设检查条件。
其中,LINE,为描述服务性能的指标,可以称为LINE系列,对应为Line值,如95Line或者99.9Line,95Line表示95%请求的完成时间在每个请求各自对应的预设时间阈值内,即95%请求是在各自要求的时间内完成的,95Line指标可以为95%的请求在1.5ms返回,95Line指标也可以为95%的请求在7.0ms返回,或者95Line指标为95%的请求分别在在1.5ms、7.0ms返回,99.9Line表示99.9%请求的完成时间在每个请求各自对应的预设时间阈值内,99.9Line指标可以为99.9%的请求分别在在3.5ms、9.5ms返回,LINE性能指标又可以称为Top Percentile,即Top百分数,百分数即为百分位数,简称TP系列,Line系列的统计越小、Std(即标准差)也越小,说明服务的响应也快、也越稳定。
具体地,通过检测网络请求失败的次数是否大于或者等于预设次数阈值,或者若网络请求发送成功,检测网络请求的首包时间是否大于或者等于预设LINE阈值,即按照百分位数的统计规则,判断网络请求的首包时间是否在所述预设LINE阈值对应的要求比重外,例如,若要求TTFB小于或者等于95LINE,即按照百分位数的统计规则,要求95%请求的完成时间在每个请求各自对应的预设时间阈值内,即要求95%请求是在每个请求各自对应的预设时间阈值内完成的,且要求TTFB对应的首包时间属于此95%请求对应所占比重内,若TTFB对应的首包时间属于95%请求的完成时间所占比重内,表明TTFB小于或者等于95LINE,说明服务的响应也快、也越稳定,若TTFB对应的首包时间不属于95%请求的完成时间所占比重内,即在95%请求的完成时间所占比重外,表明TTFB大于95LINE,说明服务的响应慢、也不稳定,从而判断是否满足检查所述电子设备的网络连接的检查条件。若网络请求连续失败的次数大于或者等于预设次数阈值,即网络请求连续失败,需要判断应用程序的网络环境是否存在问题,例如是否存在网络连接问题,或者网络连接状况较差(即为弱网),此时,判定满足检查所述电子设备的网络连接的预设检查条件,或者若网络请求发送成功,检测网络请求的首包时间大于或者等于预设LINE阈值,需要判断应用程序的网络环境是否存在问题,例如判断网络连接状况较差(即为弱网),此时,也判定满足检查所述电子设备的网络连接的预设检查条件,从而启动检测所述应用程序的网络环境是否为弱网环境,否则,网络请求发送成功,且服务器对网络请求的响应速度很快,表明应用程序的网络环境状况良好,无需检查应用程序所处的网络环境状况。其中,请求的首包时间,英文为Time toFirst Byte,缩写为TTFB,TTFB-Time To First Byte第一字节响应时间,就是从发送请求到服务器,加上服务器处理请求并生成、返回响应花费的时间。
S12、若满足预设检查条件,获取所述电子设备的网络连接对应的网络连接信息数据,并根据所述网络连接信息数据,判断所述电子设备是否存在网络连接;
S17、若不满足预设检查条件,不获取所述电子设备的网络连接对应的网络连接信息数据。
具体地,若判断满足检查所述电子设备的网络连接对应的预设检查条件,表明需要进行弱网检测,只有在存在网络连接的前提下,才可能存在弱网情形,因此,首先需要检测应用程序所在的电子设备是否存在网络连接,并根据所述电子设备所支持的获取网络连接的设置,来获取所述电子设备的网络连接情况对应的网络连接信息数据,例如,Android可以通过ConnectivityManager获取网络连接情况,IOS可以通过AFNetworkReachabilityManager进行判断,其中,AFNetworkReachabilityManager是用来监测网络状态,网络状态管理的类,可以通过设置状态改变回调来获得当前网络状态,从而根据所述网络连接情况,即可判断是否存在网络连接。
S13、若所述电子设备存在网络连接,基于预设域名服务器,查询预设目标服务器对应的目标域名,并判断是否得到所述目标域名;
S18、若所述电子设备不存在网络连接,不基于预设域名服务器,查询预设目标服务器对应的目标域名。
具体地,若不存在网络连接,无需进一步判断电子设备的网络环境是否为弱网,若所述电子设备存在网络连接,可以进一步判断所述电子设备的网络环境是否为弱网。由于影响移动网络好坏的因素很多,因此,在电子设备存在网络连接时,可以进一步通过查询预设域名服务器,来获取预设目标服务器所对应的目标域名,并判断是否得到所述目标域名对应的IP地址,来进一步判断是否存在网络连接,查询预设目标服务器对应的目标域名,一般通过DNS服务进行查询,若出现DNS服务错误,表明没有网络连接,无需进一步进行弱网检测,若DNS检测正常,表明电子设备的网络连接正常,再进一步检测电子设备的网络连接是否为弱网环境。其中,查询预设域名服务器,即DNS检测,域名系统,英文为Domain NameSystem,缩写为DNS,是互联网的一项服务。
S14、若得到所述目标域名,根据所述目标域名,向所述目标域名对应的所述预设目标服务器发送测试报文,并得到对应的测试信息数据;
S19、若未得到所述目标域名,不根据所述目标域名,向所述目标域名对应的所述预设目标服务器发送测试报文。
具体地,若DNS检测正常,表明所述电子设备的移动网络是正常的,需要再进一步确定所述移动网络是否为弱网,根据所述目标域名,向预设目标服务器发送报文,该报文即为测试报文,用于测试预设目标服务器的响应速度,并得到对应的测试信息数据,所述测试信息数据包括测试失败信息数据、测试超时信息数据及测试丢包信息数据,其中,所述测试失败信息数据用于描述向预设服务器发送测试报文发送失败的情形,所述测试超时信息数据用于描述向预设服务器发送测试报文虽然成功,但成功发送的时长超过了预设时间阈值,所述测试丢包信息数据用于描述向预设服务器发送测试报文虽然成功,但出现由于网络状况不好丢失数据的情形。例如,可以通过预设PING命令测试服务器响应速度,并得到对应的PING信息数据,所述测试失败信息数据可以对应描述PING失败,所述测试超时信息数据可以对应描述PING超时,可以默认每次超时时间为1秒,所述测试丢包信息数据可以对应描述PING丢包。其中,PING命令,英文为PacketInternet Groper,是一种因特网包探索器,用于测试网络连接量的程序,主要是向特定的目的主机发送ICMP(Internet ControlMessage Protocol因特网报文控制协议)Echo请求报文,测试目的站是否可达及了解其有关状态。
S15、判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据;
S16、若所述测试信息数据包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境为弱网;
S20、若所述测试信息数据未包含测试失败信息数据、测试超时信息数据及测试丢包信息数据,不能判定所述应用程序所处网络环境为弱网。
具体地,为了准确判断电子设备的移动网络是否为弱网,通过向预设目标服务器发送测试报文,以测试预设目标服务器的响应速度,并根据测试报文,得到对应的测试信息数据,所述测试信息数据会包括测试是否失败对应的信息数据、测试报文是否超时对应的信息数据、测试报文是否丢失对应的信息数据等测试数据。根据所述测试信息数据,判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,若所述测试信息数据包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境为弱网,若所述测试信息数据不包含测试失败信息数据、测试超时信息数据及测试丢包信息数据,判定所述应用程序所处网络环境不为弱网,例如,所述测试信息数据不包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,但出现了测试读写错误,表明电子设备的移动网络处于网络未连接状态,而不是弱网状态,若所述测试信息数据不包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,也未出现测试读写错误,表明所述电子设备的移动网络处于良好状态。例如,若通过预设PING命令测试服务器响应速度时,根据PING信息数据,判断所述PING信息数据是否包含PING失败信息数据、PING超时信息数据或者PING丢包信息数据,若所述PING信息数据包含PING失败信息数据、PING超时信息数据或者PING丢包信息数据,判定所述APP所处网络环境为弱网,若所述PING信息数据不包含PING失败信息数据、PING超时信息数据及者PING丢包信息数据,判定所述APP所处网络环境不为弱网。例如,针对移动终端的APP,在复杂的移动网络环境,能够使应用程序快速甄别用户当前所处的网络状态,并对用户所处的网络状态进行记录与统计,对后续决策判断是否要做弱网优化以及如何针对性的进行弱网优化至关重要,对于一个大型APP来说,假设其用户的弱网占比为7.5%,在庞大的用户基数下,提升这部分弱网用户的体验,也是非常大的进步。
本申请实施例,通过先判断是否满足检查电子设备的网络连接的对应预设检查条件,若满足检查所述网络连接的预设检查条件,获取电子设备的网络连接情况对应的网络连接信息数据,并根据所述网络连接信息数据,判断所述电子设备是否存在网络连接,若所述电子设备存在网络连接,基于预设域名服务器,查询预设目标服务器对应的目标域名,并判断是否得到所述目标域名对应的IP地址,若得到对应的IP地址,向预设目标服务器发送测试报文,并得到对应的测试信息数据,最后通过判断测试过程中测试报文是否存在测试失败、测试超时或者测试丢包,若测试过程中测试报文存在测试失败、测试超时或者测试丢包的现象,判定所述APP所处网络环境为弱网,相比传统技术中通过单一指标进行网络状况的检测,例如单纯判断用户端是否有网络,本申请通过综合考虑网络的多种影响因素,循序渐进的层层对网络状况进行整体检测,建立完整而精确的弱网检测标准及其对应的弱网检测模型,能够在复杂的移动网络环境下,提高对电子设备移动网络环境为弱网时的检测准确性与弱网的甄别效率,对电子设备的弱网检测达到了较高的检测精度,有利于对电子设备的应用程进行弱网下的改进。
请参阅图4,图4为本申请实施例提供的应用程序网络环境检测方法的第二个子流程示意图,如图4所示,在该实施例中,所述基于预设域名服务器,查询预设目标服务器对应的目标域名的步骤包括:
S131、获取预设第三方目标服务器对应的预设第三方服务器标识;
S132、根据所述预设第三方服务器标识,向所述预设域名服务器查询所述预设第三方服务器标识对应的第三方服务器域名。
具体地,由于导致APP发送网络请求不顺畅的因素较多,为了避免为APP提供业务服务的服务器自身的原因导致的APP网络请求发送不顺畅的情形,进一步提高对APP所在电子设备的网络环境的准确检测,除了向为APP提供业务服务的服务器发送测试报文外,还可以向可靠的、较为稳定、值得信赖的第三方服务器发送测试报文,例如,一些互联网大公司的服务器,像腾讯、京东或者阿里巴巴等公司的服务器,由于互联网大公司对服务器稳定的要求较高,可以作为值得信赖的第三方服务器。将第三方服务器作为测试服务器,在所述电子设备存在网络连接,需要进行测试报文发送,以通过服务器对测试报文的响应速度检测电子设备的网络环境时,获取预设第三方目标服务器对应的预设第三方服务器标识,根据所述预设第三方服务器标识,向所述预设域名服务器查询所述预设第三方服务器标识对应的第三方服务器域名,再根据所述第三方服务器域名,去访问所述预设第三方目标服务器,向所述预设第三方目标服务器发送测试报文,并得到对应的测试信息数据。例如,可以通过DNS服务命令,根据所述预设第三方服务器标识,向所述预设域名服务器查询所述预设第三方服务器标识对应的第三方服务器域名,得到所述预设第三方目标服务器对应的第三方服务器域名,再根据所述第三方服务器域名,去访问所述预设第三方目标服务器,向所述预设第三方目标服务器发送测试报文,从而实现借助可靠、稳定、值得信赖的第三方服务器,实现对电子设备的网络环境较为准确的检测,能够提高对电子设备的网络环境检测的准确性和效率。
进一步地,所述根据所述目标域名,向所述目标域名对应的所述预设目标服务器发送测试报文,并得到对应的测试信息数据的步骤包括:
根据所述第三方服务器域名,基于预设PING命令,向所述第三方服务器域名对应的所述预设第三方目标服务器发送测试报文,以得到对应的测试信息数据。
具体地,获取到所述预设第三方目标服务器对应的第三方服务器域名后,根据所述第三方服务器域名,可以基于预设PING命令,向所述第三方服务器域名对应的所述预设第三方目标服务器发送测试报文,以得到对应的测试信息数据,例如可以通过PING腾讯、京东等比较稳定的预设第三方服务器,得到对应的PING信息数据,并根据所述PING信息数据,获取当前网络状态、测试报文的丢包率等信息,来判断所述应用程序所在电子设备当前的网络情况。
更进一步地,根据所述第三方服务器域名,基于预设PING命令,可以先向所述第三方服务器域名对应的所述预设第三方目标服务器发送第一次测试报文,然后再向所述第三方服务器域名对应的所述预设第三方目标服务器发送第二次测试报文,对所述预设第三方目标服务器可以PING两次,根据向所述预设第三方目标服务器PING两次对应的测试过程,得到对应的测试信息数据,根据实践验证,相比向所述预设第三方目标服务器PING一次,能够更准确的反应电子设备的当前网络状态。
请参阅图5,图5为本申请实施例提供的应用程序网络环境检测方法的第三个子流程示意图,如图5所示,在该实施例中,所述若所述测试信息数据包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境为弱网的步骤包括:
S161、若所述测试信息数据包含测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境对应的预设网络状况等级为差;
S162、若所述测试信息数据包含测试失败信息数据,判定所述应用程序所处网络环境对应的预设网络状况等级为非常差。
具体地,可以对应用程序的网络状况为弱网的情形进行分级,以在对应用程序的弱网环境进行优化时,采取不同的优化策略,例如,可以将应用程序的弱化环境预设分级为预设网络状况等级为差及预设网络状况等级为非常差,其中,若所述测试信息数据包含测试超时信息数据或者测试丢包信息数据,所述应用程序所处网络环境对应的预设网络状况等级为差,若所述测试信息数据包含测试失败信息数据,所述应用程序所处网络环境对应的预设网络状况等级为非常差。例如,通过预设PING命令测试服务器响应速度时,若所述PING信息数据包含PING失败信息数据、PING超时信息数据或者PING丢包信息数据,判定所述APP所处网络环境为弱网时,若所述PING信息数据包含PING超时信息数据或者PING丢包信息数据,判定所述APP所处网络环境对应的预设网络状况等级为差,若所述PING信息数据包含PING失败信息数据,判定所述APP所处网络环境对应的预设网络状况等级为非常差,例如,通过预设PING命令PING服务器时,可以将PING失败一次标识为VERYPOOR,DNS查询成功、PING成功,但出现超时与丢包标记为POOR,从而实现对电子设备弱网检测的精确分级检测与优化。
请参阅图6,图6为本申请实施例提供的应用程序网络环境检测方法的第四个子流程示意图,如图6所示,在该实施例中,所述测试信息数据还包括网络连接无法识别信息或者预设错误信息,所述判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据的步骤包括:
S17、若所述测试信息数据包括网络连接无法识别信息,判定所述APP所处网络环境对应的预设网络状况等级为未知;
S18、若所述测试信息数据包括预设错误信息,判定所述APP所处网络环境对应的预设网络状况等级为网络未连接。
具体地,在对弱网进行分级检测的基础上,可以对弱网之外的其它网络状况也进行分级甄别,若所述测试信息数据包括网络连接无法识别信息,可以判定所述APP所处网络环境对应的预设网络状况等级为未知,若所述测试信息数据包括预设错误信息数据,所述预设错误信息数据包括域名查询错误信息(即DNS服务错误)及测试错误信息如PING读写错误信息),可以判定所述APP所处网络环境对应的预设网络状况等级为网络未连接。
请参阅如下表格1与图2,可以预先将电子设备的网络状况进行分级,例如将电子设备的预设网络状况等级划分为非常好(EXCELLENT)、良好(GOOD)、良好(POOR)、非常差(VERY POOR)、未知(UNKNOWN)及网络未连接(OFFLINE)等共6个等级,其中,预设网络状况等级为良好(POOR)及非常差(VERYPOOR)的情形即为弱网,进而根据网络的多个维度的数据指标,如网络请求失败率、网络延迟、网络吞吐量等,针对不同维度的因素,设置不同的阈值,最终确认整体网络等级,例如,如图2所示,其中,等级=POOR或VERYPOOR,即认为处于弱网环境。如下:
表格1
名称 |
网络状况说明 |
EXCELLENT |
非常好 |
GOOD |
良好 |
POOR |
差 |
VERYPOOR |
非常差 |
UNKNOWN |
未知 |
OFFLINE |
网络未连接 |
在图2所示示例中,通过以上所述主动探测的结果进行判断,电子设备的网络初始状态或者无法识别的UNKNOWN(即网络状态为未知),无网络连接、dns server错误、网关错误、发送dns错误、ping读写错误等标记为OFFLINE,ping失败一次标识为VERYPOOR,dns查询成功、ping成功但出现超时和丢包标记为POOR。
请参阅图7,图7为本申请实施例提供的应用程序网络环境检测方法的第五个子流程示意图,如图7所示,在该实施例中,所述判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据的步骤包括:
S165、若所述测试信息数据未包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据、所述网络连接无法识别信息或者所述预设错误信息,判断所述首包时间是否大于或者等于预设时间阈值;
S166、若所述首包时间大于或者等于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为良好。
S167、若所述首包时间小于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为非常好。
具体地,若所述测试信息数据未包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据、所述网络连接无法识别信息或者所述预设错误信息,表明所述测试报文发送正常,进一步可根据所述测试报文的TTFB判断所述APP所处网络环境处于哪种层次的较好状态,可判断所述首包时间是否大于或者等于预设时间阈值,若所述首包时间大于或者等于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为良好,若所述首包时间小于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为非常好。请继续参阅图1,在图1所示示例中,如没有超时和丢包标记所述APP所处网络环境对应的预设网络状况为GOOD(即良好),这时候如果TTFB小于270ms,则标记所述APP所处网络环境对应的预设网络状况为EXCELLENT(即非常好)。
在一实施例中,所述判定所述APP所处网络环境为弱网的步骤之后,还包括:
启动计时器,以统计距离上次对所述APP所处网络环境进行检测的时间间隔;
若再次确定进行弱网检测,获取所述时间间隔,并判断所述时间间隔是否大于或者等于预设时间间隔阈值;
若所述时间间隔大于或者等于预设时间间隔阈值,再次执行检测所述APP所处网络环境是否为弱网的步骤。
具体地,为防止频繁触发检测,可以在一次弱网检测完成后加入时间间隔,通过设置计时器,并启动计时器,以统计距离上次检测所述APP所处网络环境是否为弱网的时间间隔,若再次确定进行弱网检测,获取所述时间间隔,并判断所述时间间隔是否大于或者等于预设时间间隔阈值,若所述时间间隔大于或者等于预设时间间隔阈值,再次执行检测所述APP所处网络环境是否为弱网的步骤,例如超过10分钟才会继续触发检测。
需要说明的是,上述各个实施例所述的应用程序网络环境检测方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
请参阅图8,图8为本申请实施例提供的应用程序网络环境检测装置的一个示意性框图。对应于上述所述应用程序网络环境检测方法,本申请实施例还提供一种应用程序网络环境检测装置。如图8所示,该应用程序网络环境检测装置包括用于执行上述所述应用程序网络环境检测方法的单元,该应用程序网络环境检测装置可以被配置于计算机设备中。具体地,请参阅图8,该应用程序网络环境检测装置80,其中,预设应用程序安装在电子设备上,所述应用程序网络环境检测装置80包括第一判断单元801、第二判断单元802、第三判断单元803、测试单元804、第四判断单元805及判定单元806。
其中,第一判断单元801,用于基于所述预设应用程序,发送网络请求,并根据所述网络请求对应的网络请求数据,判断是否满足预设检查条件,所述预设检查条件用于启动检查所述电子设备的网络连接;
第二判断单元802,用于若满足预设检查条件,获取所述电子设备的网络连接对应的网络连接信息数据,并根据所述网络连接信息数据,判断所述电子设备是否存在网络连接;
第三判断单元803,用于若所述电子设备存在网络连接,基于预设域名服务器,查询预设目标服务器对应的目标域名,并判断是否得到所述目标域名;
测试单元804,用于若得到所述目标域名,根据所述目标域名,向所述目标域名对应的所述预设目标服务器发送测试报文,并得到对应的测试信息数据;
第四判断单元805,用于判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据;
判定单元806,用于若所述测试信息数据包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境为弱网。
在一实施例中,所述第一判断单元801包括:
第一判断子单元,用于根据所述网络请求对应的网络请求数据,判断所述网络请求对应的请求结果是否为失败;
统计子单元,用于若所述请求结果为失败,统计所述网络请求连续失败对应的连续失败次数,并判断所述连续失败次数是否大于或者等于预设次数阈值;
第一判定子单元,用于若所述连续失败次数大于或者等于预设次数阈值,判定满足所述预设检查条件;
第二判断子单元,用于若所述网络请求成功,判断所述网络请求的首包时间是否大于或者等于预设LINE阈值;
第二判定子单元,用于若所述首包时间大于或者等于预设LINE阈值,判定满足所述预设检查条件。
在一实施例中,所述第三判断单元803包括:
第一获取子单元,用于获取预设第三方目标服务器对应的预设第三方服务器标识;
查询子单元,用于根据所述预设第三方服务器标识,向所述预设域名服务器查询所述预设第三方服务器标识对应的第三方服务器域名。
在一实施例中,所述测试单元804,具体用于根据所述第三方服务器域名,基于预设PING命令,向所述第三方服务器域名对应的所述预设第三方目标服务器发送测试报文,以得到对应的测试信息数据。
在一实施例中,所述判定单元806包括:
第三判定子单元,用于若所述测试信息数据包含测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境对应的预设网络状况等级为差;
第四判定子单元,用于若所述测试信息数据包含测试失败信息数据,判定所述应用程序所处网络环境对应的预设网络状况等级为非常差。
在一实施例中,所述测试信息数据还包括网络连接无法识别信息或者预设错误信息,所述判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据的步骤包括:
第五判定子单元,用于若所述测试信息数据包括网络连接无法识别信息,判定所述APP所处网络环境对应的预设网络状况等级为未知;
第六判定子单元,用于若所述测试信息数据包括预设错误信息,判定所述APP所处网络环境对应的预设网络状况等级为网络未连接。
在一实施例中,所述第四判断单元805包括:
第三判断子单元,用于若所述测试信息数据未包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据、所述网络连接无法识别信息或者所述预设错误信息,判断所述首包时间是否大于或者等于预设时间阈值;
第七判定子单元,用于若所述首包时间大于或者等于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为良好。
第八判定子单元,用于若所述首包时间小于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为非常好。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述应用程序网络环境检测装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述应用程序网络环境检测装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将应用程序网络环境检测装置按照需要划分为不同的单元,也可将应用程序网络环境检测装置中各单元采取不同的连接顺序和方式,以完成上述应用程序网络环境检测装置的全部或部分功能。
上述应用程序网络环境检测装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504,所述存储器也可以为易失性存储介质。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种上述应用程序网络环境检测方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种上述应用程序网络环境检测方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图9所示实施例一致,在此不再赘述。
其中,预设应用程序安装在电子设备上,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:基于所述预设应用程序,发送网络请求,并根据所述网络请求对应的网络请求数据,判断是否满足预设检查条件,所述预设检查条件用于启动检查所述电子设备的网络连接;若满足预设检查条件,获取所述电子设备的网络连接对应的网络连接信息数据,并根据所述网络连接信息数据,判断所述电子设备是否存在网络连接;若所述电子设备存在网络连接,基于预设域名服务器,查询预设目标服务器对应的目标域名,并判断是否得到所述目标域名;若得到所述目标域名,根据所述目标域名,向所述目标域名对应的所述预设目标服务器发送测试报文,并得到对应的测试信息数据;判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据;若所述测试信息数据包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境为弱网。
在一实施例中,所述处理器502在实现所述根据所述网络请求对应的网络请求数据,判断是否满足预设检查条件的步骤时,具体实现以下步骤:
根据所述网络请求对应的网络请求数据,判断所述网络请求对应的请求结果是否为失败;
若所述请求结果为失败,统计所述网络请求连续失败对应的连续失败次数,并判断所述连续失败次数是否大于或者等于预设次数阈值;
若所述连续失败次数大于或者等于预设次数阈值,判定满足所述预设检查条件;
若所述网络请求成功,判断所述网络请求的首包时间是否大于或者等于预设LINE阈值;
若所述首包时间大于或者等于预设LINE阈值,判定满足所述预设检查条件。
在一实施例中,所述处理器502在实现所述基于预设域名服务器,查询预设目标服务器对应的目标域名的步骤时,具体实现以下步骤:
获取预设第三方目标服务器对应的预设第三方服务器标识;
根据所述预设第三方服务器标识,向所述预设域名服务器查询所述预设第三方服务器标识对应的第三方服务器域名。
在一实施例中,所述处理器502在实现所述根据所述目标域名,向所述目标域名对应的所述预设目标服务器发送测试报文,并得到对应的测试信息数据的步骤时,具体实现以下步骤:
根据所述第三方服务器域名,基于预设PING命令,向所述第三方服务器域名对应的所述预设第三方目标服务器发送测试报文,以得到对应的测试信息数据。
在一实施例中,所述处理器502在实现所述若所述测试信息数据包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境为弱网的步骤时,具体实现以下步骤:
若所述测试信息数据包含测试超时信息数据或者测试丢包信息数据,判定所述应用程序所处网络环境对应的预设网络状况等级为差;
若所述测试信息数据包含测试失败信息数据,判定所述应用程序所处网络环境对应的预设网络状况等级为非常差。
在一实施例中,所述测试信息数据还包括网络连接无法识别信息或者预设错误信息,所述处理器502在实现所述判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据的步骤时,具体实现以下步骤:
若所述测试信息数据包括网络连接无法识别信息,判定所述APP所处网络环境对应的预设网络状况等级为未知;
若所述测试信息数据包括预设错误信息,判定所述APP所处网络环境对应的预设网络状况等级为网络未连接。
在一实施例中,所述处理器502在实现所述判断所述测试信息数据是否包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据的步骤时,具体实现以下步骤:
若所述测试信息数据未包含测试失败信息数据、测试超时信息数据或者测试丢包信息数据、所述网络连接无法识别信息或者所述预设错误信息,判断所述首包时间是否大于或者等于预设时间阈值;
若所述首包时间大于或者等于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为良好。
若所述首包时间小于预设时间阈值,判定所述APP所处网络环境对应的预设网络状况等级为非常好。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessingUnit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的所述应用程序网络环境检测方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储计算机程序的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。