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.一种异步消息监控方法,包括:通过主线程获取异步消息,将所述异步消息加入异步消息集合;创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;通过所述异步调用线程将所述标识对象传递到所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。
【技术特征摘要】
1.一种异步消息监控方法,包括:通过主线程获取异步消息,将所述异步消息加入异步消息集合;创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行所述异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;通过所述异步调用线程将所述标识对象传递到所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。2.根据权利要求1所述的方法,其特征在于,所述记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息,包括:通过所述标识对象轮询所述异步消息的回调的函数地址,检测所述回调的函数地址是否被释放;若所述回调的函数地址未被释放,则通过所述标识对象获取并保存执行路径中回调的函数地址的状态信息,并轮询所述回调的函数地址的下一级的回调的函数地址;若所述回调的函数地址被释放,则返回到所述回调的函数地址的上一级的回调的函数地址,判断回调操作是否结束;若所述回调操作结束,则通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。3.根据权利要求2所述的方法,其特征在于,在通过所述标识对象获取并保存执行路径的状态信息之后,所述方法还包括:获取所述异步消息的时间戳;根据所述时间戳判断是否超时,若未超时,则执行所述轮询所述回调的函数地址的下一级的回调的函数地址的步骤,若超时,则执行所述通过所述标识对象获取所述异步消息的指针地址,执行所述异步消息回调的步骤。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:若所述回调操作未结束,则继续执行通过所述标识对象轮询所述异步消息的回调的函数地址,检测所述回调的函数地址是否被释放的步骤。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断所述异步消息集合是否为空,若是,则结束,若否,则继续执行创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息的步骤。6.根据权利要求1所述的方法,其特征在于,所述将所述标识对象注入到所述异步消息,包括:通过挂钩函数建立所述标识对象与所述异步消息的映射关系。7.一种异步消息监控装置,...
【专利技术属性】
技术研发人员:程春林,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。