异步消息监控方法和装置制造方法及图纸

技术编号:18668089 阅读:27 留言:0更新日期:2018-08-14 20:35
本发明专利技术涉及一种异步消息监控方法和装置。所述方法包括:通过主线程获取异步消息,加入异步消息集合;创建异步调用线程,从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。根据标识对象自动、快速准确的获取了异步消息执行路径中各函数地址的状态信息。

Asynchronous message monitoring method and device

The invention relates to an asynchronous message monitoring method and device. The method comprises: acquiring asynchronous messages through the main thread, adding an asynchronous message set, creating an asynchronous calling thread, acquiring asynchronous messages from the asynchronous message set, creating an identification object corresponding to the asynchronous message, and injecting the identification object into the asynchronous message; and acquiring the identification object by the identification object. The pointer address of the asynchronous message performs the asynchronous message callback operation according to the pointer address, records the status information of each callback function address in the execution path of the asynchronous message callback operation, passes the identification object to the main thread through the asynchronous calling thread, and destroys the asynchronous message callback operation. The calling thread reads the identification object to obtain the status information of the callback function address in the execution path of the asynchronous message. According to the identification object, the state information of each function address in the asynchronous message execution path can be obtained automatically, quickly and accurately.

【技术实现步骤摘要】
异步消息监控方法和装置
本专利技术涉及计算机应用领域,特别是涉及一种异步消息监控方法和装置。
技术介绍
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。传统的接口测试采用异步测试时,需要采用时间等待来确定异步消息是否完结,而等待时间设置的不合适,容易出现错误,无法准确获取异步消息的执行的路径信息。
技术实现思路
本专利技术实施例提供一种异步消息监控方法和装置,可以快速准确的获取异步消息的执行的路径信息。一种异步消息监控方法,包括:通过主线程获取异步消息,将所述异步消息加入异步消息集合;创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象进行以获取所述异步消息的执行路径中回调的函数地址的状态信息。一种异步消息监控装置,包括:异步消息抓取模块,用于通过主线程获取异步消息,将所述异步消息加入异步消息集合;标识对象注入模块,用于创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;回调执行模块,用于通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;状态信息获取模块,用于通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象进行以获取所述异步消息的执行路径中回调的函数地址的状态信息。上述异步消息监控方法和装置,通过主线程获取异步消息,并将异步消息加入异步消息集合中,并创建异步消息处理的异步调用线程,通过异步调用线程获取异步消息,并创建与异步消息对应的标识对象,将标识对象注入到异步消息,通过标识对象记录异步消息回调操作的执行路径中各个回调的函数地址的状态信息,将标识对象传递给主线程,由主线程根据标识对象获取该异步消息的执行路径中回调的函数地址的状态信息,从而自动、快速准确的获取了异步消息执行路径中各函数地址的状态信息。附图说明图1为一个实施例中计算机设备的内部结构示意图;图2为一个实施例中异步消息监控方法的流程图;图3为另一个实施例中异步消息监控方法的流程图;图4为一个实施例中异步消息监控装置的结构框图;图5为另一个实施例中异步消息监控装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。可以理解,本专利技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本专利技术的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。图1为一个实施例中计算机设备的内部结构示意图。如图1所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统和异步消息监控装置,该异步消息监控装置用于实现适用于计算机设备的一种异步消息监控方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的内存储器为非易失性存储介质中的异步消息监控装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种异步消息监控方法。该计算机设备的网络接口用于据以与外部的计算机设备通过网络连接通信,比如接收计算机设备发送测试请求以及向计算机设备返回响应结果等。计算机设备可以用独立的计算机设备或者是多个计算机设备组成的计算机设备集群来实现。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。图2为一个实施例中异步消息监控方法的流程图。如图2所示,一种异步消息监控方法,包括步骤202至步骤208。其中:步骤202,通过主线程获取异步消息,将所述异步消息加入异步消息集合。一个程序启动时就有一个进程被操作系统创建,同时一个线程也立即运行,该线程则为该程序的主线程。本实施例中,主线程可为接口测试程序的主线程。主线程获取到接口消息后,判断该接口消息是否为异步消息,若是,则将异步消息加入异步消息集合,若否,则表示为同步消息,执行同步函数调用,测试结束。异步消息是指通过异步调用的消息,即会重新起一个线程或进程执行函数调用的消息。异步调用是指两个通信应用之间可以不用同时在线等待,任何一方只需各自处理自己的业务,比如发送方发送消息以后不用等接收方的响应,可以接着处理其他的任务。异步消息集合中记录了异步消息。异步消息集合可以以堆栈或队列方式存在。同步消息是指通过同步方式实现的消息,即一个线程或进程中顺序调用的消息。同步方式是指两个通信应用服务之间必须要进行同步,两个服务之间必须都是正常运行的。发送程序和接收程序都必须一直处于运行状态,并且随时做好相互通信的准备。发送程序首先向接收程序发起一个请求,称之为发送消息,发送程序紧接着就会堵塞当前自身的进程,不与其他应用进行任何的通信以及交互,等待接收程序的响应,待发送消息得到接收程序的返回消息之后会继续向下运行,进行下一步的业务处理。步骤204,创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息。本实施例中,每次创建一个异步调用线程从异步消息集合中获取一个异步消息。然后创建一个与该异步消息对应的标识对象,并将该标识对象注入到该异步消息中。该标识对象是用于唯一表示异步消息的。该标识对象具有轮询地址的功能,能够轮询被注入的异步消息中的回调的函数地址的状态信息。步骤206,通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息。本实施例中,异步消息的指针地址是指IMP地址(implementation),是实现object-c方法的代码块地址,可以像C函数一样直接调用。通常情况下通过[objectmethod:parameter]或objc_msgSend()的方式向对象发送消息,然后objective-C运行时寻找匹配此消息的IMP,然后调用它。[objectmethod:parameter]是Object-C语言消息传递调用的方法。objc_msgS本文档来自技高网...

