CN110297748A - 一种定位调用出错的方法、装置和计算机可读存储介质 - Google Patents
一种定位调用出错的方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110297748A CN110297748A CN201810239275.9A CN201810239275A CN110297748A CN 110297748 A CN110297748 A CN 110297748A CN 201810239275 A CN201810239275 A CN 201810239275A CN 110297748 A CN110297748 A CN 110297748A
- Authority
- CN
- China
- Prior art keywords
- module
- service request
- error
- called
- debugging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试领域,提供了一种定位调用出错的方法、装置和计算机可读存储介质,以高效定位调用出错的模块。所述方法包括:获取与预设关键字匹配的业务请求号,其中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用;根据业务请求号,获取与业务请求号对应的所有调试日志;根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。本发明提供的技术方案能够直接标识出包含错误代码的模块节点,从而节省了测试人员的人力成本,提高了定位调用出错的效率。
Description
技术领域
本发明属于软件测试领域,尤其涉及一种定位调用出错的方法、装置和计算机可读存储介质。
背景技术
大型软件或大规模***中,各个模块之间的调用最为频繁。有些支付类***,单次支付流程,调用涉及到的模块平均达到20个以上。这些大型软件或大规模***在正式发布之前乃至使用中,一般都要经过测试,找出其中的bug所在后进行修正。对软件或***进行的测试可在专门的测试环境中进行,而定位模块之间的调用是否出错是测试的一项重要活动。
现有的一种定位调用出错的方法是通过日志***,按照日志中提供的关键字进行日志搜索来定位问题。
然而,上述现有的方法其实没有解决定位问题,因为,只要一个模块调用出现错误,调用返回时经过的模块,其出参中都会包含该错误对应的错误码,出现多条不同模块的出错日志,需要测试人员在清晰了解调用链路和解包日志信息,逐个排查到底是哪个或哪些模块调用出了问题,效率非常低下。
发明内容
本发明提供一种定位调用出错的方法、装置和计算机可读存储介质,以高效定位调用出错的模块。
本发明一方面提供了一种定位调用出错的方法,所述方法包括:
获取与预设关键字匹配的业务请求号,所述业务请求号唯一标识单次业务请求并对应于所述单次业务请求涉及的所有模块调用;
根据所述业务请求号,获取与所述业务请求号对应的所有调试日志;
根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
本发明一方面提供了一种定位调用出错的装置,所述装置包括:
第一获取模块,用于获取与预设关键字匹配的业务请求号,所述业务请求号唯一标识单次业务请求并对应于所述单次业务请求涉及的所有模块调用;
第二获取模块,用于根据所述业务请求号,获取与所述业务请求号对应的所有调试日志;
生成模块,用于根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
本发明一方面提供了一种计算设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取与预设关键字匹配的业务请求号,所述业务请求号唯一标识单次业务请求并对应于所述单次业务请求涉及的所有模块调用;
根据所述业务请求号,获取与所述业务请求号对应的所有调试日志;
根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
本发明实施例的一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现以下方法的步骤:
获取与预设关键字匹配的业务请求号,所述业务请求号唯一标识单次业务请求并对应于所述单次业务请求涉及的所有模块调用;
根据所述业务请求号,获取与所述业务请求号对应的所有调试日志;
根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
从上述本发明实施例提供的技术方案可知,由于能够根据与预设关键字匹配的业务请求号,最终生成包含错误码提示的模块调用关系图,而模块调用关系图能够对出现错误代码的模块节点进行标识,因此,与现有技术仅仅根据日志***进行日志搜索、需要人工进一步逐步排查来定位问题相比,本发明提供的技术方案直接标识出包含错误代码的模块节点,从而节省了测试人员的人力成本,提高了定位调用出错的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的定位调用出错的方法的实现流程示意图;
图2-a是本发明实施例提供的模块调用关系图;
图2-b是本发明另一实施例提供的模块调用关系图;
图3是本发明实施例提供的定位调用出错的装置的结构示意图;
图4是本发明实施例提供的定位调用出错的装置的结构示意图;
图5是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图6-a是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图6-b是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图6-c是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图7-a是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图7-b是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图7-c是本发明另一实施例提供的定位调用出错的装置的结构示意图;
图8是本发明实施例提供的计算设备的结构示意图;
图9-a是本发明实施例提供的定位调用出错的方法的硬件实现架构图;
图9-b是本发明另一实施例提供的定位调用出错的方法的硬件实现架构图;
图9-c是本发明另一实施例提供的定位调用出错的方法的硬件实现架构图;
图9-d是本发明另一实施例提供的定位调用出错的方法的硬件实现架构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
附图1是本发明实施例提供的定位调用出错的方法的实现流程示意图,其执行主体可以是被定位调用出错的***(例如,腾讯公司的微信支付***)所在的终端或服务器,例如,一台个人电脑或具有服务器功能的任何计算设备等。附图1示例的定位调用出错的方法主要包括以下步骤S101至S103,以下详细说明:
S101,获取与预设关键字匹配的业务请求号,其中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用。
所谓预设关键字,是测试人员为了定位错误而设置的一些与该待定位错误相关的信息,这些设置的关键字也是调试日志(调试日志是调试程序时生成的日志)中包含的信息。例如,为了定位一次线上下单购物、支付的过程中出现的模块调用错误,测试人员可以以订单号为预设关键字来定位一次线上下单购物、支付的过程中出现的模块调用错误。需要说明的是,预设关键字可以不止一个,例如,上述示例中,预设关键字还可以是UIN和商号等。
在本发明实施例中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用,业务请求号的内容包括模块调用所涉及模块的标识、16进制IP、采样级别、时间戳、端口号和序号等信息,而每一次的模块调用都会在调试日志中打印该业务请求号,因此,只要调试日志中包含有预设关键字,则就可以根据预设关键字匹配到调试日志,从而获取到与预设关键字匹配的业务请求号。
需要说明的是,调试日志可以存储在日志数据库中,可以根据发起的业务请求,向日志数据库存储调试日志。具体地,根据发起的业务请求,向日志数据库存储调试日志可通过如下步骤S1011至S1013实现:
S1011,根据发起的业务请求,采集调试日志。
如前所述,只要有业务请求,则会涉及到模块调用,而模块调用会相应地生成调试日志,因此可以根据发起的业务请求,采集调试日志。
S1012,缓存经步骤S1011采集的调试日志。
由于调试日志很多,为了减轻日志数据库的存储压力,在本发明实施例中,采集到的调试日志并不是立刻写入日志数据库,而是缓存起来。
S1013,周期性地向日志数据库批量写入缓存的调试日志。
可以根据实际场景来确定向日志数据库批量写入调试日志的周期,例如,若带宽较小或日志数据库所在的机器性能本身不高,可以将周期确定大一些,例如,可以是以3秒为周期,反之,则可以将周期确定小一些,例如以1秒为周期,经过周期为1秒或3秒的缓存时间,向日志数据库批量写入缓存的调试日志。
S102,根据经步骤S101获取的业务请求号,获取与业务请求号对应的所有调试日志。
如前所述,只要涉及到模块调用,必然会产生与该次模块调用的业务请求号,并且会在调试日志中打印出来,因此,只要获取到一个业务请求号,即可获取到与该业务请求号对应的所有调试日志。
需要说明的是,由于预设关键字并不会出现在所有打印了某个业务请求号的调试日志中,因此,仅仅根据预设关键字是无法匹配到所有打印了某个业务请求号的调试日志的。例如,某预设关键字K包含于调试日志L1、L2和L5,假设调试日志L1、L2和L5是在模块M1调用模块M2时生成,同时,这种模块调用又生成了业务请求号SeqN1,另一方面,还可能由于模块M3调用模块M5时也生成了业务请求号SeqN1并打印了调试日志L3、L4和L6,但调试日志L3、L4和L6中并不包含预设关键字K,因此,根据预设关键字K并不能获取到调试日志L3、L4和L6。由于预设关键字K包含于调试日志L1、L2和L5中,且是在模块M1调用模块M2时生成以及模块调用生成了业务请求号SeqN1,因此,根据预设关键字K,可以获取到业务请求号SeqN1,而在模块M3调用模块M5时生成了业务请求号SeqN1并打印了调试日志L3、L4和L6,因此,根据业务请求号SeqN1,就获取到了与业务请求号SeqN1对应的所有调试日志,即调试日志L1、L2、L3、L4、L5和L6。
S103,根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
作为本发明一个实施例,根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图可通过如下步骤S1031至S1033实现:
S1031,根据调试日志中模块调用的先后顺序,生成模块调用关系图。
所谓模块调用的先后顺序,可以是模块调用与被调用的关系,例如,模块A调用模块B,则可以从左至右将模块B放置在模块A的右边,若模块A调用模块B和模块C,而模块B和模块C没有调用关系,则可以将模块B和模块C都放置在模块A的右边,而模块B和模块C并列,如附图2-a是本发明实施例生成的模块调用关系图,每个模块构成模块调用关系图的每个模块节点。
S1032,将每个模块节点的入参和出参附加到模块调用关系图中以构成每个模块节点的入参节点和出参节点。
例如,附图2-a示例的模块调用关系图中,每个模块节点的入参节点采用“in”标注,而每个模块节点的出参节点采用“out”标注。
S1033,对所有模块节点的日志的出参数据进行分析,若有错误代码,则对第一个出错的模块节点进行标识。
在本发明实施例中,可在第一个出错的模块节点的出参节点处采用特殊颜色,例如红色或黑色对其标识,从而标识出相应出错的模块节点,例如,附图2-b中,黑色标识的出参节点表明相应的模块节点F出现了错误代码。
针对出现错误代码的模块节点,可以对其错误信息进行展示,即,在收到打开指令后,展示出错的模块节点的错误信息。例如,对于附图2-b的模块节点F,可以点击模块节点F或者其出参节点,则展示模块节点F的错误信息。
以下以腾讯公司的微信支付***(或手机QQ支付***)为例,进一步地说明本发明的技术方案。微信支付***主要包括对外调用接口、协议转换模块以及一些中间服务模块等,其中,对外调用接口为一次业务的入口,在微信支付***中,可通过对外调用接口调用各种服务(service),完成支付业务逻辑处理,协议转换模块完成对外调用接口与中间服务模块之间的协议转换,可提供多种机器设备的路由,中间服务模块提供某些业务逻辑处理,对外以单个服务(service)提供可供微信支付***调用的服务接口,而一个中间服务模块可存在多个服务接口,且允许服务调用服务。
如附图9-a所示,是本发明实施例提供的定位调用出错的方法的硬件实现架构图,其中,标号为901的是移动终端,其通过网络与标号为902的服务器连接,服务器902上运行定位调用出错的方法的程序,服务器902亦是被定位调用出错的***(例如,腾讯公司的微信支付***)所在的服务器,其上安装日志采集程序和日志缓存程序等,标号为903的是日志数据库(Data Base,DB),其主要用于存储调试日志。
用户(此处主要指定位调用出错的测试人员或研发人员)通过移动终端901向对外调用接口发起一条业务请求,其中包含预设关键字。由于业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用,业务请求号的内容包括模块调用所涉及模块的标识、16进制IP、采样级别、时间戳、端口号和序号等信息,而每一次的模块调用都会在调试日志中打印该业务请求号,因此,服务器902收到该业务请求后,可以根据预设关键字匹配到调试日志,从而获取到与预设关键字匹配的业务请求号。
需要说明的是,上述提及的调试日志存储于日志数据库903中。服务器902可根据来自移动终端901的业务请求,向日志数据库903存储调试日志,具体方法是服务器902中的日志采集程序根据移动终端901发起的业务请求,采集调试日志,而为了减轻日志数据库903的存储压力,服务器902中的日志缓存程序将日志采集程序采集的调试日志缓存起来,然后,周期性地向日志数据库903批量写入这些缓存的调试日志。
服务器902获取到业务请求号后,可根据获取的业务请求号,从日志数据库903获取与业务请求号对应的所有调试日志。调试日志是服务器902生成模块调用关系图的基础素材,即,服务器902可根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图,具体方法如下S1至S3:
S1,服务器902根据调试日志中模块调用的先后顺序,生成模块调用关系图。
如前所述,微信支付***包含对外调用接口、协议转换模块和多个中间服务模块,协议转换模块和中间服务模块存在调用的先后顺序,中间服务模块之间亦存在调用的先后顺序。例如,协议转换模块R中间服务模块M1,则可以从左至右中间服务模块M1放置在协议转换模块R的右边,若中间服务模块M1调用中间服务模块M2和中间服务模块M3,而中间服务模块M2和中间服务模块M3没有调用关系,则可以将中间服务模块M2和中间服务模块M3都放置在中间服务模块M1的右边,中间服务模块M2和中间服务模块M3并列,进一步地,若中间服务模块M3调用中间服务模块M4,则可将中间服务模块M4放置在中间服务模块M3的右边。需要说明的是,经步骤S1生成的模块调用关系图,每个模块构成模块调用关系图的每个模块节点。
S2,服务器902将每个模块节点的入参和出参附加到模块调用关系图中以构成每个模块节点的入参节点和出参节点。
经步骤S1生成的模块调用关系图中,每个模块节点的入参节点采用“in”标注,而每个模块节点的出参节点采用“out”标注。
S3,服务器902对所有模块节点的日志的出参数据进行分析,若有错误代码,则对第一个出错的模块节点进行标识。
例如,服务器902对所有模块节点的日志的出参数据进行分析后,可在第一个出错的模块节点的出参节点处采用特殊颜色,例如红色或黑色对其标识。针对出现错误代码的模块节点,可以对其错误信息进行展示,即,在收到经用户通过移动终端901发来的打开指令后,服务器902展示出错的模块节点的错误信息。
需要说明的是,附图9-a的架构图中,移动终端901亦可以被基于个人电脑终端的自动化测试平台代替,如附图9-b所示,是本发明另一实施例提供的定位调用出错的方法的硬件实现架构图,标号为904的是运行自动化测试平台的个人电脑终端。
另需说明的是,无论是附图9-a还是附图9-b的架构,日志数据库903可以集成于服务器902,如附图9-c和附图9-c所示本发明另一实施例提供的定位调用出错的方法的硬件实现架构图中,日志数据库905或906集成于服务器902中。
从上述附图1示例的定位调用出错的方法可知,由于能够根据与预设关键字匹配的业务请求号,最终生成包含错误码提示的模块调用关系图,而模块调用关系图能够对出现错误代码的模块节点进行标识,因此,与现有技术仅仅根据日志***进行日志搜索、需要人工进一步逐步排查来定位问题相比,本发明提供的技术方案直接标识出包含错误代码的模块节点,从而节省了测试人员的人力成本,提高了定位调用出错的效率。
图3是本发明实施例提供的定位调用出错的装置的示意图。为了便于说明书,仅示出了与本发明有关的部分。图3示例的定位调用出错的装置主要包括第一获取模块301、第二获取模块302和生成模块303,详细说明如下:
第一获取模块301,用于获取与预设关键字匹配的业务请求号,其中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用;
第二获取模块302,用于根据业务请求号,获取与业务请求号对应的所有调试日志;
生成模块303,用于根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
需要说明的是,本发明实施例提供的装置,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
附图3示例的生成模块303可以包括模调关系生成单元401、附加单元402和标识单元402,如附图4示例的定位调用出错的装置,其中:
模调关系生成单元401,用于根据调试日志中模块调用的先后顺序,生成模块调用关系图;
附加单元402,用于将每个模块节点的入参和出参附加到模块调用关系图中以构成每个模块节点的入参节点和出参节点;
标识单元403,用于对所有模块节点的日志的出参数据进行分析,若有错误代码,则对第一个出错的模块节点进行标识。
附图4示例的装置还可以包括展示模块501,如附图5示例的定位调用出错的装置。展示模块501用于在收到打开指令后,展示第一个出错的模块节点的错误信息。
附图3至附图5任一示例的定位调用出错的装置还可以包括存储模块601,如附图6-a至附图6-c任一示例的定位调用出错的装置。存储模块601用于根据发起的业务请求,向日志数据库存储调试日志。
附图6-a至附图6-c任一示例的存储模块601可以包括采集单元701、缓存单元702和写入单元703,如附图7-a至附图7-c任一示例的定位调用出错的装置,其中:
采集单元701,用于根据发起的业务请求,采集调试日志;
缓存单元702,用于缓存调试日志;
写入单元703,用于周期性地向日志数据库批量写入缓存的调试日志。
图8是本发明一实施例提供的计算设备的结构示意图。如图8所示,该实施例的计算设备8主要包括:处理器80、存储器81以及存储在存储器81中并可在处理器80上运行的计算机程序82,例如定位调用出错的方法的程序。处理器80执行计算机程序82时实现上述定位调用出错的方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,处理器80执行计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图3所示第一获取模块301、第二获取模块302和生成模块303的功能。
示例性的,定位调用出错的方法的计算机程序82主要包括:获取与预设关键字匹配的业务请求号,其中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用;根据业务请求号,获取与业务请求号对应的所有调试日志;根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。计算机程序82可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器81中,并由处理器80执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序82在计算设备8中的执行过程。例如,计算机程序82可以被分割成用户筛选模块201、特征提取模块202和输出模块203的功能(虚拟装置中的模块),各模块具体功能如下:第一获取模块301,用于获取与预设关键字匹配的业务请求号,其中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用;第二获取模块302,用于根据业务请求号,获取与业务请求号对应的所有调试日志;生成模块303,用于根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
计算设备8可包括但不仅限于处理器80、存储器81。本领域技术人员可以理解,图8仅仅是计算设备8的示例,并不构成对计算设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器81可以是计算设备8的内部存储单元,例如计算设备8的硬盘或内存。存储器81也可以是计算设备8的外部存储设备,例如计算设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器81还可以既包括计算设备8的内部存储单元也包括外部存储设备。存储器81用于存储计算机程序以及计算设备所需的其他程序和数据。存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/计算设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,定位调用出错的方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,获取与预设关键字匹配的业务请求号,其中,业务请求号唯一标识单次业务请求并对应于单次业务请求涉及的所有模块调用;根据业务请求号,获取与业务请求号对应的所有调试日志;根据与业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种定位调用出错的方法,其特征在于,所述方法包括:
获取与预设关键字匹配的业务请求号,所述业务请求号唯一标识单次业务请求并对应于所述单次业务请求涉及的所有模块调用;
根据所述业务请求号,获取与所述业务请求号对应的所有调试日志;
根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
2.如权利要求1所述定位调用出错的方法,其特征在于,所述根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图,包括:
根据所述调试日志中模块调用的先后顺序,生成模块调用关系图;
将每个模块节点的入参和出参附加到所述模块调用关系图中以构成每个模块节点的入参节点和出参节点;
对所有模块节点的日志的出参数据进行分析,若有错误代码,则对第一个出错的模块节点进行标识。
3.如权利要求2所述定位调用出错的方法,其特征在于,所述方法还包括:
在收到打开指令后,展示所述出错的模块节点的错误信息。
4.如权利要求1至3任意一项所述定位调用出错的方法,其特征在于,所述方法还包括:
根据发起的业务请求,向日志数据库存储调试日志。
5.如权利要求4所述定位调用出错的方法,其特征在于,所述根据发起的业务请求,向日志数据库存储调试日志,包括:
根据所述发起的业务请求,采集调试日志;
缓存所述调试日志;
周期性地向所述日志数据库批量写入所述缓存的调试日志。
6.一种定位调用出错的装置,其特征在于,所述装置包括:
第一获取模块,用于获取与预设关键字匹配的业务请求号,所述业务请求号唯一标识单次业务请求并对应于所述单次业务请求涉及的所有模块调用;
第二获取模块,用于根据所述业务请求号,获取与所述业务请求号对应的所有调试日志;
生成模块,用于根据与所述业务请求号对应的所有调试日志,生成包含错误码提示的模块调用关系图。
7.如权利要求6所述定位调用出错的装置,其特征在于,所述生成模块包括:
模调关系生成单元,用于根据所述调试日志中模块调用的先后顺序,生成模块调用关系图;
附加单元,用于将每个模块节点的入参和出参附加到所述模块调用关系图中以构成每个模块节点的入参节点和出参节点;
标识单元,用于对所有模块节点的日志的出参数据进行分析,若有错误代码,则对第一个出错的模块节点进行标识。
8.如权利要求7所述定位调用出错的装置,其特征在于,所述装置还包括:
展示模块,用于在收到打开指令后,展示所述出错的模块节点的错误信息。
9.一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810239275.9A CN110297748A (zh) | 2018-03-22 | 2018-03-22 | 一种定位调用出错的方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810239275.9A CN110297748A (zh) | 2018-03-22 | 2018-03-22 | 一种定位调用出错的方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110297748A true CN110297748A (zh) | 2019-10-01 |
Family
ID=68025560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810239275.9A Pending CN110297748A (zh) | 2018-03-22 | 2018-03-22 | 一种定位调用出错的方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297748A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078447A (zh) * | 2019-11-24 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种微服务架构中的异常定位方法、装置、设备、介质 |
CN111104322A (zh) * | 2019-12-17 | 2020-05-05 | 深圳前海环融联易信息科技服务有限公司 | 移动端调试快速定位问题的方法、装置、设备及存储介质 |
CN113626296A (zh) * | 2020-05-09 | 2021-11-09 | 深圳云天励飞技术有限公司 | 一种***稳定性的检测方法、装置和终端 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870260A (zh) * | 2012-12-14 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 业务接口开发的方法及*** |
CN105207806A (zh) * | 2015-08-20 | 2015-12-30 | 百度在线网络技术(北京)有限公司 | 分布式服务的监控方法及装置 |
CN105391772A (zh) * | 2015-10-16 | 2016-03-09 | 百度在线网络技术(北京)有限公司 | 业务请求处理方法、日志处理方法及装置 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及*** |
CN107330034A (zh) * | 2017-06-26 | 2017-11-07 | 百度在线网络技术(北京)有限公司 | 一种日志分析方法和装置、计算机设备、存储介质 |
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
CN107688899A (zh) * | 2017-08-22 | 2018-02-13 | 北京潘达互娱科技有限公司 | 业务流程监控方法及装置 |
-
2018
- 2018-03-22 CN CN201810239275.9A patent/CN110297748A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870260A (zh) * | 2012-12-14 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 业务接口开发的方法及*** |
CN105207806A (zh) * | 2015-08-20 | 2015-12-30 | 百度在线网络技术(北京)有限公司 | 分布式服务的监控方法及装置 |
CN105391772A (zh) * | 2015-10-16 | 2016-03-09 | 百度在线网络技术(北京)有限公司 | 业务请求处理方法、日志处理方法及装置 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及*** |
CN107330034A (zh) * | 2017-06-26 | 2017-11-07 | 百度在线网络技术(北京)有限公司 | 一种日志分析方法和装置、计算机设备、存储介质 |
CN107688899A (zh) * | 2017-08-22 | 2018-02-13 | 北京潘达互娱科技有限公司 | 业务流程监控方法及装置 |
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078447A (zh) * | 2019-11-24 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种微服务架构中的异常定位方法、装置、设备、介质 |
CN111078447B (zh) * | 2019-11-24 | 2023-09-19 | 杭州安恒信息技术股份有限公司 | 一种微服务架构中的异常定位方法、装置、设备、介质 |
CN111104322A (zh) * | 2019-12-17 | 2020-05-05 | 深圳前海环融联易信息科技服务有限公司 | 移动端调试快速定位问题的方法、装置、设备及存储介质 |
CN113626296A (zh) * | 2020-05-09 | 2021-11-09 | 深圳云天励飞技术有限公司 | 一种***稳定性的检测方法、装置和终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344170B (zh) | 流数据处理方法、***、电子设备及可读存储介质 | |
WO2019006654A1 (zh) | 金融自助设备维修派单生成方法、手持终端及电子设备 | |
CN109634728A (zh) | 作业调度方法、装置、终端设备及可读存储介质 | |
CN107645562A (zh) | 数据传输处理方法、装置、设备及*** | |
US8819488B1 (en) | Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services | |
CN111159897B (zh) | 基于***建模应用的目标优化方法和装置 | |
CN109039829A (zh) | 一种网卡性能测试方法、装置、终端及存储介质 | |
CN110297748A (zh) | 一种定位调用出错的方法、装置和计算机可读存储介质 | |
CN103257852B (zh) | 一种分布式应用***的开发环境搭建的方法和装置 | |
CN108255467A (zh) | 按照工作流顺序执行服务的方法、装置及*** | |
CN111290958A (zh) | 一种调试智能合约的方法及装置 | |
CN107911251A (zh) | 一种网络设备配置方法、装置和介质 | |
CN110795697A (zh) | 逻辑表达式的获取方法、装置、存储介质以及电子装置 | |
CN113642300A (zh) | 一种报表生成方法、装置、电子设备及计算机可读介质 | |
CN107704331A (zh) | 电力设备故障分析处理辅助方法及装置 | |
CN110351131B (zh) | 一种用于分布式链路的监控方法、装置和电子设备 | |
CN108345658A (zh) | 算法计算轨迹的分解处理方法、服务器及存储介质 | |
CN114791927A (zh) | 一种数据分析方法和装置 | |
CN106648722A (zh) | 基于大数据的Flume接收端数据处理方法和装置 | |
CN112860954A (zh) | 实时计算的方法以及实时计算*** | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN110362294A (zh) | 开发任务执行方法、装置、电子设备及存储介质 | |
CN111143304A (zh) | 一种基于请求链路的微服务***异常日志分析方法 | |
CN116136801B (zh) | 云平台的数据处理方法、装置、电子设备及存储介质 | |
Savolainen et al. | Conflict-centric software architectural views: Exposing trade-offs in quality requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |