本发明实施例涉及网络通信技术领域,具体涉及一种消息推送到达率的自动校验方法及装置。
背景技术
在即时通讯(im)的im接口测试中,经常会遇到这个场景:如何校验在多人同时在线,高并发的时候,发消息的到达率以及对方的收到时间。该场景其实是衡量的异步调用的接口性能,以微信为例,消息发出去就会返回给client(客户端)成功,但是并不意味这消息已经发给到了对方。同时这个也是衡量im后台服务器的推送能力的最直接的一个场景。
目前,现有技术中结合该场景直接的做法是去后台统计server(服务器)的推送日志,查看日志中共推送了多少条消息,同时每中消息推送了多少。
但是,现有技术的做法不能全部自动化校验,同时对于处理大文件日志的效率并不会高,不具有实时性,并且只是推送出去了,并不知道对应客户端是否真正的收到了通知。
鉴于此,如何对消息推送到达率进行自动校验成为目前需要解决的技术问题。
技术实现要素:
由于现有方法存在上述问题,本发明实施例提出一种消息推送到达率的自动校验方法及装置。
第一方面,本发明实施例提出一种消息推送到达率的自动校验方法,包括:
模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息;
利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库;
根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验;
将通过比对校验的正常到达的推送结果进行统计展示。
可选地,所述回调消息的内容,包括:是否将消息推送给客户端以及将消息推送给了哪一个客户端。
可选地,在利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库之后,所述方法还包括:
若超过预设时间段后,根据所述本地数据库中保存的回调消息的内容,确定还有消息推送未推送完毕,则显示错误,记录已经推送完毕的消息的数量,并去消息任务队列查看未推送完毕的消息属于哪些实例。
可选地,在利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息之前,所述方法还包括:
向服务器发送注册请求,以使所述服务器根据所述注册请求注册一个回调接口。
第二方面,本发明实施例还提出一种消息推送到达率的自动校验装置,包括:
模拟模块,用于模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息;
接收模块,用于利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库;
校验模块,用于根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验;
展示模块,用于将通过比对校验的正常到达的推送结果进行统计展示。
可选地,所述回调消息的内容,包括:是否将消息推送给客户端以及将消息推送给了哪一个客户端。
可选地,所述装置还包括:
显示模块,用于若超过预设时间段后,根据所述本地数据库中保存的回调消息的内容,确定还有消息推送未推送完毕,则显示错误,记录已经推送完毕的消息的数量,并去消息任务队列查看未推送完毕的消息属于哪些实例。
可选地,所述装置还包括:
发送模块,用于向服务器发送注册请求,以使所述服务器根据所述注册请求注册一个回调接口。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器、总线及存储在存储器上并可在第处理器上运行的计算机程序;
其中,所述处理器,存储器通过所述总线完成相互间的通信;
所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。
由上述技术方案可知,本发明实施例提供的一种消息推送到达率的自动校验方法及装置,通过模拟客户端向服务器发送触发请求使服务器向多个客户端推送消息,利用在服务器中预先注册的回调接口接收服务器向多个客户端推送消息后发送的回调消息,并将回调消息的内容保存到本地数据库,根据本地数据库中保存的回调消息的内容确定消息推送数量,并将消息推送数量与预先设置的预期结果进行比对校验,将通过比对校验的正常到达的推送结果进行统计展示,由此,能够真正直接的反馈当前系统(服务器)的消息推送能力,以及消息是否有积压,并全程做到自动化,不需要人工干预,具有实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种消息推送到达率的自动校验方法的流程示意图;
图2为本发明一实施例提供的一种消息推送到达率的自动校验装置的结构示意图;
图3为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种消息推送到达率的自动校验方法的流程示意图,如图1所示,本实施例的消息推送到达率的自动校验方法,包括:
s1、模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息。
可以理解的是,所述服务器是异步地向多个客户端推送消息。
可以理解的是,在现有技术中是客户端向服务器发送触发请求后,服务器向多个客户端推送消息,本实施例是通过在服务器本地增加一个校验方(所述校验方可以为服务器/处理器等),所述校验方模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息。
s2、利用在所述服务器中预先注册的回调(callback)接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库。
具体地,所述回调消息的内容,可以包括:是否将消息推送给客户端以及将消息推送给了哪一个客户端等。
s3、根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验。
s4、将通过比对校验的正常到达的推送结果进行统计展示。
可以理解的是,本步骤中可以统计消息推送的到达率。
本实施例提供的一种消息推送到达率的自动校验方法,通过增加了一个校验方,来模拟客户端向服务器发送触发请求使服务器向多个客户端推送消息,利用在服务器中预先注册的回调接口接收服务器向多个客户端推送消息后发送的回调消息,并将回调消息的内容保存到本地数据库,根据本地数据库中保存的回调消息的内容确定消息推送数量,并将消息推送数量与预先设置的预期结果进行比对校验,将通过比对校验的正常到达的推送结果进行统计展示,由此,能够真正直接的反馈当前系统(服务器)的消息推送能力,以及消息是否有积压,并全程做到自动化,不需要人工干预,具有实时性。
进一步地,在上述实施例的基础上,在所述步骤s2之前,本实施例所述方法还可以包括图中未示出的步骤:
向服务器发送注册请求,以使所述服务器根据所述注册请求注册一个回调(callback)接口。
由此,所述步骤s2可以利用所述回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息。
进一步地,在上述实施例的基础上,在所述步骤s2之后,本实施例所述方法还可以包括图中未示出的步骤:
若超过预设时间段后,根据所述本地数据库中保存的回调消息的内容,确定还有消息推送未推送完毕,则显示错误error,记录已经推送完毕的消息的数量,并去消息任务队列(kafka)查看未推送完毕的消息属于哪些实例。
在具体应用中,举例来说,所述预设时间段可以为10分钟,本实施例并不对其进行限制,可根据实际情况进行设置。
可以理解的是,去消息任务队列查看未推送完毕的消息属于哪些实例,可以确定哪些实例的未消费完毕的消息数量较多,从而可以知道需要优化的模块。
本实施例提供的一种消息推送到达率的自动校验方法,能够真正直接的反馈当前系统(服务器)的消息推送能力,以及消息是否有积压,并全程做到自动化,不需要人工干预,具有实时性。
图2示出了本发明一实施例提供的一种消息推送到达率的自动校验装置的结构示意图,如图2所示,本实施例的消息推送到达率的自动校验装置,包括:模拟模块21、接收模块22、校验模块23和展示模块24;其中:
所述模拟模块21,用于模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息;
所述接收模块22,用于利用在所述服务器中预先注册的回调(callback)接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库;
所述校验模块23,用于根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验;
所述展示模块24,用于将通过比对校验的正常到达的推送结果进行统计展示。
可以理解的是,在现有技术中是客户端向服务器发送触发请求后,服务器向多个客户端推送消息,本实施例是通过在服务器本地增加一个校验方(即本实施例所述消息推送到达率的自动校验装置),所述校验方中的所述模拟模块21模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息;所述接收模块22利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库;所述校验模块23根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验;所述展示模块24将通过比对校验的正常到达的推送结果进行统计展示。
在具体应用中,所述回调消息的内容,可以包括:是否将消息推送给客户端以及将消息推送给了哪一个客户端等。
可以理解的是,所述服务器是异步地向多个客户端推送消息。
可以理解的是,所述展示模块24中可以统计消息推送的到达率。
本实施例提供的一种消息推送到达率的自动校验装置,通过模拟客户端向服务器发送触发请求使服务器向多个客户端推送消息,利用在服务器中预先注册的回调接口接收服务器向多个客户端推送消息后发送的回调消息,并将回调消息的内容保存到本地数据库,根据本地数据库中保存的回调消息的内容确定消息推送数量,并将消息推送数量与预先设置的预期结果进行比对校验,将通过比对校验的正常到达的推送结果进行统计展示,由此,能够真正直接的反馈当前系统(服务器)的消息推送能力,以及消息是否有积压,并全程做到自动化,不需要人工干预,具有实时性。
进一步地,在上述实施例的基础上,本实施例所述装置还可以包括图中未示出的:
发送模块,用于向服务器发送注册请求,以使所述服务器根据所述注册请求注册一个回调(callback)接口。
由此,所述接收模块22可以利用所述回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息。
进一步地,在上述实施例的基础上,本实施例所述装置还可以包括图中未示出的:
显示模块,用于若超过预设时间段后,根据所述本地数据库中保存的回调消息的内容,确定还有消息推送未推送完毕,则显示错误,记录已经推送完毕的消息的数量,并去消息任务队列(kafka)查看未推送完毕的消息属于哪些实例。
在具体应用中,举例来说,所述预设时间段可以为10分钟,本实施例并不对其进行限制,可根据实际情况进行设置。
可以理解的是,所述显示模块去消息任务队列查看未推送完毕的消息属于哪些实例,可以确定哪些实例的未消费完毕的消息数量较多,从而可以知道需要优化的模块。
本实施例提供的一种消息推送到达率的自动校验装置,能够真正直接的反馈当前系统(服务器)的消息推送能力,以及消息是否有积压,并全程做到自动化,不需要人工干预,具有实时性。
本实施例的消息推送到达率的自动校验装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图3示出了本发明一实施例提供的一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器301、存储器302、总线303及存储在存储器302上并可在处理器301上运行的计算机程序;
其中,所述处理器301和存储器302通过所述总线303完成相互间的通信;
所述处理器301执行所述计算机程序时实现上述方法实施例所提供的方法,例如包括:模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息;利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库;根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验;将通过比对校验的正常到达的推送结果进行统计展示。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例所提供的方法,例如包括:模拟客户端向服务器发送触发请求,以使所述服务器向多个客户端推送消息;利用在所述服务器中预先注册的回调接口,接收所述服务器向多个客户端推送消息后发送的回调消息,并将所述回调消息的内容保存到本地数据库;根据所述本地数据库中保存的回调消息的内容,确定消息推送数量,并将所述消息推送数量与预先设置的预期结果进行比对校验;将通过比对校验的正常到达的推送结果进行统计展示。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。