一种服务器的检测方法和装置与流程

文档序号:18464158发布日期:2019-08-17 02:18阅读:219来源:国知局
一种服务器的检测方法和装置与流程

本发明涉及互联网技术领域,特别是涉及一种服务器的检测方法和一种服务器的检测装置。



背景技术:

运营中的游戏基本上每周都会有版本更新,同时涉及服务器和客户端的更新。其中,服务器的更新需要停服,也即是关闭服务器,并上传最新的代码、资源等,客户端的更新通常通过patch(补丁)形式,服务器更新完成后会重新开启服务器,但由于人为或机器的原因可能导致服务器存在异常,此时测试人员需要验证服务器是否正常开启。

以往服务器的验证方式,是通过在游戏里手动连接服务器来验证服务器是否正常开启成功,具体可参照图1所示一种游戏的维护流程图,验证过程包括开始停机、备份、更新并重启、限制ip开启测试服(测试服务器)、验证测试服、开启全服ip(全部服务器)、验证服务器是否已经全部开启和维护结束,过程繁琐,并且耗费时间较多、容易误操作。并且,没有一套完整机制去保证所有服务器均已经正常运作,可能导致玩家无法登录从而造成流失。



技术实现要素:

鉴于上述问题,提出了本发明实施例,以便提供一种服务器的检测方法和相应的一种服务器的检测装置,以实现自动脚本执行快速检查所有服务器故障,降低维护成本。

为了解决上述问题,本发明实施例公开了一种服务器的检测方法,包括:

当触发服务器检测任务时,获取服务器列表,所述服务器列表包括服务器的连接信息;

通过所述连接信息与相应的服务器建立连接;

当与所述服务器建立连接失败时,将所述服务器作为待确认服务器;

获取所述待确认服务器的在线人数;

采用所述在线人数对所述待确认服务器进行检测。

优选地,通过如下方式判断是否与所述服务器建立连接:

记录与所述服务器建立连接的连接时长;

判断所述连接时长是否超过预设时长;

若所述连接时长超过预设时长,则判断为所述服务器建立连接失败。

优选地,所述采用所述在线人数对所述待确认服务器进行检测的步骤,包括:

若所述在线人数为零,则确定所述待确认服务器存在故障,并记录至第一列表;

若所述在线人数不为零,则确定所述待确认服务器疑似故障,并记录至第二列表。

优选地,在所述获取服务器列表的步骤之后,还包括:

确定服务器筛选条件;

采用所述服务器筛选条件从所述服务器列表中筛选出目标服务器。

优选地,所述连接信息包括ip地址和登录端口。

优选地,在所述当触发服务器检测任务时,获取服务器列表的步骤之前,还包括:

创建服务器检测任务,所述服务器检测任务具有对应的日程表;

按照所述日程表触发服务器检测任务。

优选地,在所述当触发服务器检测任务时,获取服务器列表的步骤之前,还包括:

创建服务器检测任务;

当测试机器从内部网络切换至外部网络时,触发服务器检测任务。

本发明实施例还公开了一种服务器的检测装置,包括:

服务器列表获取模块,用于当触发服务器检测任务时,获取服务器列表,所述服务器列表包括服务器的连接信息;

连接建立模块,用于通过所述连接信息与相应的服务器建立连接;

待确认服务器确定模块,用于当与所述服务器建立连接失败时,将所述服务器作为待确认服务器;

在线人数获取模块,用于获取所述待确认服务器的在线人数;

服务器检测模块,用于采用所述在线人数对所述待确认服务器进行检测。

本发明实施例还公开了一种电子设备,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上所述的一个或多个的方法。

本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。

本发明实施例包括以下优点:

本发明实施例当触发服务器检测任务时获取服务器列表,并通过服务器列表中的服务器连接信息与相应的服务器建立连接以确定服务器是否正常运行,当与服务器建立连接失败时,将建立连接失败的服务器作为待确认服务器,并获取待确认服务器的在线人数,以采用在线人数对待确认服务器进行进一步的故障检测,应用本发明实施例可以基于服务器列表中的连接信息快速并自动完成对服务器的初步检测,并且在完成初步检测后确认为异常运行的待确认服务器基于在线人数进行进一步检测,使得服务器的检测结果更加准确,为所有服务器能够正常运作提供保障。除此之外,由于本发明实施例是通过脚本自动触发服务器检测任务并完成相应检测,因此无需人工完成,可以节省维护成本。

附图说明

图1是一种游戏的维护流程图;

图2是一种游戏的服务器显示列表的示意图;

图3是一种服务器检测脚本编写的示意图;

图4是本发明的一种服务器的检测方法实施例的步骤流程图;

图5是本发明的另一种服务器的检测方法实施例的步骤流程图;

图6是本发明的一种服务器检测是否存在故障的示意图;

图7是本发明的一种服务器的检测装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

下面对于目前的两种服务器验证方案进行介绍。

方案一:由测试人员手动操作完成必须要启动的客户端,输入账号密码,完成登录验证流程后,选择需要进行验证的服务器进行连接来确认服务器是否正常开启。方案一存在耗费时间长,耗费较多人力的问题,在服务器比较多的情况下,例如对于某些网页游戏,参照图2,动辄有上千个服务器,手动完成所有服务器确认并不现实。

方案一存在的问题是:1、在服务器越来越多的情况下,确认单个服务器最快也需要几秒钟时间,完成全部服务器的登录操作耗费时间长。例如,网页游戏普遍都有1000+个服务器,用方案一完成所有服务器的验证,最快也得一个小时以上;2、手工操作容易造成误操作,并且难以保证前后测试环境一致。

方案二:基于ui(userinterface,用户界面)识别的自动化工具完成,由测试人员利用airtest、skuli等工具进行服务器检测脚本的开发(录制、编辑),具体如图3所示,然后放入jenkins等持续集成工具上管理,运行结束后即可得到服务器的验证结果。

方案二存在的问题是:1、基于ui识别的自动化流程,如果迭代了界面则需要重新去录制自动化脚本,维护成本高;2、需要长时间开启测试机器以长时间执行测试任务,与方案一相比,也只是省去人力操作带来的成本,对于时间的耗费方面并无本质区别。研究表明,服务器维护时间越长,玩家就此流失的概率越大。

针对上述问题,提出本发明实施例的核心构思之一在于,在触发服务器检测任务后,获取服务器列表,自动遍历服务器列表服务器的连接信息连接所有服务器以快速确定是否正常运作,若否则得到待确认服务器,获取待确认服务器的在线人数,以进一步根据在线人数对待确认服务器进行故障检测,可以更直接地验证服务器的运行情况,通过连接服务器和在线人数对服务器进行双重故障检测,使得服务器的检测结果更加准确。

参照图4,示出了本发明的一种服务器的检测方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,当触发服务器检测任务时,获取服务器列表,所述服务器列表包括服务器的连接信息;

本发明实施例可应用于云计算和大数据场景中,比如大型网页游戏,大型网页游戏通常由大批量的服务器和其它设备构成服务器集群,测试人员需要确认该集群中服务器的状态,以获知每个服务器是否能够正常运行。本发明实施例通过部署测试机器对集群中的服务器进行检测。

需要说明的是,本发明实施例中用于检测的测试机器可以是集群中的服务器,可以由测试人员预先设置,当然,测试机器也可以是预先配置的专用于检测集群的终端设备,本发明实施例对此无需加以限制。

在具体实现中,测试人员编写服务器检测任务的脚本,并将脚本写入测试机器中,当满足一定条件时触发脚本运行,测试机器开始执行服务器检测任务。其中,服务器检测任务可以通过多种方式触发,比如按照设定的时间,或者根据当前的测试环境等。

当触发服务器检测任务时,测试机器访问对应的链接下载到所需要进行测试的游戏最新的服务器列表(server.txt),后解析该文件,用正则匹配等方式提取服务器的连接信息,即服务器ip地址和登录端口。

步骤102,通过所述连接信息与相应的服务器建立连接;

在解析得到服务器的连接信息后,测试机器将基于连接信息尝试与服务器建立连接,以确定服务器是否正常运行,如果通过连接信息与相应的服务器建立连接成功,则确定为服务器正常运行,反之,如果通过连接信息与相应的服务器建立连接失败,则确定为服务器异常运行。