【技术保护点】
1.一种异步消息监控方法,包括:通过主线程获取异步消息,将所述异步消息加入异步消息集合;创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;通过所述异步调用线程将所述标识对象传递到所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。

【技术特征摘要】
1.一种异步消息监控方法,包括:通过主线程获取异步消息,将所述异步消息加入异步消息集合;创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;通过所述异步调用线程将所述标识对象传递到所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。2.根据权利要求1所述的方法,其特征在于,所述记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息,包括:通过所述标识对象轮询所述异步消息的回调的函数地址,检测所述回调的函数地址是否被释放;若所述回调的函数地址未被释放,则通过所述标识对象获取并保存执行路径中回调的函数地址的状态信息,并轮询所述回调的函数地址的下一级的回调的函数地址;若所述回调的函数地址被释放,则返回到所述回调的函数地址的上一级的回调的函数地址,判断回调操作是否结束;若所述回调操作结束,则通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。3.根据权利要求2所述的方法,其特征在于,在通过所述标识对象获取并保存执行路径的状态信息之后,所述方法还包括:获取所述异步消息的时间戳;根据所述时间戳判断是否超时,若未超时,则执行所述轮询所述回调的函数地址的下一级的回调的函数地址的步骤,若超时,则执行所述通过所述标识对象获取所述异步消息的指针地址,执行所述异步消息回调的步骤。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:若所述回调操作未结束,则继续执行通过所述标识对象轮询所述异步消息的回调的函数地址,检测所述回调的函数地址是否被释放的步骤。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断所述异步消息集合是否为空,若是,则结束,若否,则继续执行创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息的步骤。6.根据权利要求1所述的方法,其特征在于,所述将所述标识对象注入到所述异步消息,包括:通过挂钩函数建立所述标识对象与所述异步消息的映射关系。7.一种异步消息监控装置,...

【专利技术属性】
技术研发人员:程春林
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1