步骤103,当与所述服务器建立连接失败时,将所述服务器作为待确认服务器;

在本发明实施例中,测试机器如果通过连接信息与相应的服务器建立连接失败时,可以确定为服务器异常运行,那么将这些服务器作为待确认服务器,因为在服务器的运行过程中,比如网络波动等原因,都有可能导致连接失败,如果直接将服务器判定为异常并不准确,因此本发明实施例还将进一步针对连接失败的服务器,即待确认服务器进行进一步的故障检测。

步骤104,获取所述待确认服务器的在线人数;

对于确定为待确认服务器的服务器,测试机器可通过用http(hypertexttransferprotocol,超文本传输协议)方式访问在线人数平台接口,获取各个待确认服务器对应的在线人数。

步骤105,采用所述在线人数对所述待确认服务器进行检测。

在获取到在线人数后,测试机器将基于在线人数进一步对于待确认服务器进行故障检测,以最终确定出较大可能存在故障的服务器,对测试人员进行提醒。

本发明实施例当触发服务器检测任务时获取服务器列表,并通过服务器列表中的服务器连接信息与相应的服务器建立连接以确定服务器是否正常运行,当与服务器建立连接失败时,将建立连接失败的服务器作为待确认服务器,并获取待确认服务器的在线人数,以采用在线人数对待确认服务器进行进一步的故障检测,应用本发明实施例可以基于服务器列表中的连接信息快速并自动完成对服务器的初步检测,并且在完成初步检测后确认为异常运行的待确认服务器基于在线人数进行进一步检测,使得服务器的检测结果更加准确,为所有服务器能够正常运作提供保障。

参照图5,示出了本发明的另一种服务器的检测方法实施例的步骤流程图,具体可以包括如下步骤:

步骤201,当触发服务器检测任务时,获取服务器列表,所述服务器列表包括服务器的连接信息;

本发明实施例的服务器检测任务可以有如下两种触发方式,分别是:

a、创建服务器检测任务,所述服务器检测任务具有对应的日程表;测试机器按照所述日程表触发服务器检测任务。具体地,a方式为jenkins触发,在jenkins创建一服务器检测任务,该任务设置有一日程表,比如设置为针对某个游戏每隔一个小时运行一次,jenkins启动该任务后,基于对应设置的日程表的时间执行检查任务。

b:创建服务器检测任务;当测试机器从内部网络切换至外部网络时,触发服务器检测任务。具体地,b方式为测试机器由内部网络切换至外部网络触发,比如,将脚本放置在测试机器中,因为通常测试机器默认连接的网络是内部网络,当检测到测试机器切换至外部网络时,运行脚本开启服务器检测任务。在一种实施方式中,可以在测试机器上安装无线网卡,使得主机拥有连接wifi的功能,让主机连接热点切换至外部网络。

在本发明实施例中,在触发服务器检测任务后,测试机器通过正则匹配获取服务器列表里有关服务器ip地址和登录端口等连接信息,并使用python-telnetlib库中的telnet(远程登录)方法建立连接,将建立连接失败的服务器的id进行记录。

本发明实施例利用服务器启动正常进程完备才会打开登录接口的规则,通过脚本telnet所有服务器的ip地址和登录端口,从而能够快速遍历所有服务器是否正常运作。

在本发明的一种优选实施例中,在所述步骤201之后还可以包括如下步骤:

确定服务器筛选条件;

采用所述服务器筛选条件从所述服务器列表中筛选出目标服务器。

在本发明实施例中,测试机器通过正则匹配从服务器列表中获取服务器的连接信息后,还可根据服务器筛选条件从服务器列表筛选出目标服务器,并获取目标服务器的连接信息。

比如针对某个网页游戏,由于其测试服务器的id小于100,则可以设置服务器筛选条件为去掉id小于100的测试服务器,然后根据筛选条件去掉id小于100的测试服务器,得到所有需要检查的目标服务器ip地址和登录端口。

当然,在本发明实施例中可以根据所需要检测的游戏设定其他的服务器筛选条件,比如可以设置服务器筛选条件为去掉已经被合并的服务器,则可以根据筛选条件去掉已经被合并的服务器,本发明实施例对此无需加以限制。

其中,合并的服务器是指合服,游戏会根据服务器的人数定期会进行合服,简单而言就是将两个服务器的数据合成一个,但由于游戏合并之后入口(ip地址和登录端口)会保留,比如a服务器和b服务器合成一个新的c服务器,入口还是a服务器和b服务器,但是a服务器和b服务器的入口都指向c服务器(一般来说c服务器会取a服务器、b服务器其中一个作为入口),因此只需要检测一个有效的入口即可。

步骤202,通过所述连接信息与相应的服务器建立连接;

步骤203,当与所述服务器建立连接失败时,将所述服务器作为待确认服务器;

在本发明实施例中,测试机器通过连接信息与相应的服务器建立连接,并在连接失败后,将连接失败的服务器作为待确认服务器作进一步的确认。

具体地,可以通过如下方式判断是否与所述服务器建立连接:

记录与所述服务器建立连接的连接时长;

判断所述连接时长是否超过预设时长;

若所述连接时长超过预设时长,则判断为所述服务器建立连接失败;

在本发明实施例中,可以逐一用telnet方法与服务器远程建立连接,为避免偶尔的网络波动,预设连接时间为5秒,5秒若连接不成功则认为连接失败,并将该服务器作为待确认服务器记录在问题服务器列表中。当然,在具体实施过程时,也可以采用其他方式来确定是否与服务器建立连接失败,本发明实施例对此无需加以限制。

步骤204,获取所述待确认服务器的在线人数;

本发明实施例对于待确认服务器,将获取到相应的在线人数以进一步确定该服务器是否故障。

步骤205,若所述在线人数为零,则确定所述待确认服务器存在故障,并记录至第一列表;若所述在线人数不为零,则确定所述待确认服务器疑似故障,并记录至第二列表。

对于待确认服务器,测试机器通过http方式访问在线人数平台接口,获取问题服务器列表中待确认服务器的在线人数,若在线人数为0,即认为该服务器很可能存在问题,则将该服务器记录到fail_list(第一列表),若在线人数不为0,也不能排除该服务器没有问题,有可能玩家是在发生登录故障之前登录的,则将该服务器记录到confirm_list(第二列表)。

fail_list和confirm_list两个列表中的服务器都是疑似存在问题的,其中,fail_list是重点需要关注的,confirm_list需要关注的程度可弱于fail_list。

随后,测试机器将fail_list和confirm_list这两个列表通过调用通知接口发送到开发组成员,让测试人员获知哪些服务器可能存在登录故障问题。测试人员可根据实际情况针对列表中的任意服务器,打开测试机器进行登录测试,若测试结果不通过,则可以确定列表中的服务器存在登录问题,再通知服务器管理员和技术人员进行查证。

综上可知,本发明实施例提出的快速检测服务器是否存在故障的方法,利用服务器启动正常进程完备才会打开登录端口的规则,测试机器通过脚本telnet登录所有服务器ip地址和登录端口(登录接口),快速遍历所有服务器是否正常运作。检测流程变更为:只需要运行测试机器的脚本,脚本会自动获取最新的服务器列表,并且遍历列表里所有服务器的登录接口,自动快速地完成确认功能,执行时间控制在一分钟左右。并且,考虑到仅利用登录接口的方式,可能会忽略因为一些网络波动造成短暂无法连接的服务器,因此加上对服务器在线人数的获取进行进一步判断,双重判断可以更直接地说明结果的正确性。由于本发明实施例完全基于代码和接口的调用,可维护性和可移植性高。

为使本领域技术人员更好地理解本发明实施例,以下采用具体的示例进行说明。参照图6,所示本发明实施例的一种服务器检测是否存在故障的示意图,具体包括如下步骤:

1、服务器检测任务触发

在本示例中有两种触发方式,分别是:a.由jenkins根据设定的定时任务触发,b.切换至外网环境后手动触发。

jenkins触发:在jenkins创建一个服务器检测任务,该任务设定一日程表,比如设置为针对某个游戏每隔一个小时运行一次,jenkins启动该任务后,基于对应设置的日程表的时间执行检查任务。

外部网络触发:测试机器由内部网络切换至外部网络触发,比如,将脚本放置在测试机器中,因为通常测试机器默认连接的网络是内部网络,当检测到测试机器切换至外部网络时,运行脚本开启服务器检测任务。

2、请求最新的服务器列表

测试机器访问对应的链接下载服务器列表(server.txt)。

3、解析服务器列表

下载到服务器列表后解析该文件,测试机器用正则匹配提取服务器登录进程ip地址和端口等连接数据,优选地,可以基于服务器筛选条件筛选出需要检查的服务器ip地址和登录端口。

4、检查所有服务器ip地址和登录端口

测试机器逐一用telnet方式与服务器远程建立连接,为避免偶尔的网络波动,设置连接超时时间为5秒,5秒若连接不成功则认为连接失败,并将该服务器作为待确认服务器记录到问题服务器列表。

5、获取在线人数

测试机器通过用http方式访问服务器的在线人数平台接口,获取问题服务器列表里对应的待确认服务器的在线人数。

6、在线人数判断

若在线人数为0,即认为该服务器很可能存在问题,则将该服务器记录到fail_list,若在线人数不为0,也不能排除该服务器没有问题,有可能玩家是在发生登录故障之前登录的,则将该服务器记录到confirm_list。

7、返回结果

测试机器将fail_list和confirm_list这两个列表通过调用通知接口,发送到开发组成员,比如可以发送到内部的聊天群中,让开发成员获知哪些服务器可能存在登录故障问题。开发人员可以进一步根据实际需求,对于两个列表中的服务器进行进一步检测。

本发明实施例可以利用脚本自动触发服务器检测任务,运行效率优化,节约了测试人员重复执行确认过程的人力成本,并大大减少了测试耗费的时间,本发明实施例针对网页游戏这种频繁开服的需求的游戏,可以通过切换到外部网络的操作,触发执行服务器检测任务,使得快速确认所有服务器能否登录成为可能,大大减少每周的停机维护时间,有助于提高玩家留存率。除此之外,本发明实施例的服务器检测任务通过脚本建立,测试脚本的制作和维护成本非常低,执行方法简单直接。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图7,示出了本发明的一种服务器的检测装置实施例的结构框图,具体可以包括如下模块:

服务器列表获取模块301,用于当触发服务器检测任务时,获取服务器列表,所述服务器列表包括服务器的连接信息;

连接建立模块302,用于通过所述连接信息与相应的服务器建立连接;

待确认服务器确定模块303,用于当与所述服务器建立连接失败时,将所述服务器作为待确认服务器;

在线人数获取模块304,用于获取所述待确认服务器的在线人数;

服务器检测模块305,用于采用所述在线人数对所述待确认服务器进行检测。

在本发明的一种优选实施例中,所述装置还包括:

连接时长记录模块,用于记录与所述服务器建立连接的连接时长;

连接时长判断模块,用于判断所述连接时长是否超过预设时长;

连接失败确定模块,用于若所述连接时长超过预设时长,则判断为所述服务器建立连接失败。

在本发明的一种优选实施例中,所述服务器检测模块305,包括:

第一列表记录子模块,用于若所述在线人数为零,则确定所述待确认服务器存在故障,并记录至第一列表;

第二列表记录子模块,用于若所述在线人数不为零,则确定所述待确认服务器疑似故障,并记录至第二列表。

在本发明的一种优选实施例中,所述装置还包括:

服务器筛选条件确定模块,用于确定服务器筛选条件;

目标服务器筛选模块,用于采用所述服务器筛选条件从所述服务器列表中筛选出目标服务器。

在本发明的一种优选实施例中,所述连接信息包括ip地址和登录端口。

在本发明的一种优选实施例中,所述装置还包括:

第一任务创建模块,用于创建服务器检测任务,所述服务器检测任务具有对应的日程表;

第一任务触发模块,用于按照所述日程表触发服务器检测任务。

在本发明的一种优选实施例中,所述装置还包括:

第二任务创建模块,用于创建服务器检测任务;

第二任务触发模块,用于当测试机器从内部网络切换至外部网络时,触发服务器检测任务。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种电子设备,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法。

本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种服务器的检测方法和一种服务器的检测装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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