CN111813691B - 测试问题排查方法、装置、电子设备和介质 - Google Patents

测试问题排查方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN111813691B
CN111813691B CN202010720446.7A CN202010720446A CN111813691B CN 111813691 B CN111813691 B CN 111813691B CN 202010720446 A CN202010720446 A CN 202010720446A CN 111813691 B CN111813691 B CN 111813691B
Authority
CN
China
Prior art keywords
investigation
point
information
points
check
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.)
Active
Application number
CN202010720446.7A
Other languages
English (en)
Other versions
CN111813691A (zh
Inventor
郑荣廷
杨珂
张立伟
胡松鄂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010720446.7A priority Critical patent/CN111813691B/zh
Publication of CN111813691A publication Critical patent/CN111813691A/zh
Application granted granted Critical
Publication of CN111813691B publication Critical patent/CN111813691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种由电子设备执行的测试问题排查方法,包括:获取待排查通知报文的排查信息;根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点;确定对所述多个排查点进行排查的最短路径;根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果;以及输出所述测试结果。本公开还提供了一种测试问题排查装置、电子设备和介质。

Description

测试问题排查方法、装置、电子设备和介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种测试问题排查方法、装置、电子设备和介质。
背景技术
随着数据中心转型升级以及大型机资源压降项目的逐年推进,逐步将大型机交易的局部环节下移至平台服务器处理,致使这类交易的处理链路长、跨多类型系统,系统间交互多。
目前难以对链路长、跨多类型系统的任务进行问题排查。例如在银行系统中通常接收回调通知报文并进行测试验证,如验证发现回调通知报文中某个参数的值与预期不符时,往往需要按照回调通知链路,在银行内部各应用系统之间逐个进行手工排查,直到问题定位。这种排查方法排查效率低。
发明内容
有鉴于此,本公开提供了一种软件测试方法、装置、电子设备和介质。
本公开的一个方面提供了一种由电子设备执行的测试问题排查方法,包括:获取待排查通知报文的排查信息;根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点;确定对所述多个排查点进行排查的最短路径;根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果;以及输出所述测试结果。
根据本公开的实施例,确定对所述多个排查点进行排查的最短路径包括:基于所述多个排查点构造有向图,并且确定所述有向图的起点和终点;利用最短路径算法,确定从所述起点到所述终点的最短路径;以及根据所述最短路径,确定所述多个排查点中每个排查点的排查点名称和应用名称;以及按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串。
根据本公开的实施例,所述根据所述配置信息,按照所述最短路径对所述多个排查点进行排查包括:根据所述排查任务应用链路串,确定所述多个排查点的排查顺序;按照所述排查顺序,从所述配置信息中确定所述多个排查点中每个排查点的排查类型,所述排查类型包括日志排查和数据库排查;如果所述排查类型为日志排查,则向日志管理系统发送所述排查点的排查信息,以由所述日志管理系统根据所述排查信息对所述排查点进行排查;如果所述排查类型为数据库排查,则向数据库引擎发送所述排查点的排查信息,以由所述数据库引擎根据所述排查信息对所述排查点进行排查。
根据本公开的实施例,所述数据库引擎根据所述排查信息对所述排查点进行排查包括:所述数据库引擎根据所述配置信息,确定数据库环境信息,所述数据库环境信息至少包括数据库地址和查询条件;所述数据库引擎基于所述查询条件和排查信息,生成排查结构化语句;以及所述数据库引擎根据所述数据库地址和所述排查结构化语句,获取所述排查点的排查结果。
根据本公开的实施例,日志管理系统根据所述排查信息对所述排查点进行排查;包括:所述日志管理系统根据所述配置信息,获取应用日志来源服务器地址和关键日志标签信息;基于所述应用日志来源服务器地址和关键日志标签信息,调用查询接口对所述排查点进行排查,以获取目标日志信息。
根据本公开的实施例,为所述排查任务应用链路串分配任务号;接收来自前端界面的查询请求,其中,所述查询请求包括任务号;根据所述任务号,确定查询记录集,所述查询记录集包括多个查询记录和所述多个查询记录中每个查询记录的排查信息;在所述查询记录集中每个查询记录的状态为已排查的状态下,根据所述排查信息,获取排查结果。
本公开的另一方面提供了一种测试问题排查装置,包括:获取模块,用于获取待排查通知报文的排查信息;第一确定模块,用于根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点;第二确定模块,用于确定对所述多个排查点进行排查的最短路径;排查模块,用于根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果;以及输出模块,用于输出所述测试结果。
根据本公开的实施例,第二确定模块包括:第一确定子模块,用于基于所述多个排查点构造有向图,并且确定所述有向图的起点和终点;第二确定子模块,用于利用最短路径算法,确定从所述起点到所述终点的最短路径;以及第三确定子模块,用于根据所述最短路径,确定所述多个排查点中每个排查点的排查点名称和应用名称;以及生成子模块,用于按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串。
根据本公开的实施例,排查模块包括:第四确定子模块,用于根据所述排查任务应用链路串,确定所述多个排查点的排查顺序;第五确定子模块,用于按照所述排查顺序,从所述配置信息中确定所述多个排查点中每个排查点的排查类型,所述排查类型包括日志排查和数据库排查;第一排查子模块,用于如果所述排查类型为日志排查,则向日志管理系统发送所述排查点的排查信息,以由所述日志管理系统根据所述排查信息对所述排查点进行排查;第二排查子模块,用于如果所述排查类型为数据库排查,则向数据库引擎发送所述排查点的排查信息,以由所述数据库引擎根据所述排查信息对所述排查点进行排查。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用测试问题排查方法的系统架构;
图2示意性示出了根据本公开实施例的测试问题排查方法的流程图;
图3A示意性示出了根据本公开实施例的确定对所述多个排查点进行排查的最短路径的方法流程图;
图3B示意性示出了根据本公开实施例的有向图的示意图;
图4示意性示出了根据本公开实施例的按照最短路径对所述多个排查点进行排查的方法流程图;
图5示意性示出了根据本公开实施例的用于实现测试问题排查方法的系统的示意图;
图6示意性示出了根据本公开实施例的日志管理系统的系统架构图;
图7示意性示出了根据本公开实施例的测试问题排查装置的方框图;以及
图8示意性示出了根据本公开实施例的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相相匹配的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种由电子设备执行的测试问题排查方法,包括:获取待排查通知报文的排查信息;根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点;确定对所述多个排查点进行排查的最短路径;根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果;以及输出所述测试结果。
图1示意性示出了根据本公开实施例的可以应用测试问题排查方法的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构100中例如可以包括商户系统和银行系统。商户系统和银行系统之间相互通信。
例如客户在商户系统发起交易,商户系统根据银行支付接口规范向银行系统对应接口上送相关订单信息,其中,订单信息的信息字段中包含商户系统的回调地址。银行系统校验上送的订单信息成功后,后台生成订单,前台向客户展示银行支付页面,引导客户输入支付信息,发起支付请求。银行系统处理支付请求成功后,通知银行前台向客户展示支付结果页面。银行系统经过内部回调通知链路,向商户系统发送支付回调通知,通知商户订单支付成功。商户系统正常接收回调通知,更新本地订单状态,进入后续发货流程。
根据本公开实施例的测试问题排查方法可以对回调通知链路中的异常进行排查,以保证向商户系统成功发送支付回调通知。
图2示意性示出了根据本公开实施例的测试问题排查方法的流程图。
如图2所示,该信息处理方法可以包括操作S201~S205。
在操作S201,获取待排查通知报文的排查信息。
根据本公开的实施例,例如可以是接收测试人员在交互页面中输入的待排查通知报文的待排查报文参数名称和排查线索,其中,排查线索例如可以包括商户系统的订单号等。
在操作S202,根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点。
根据本公开的实施例,例如可以调用参数文件加载单元,该单元按照事先配置的文件路径,自动加载XML文件。XML文件中包括待排查通知报文的配置信息。
根据本公开的实施例,测试人员可事先在XML文件中定义和维护回调链路中各应用排查点的环境信息。
根据本公开的实施例,XML文件根节点例如可以定义为appEnvInfos,根节点下有可扩展的XML元素appEnvInfo,每个链路应用对应一个元素appEnvInfo,其属性名称为appName,测试人员可根据具体链路应用情况对XML中的appEnvInfo元素数量进行新增或删除。每个appEnvInfo下有可扩展的XML子元素checkInfo(即一个链路应用可以对应多个排查点),checkInfo的属性有两个,分别为checkName(排查点名称)、checkType(排查点类型,定义值为db(即数据库排查)或applog(即应用日志排查));checkInfo下的文本节点根据排查点类型(checkType)的不同分为两类:第一类(数据库排查):子元素checkInfo中包含dbIP(数据库IP)、dbPort(数据库端口)、dbName(数据库名称)、dbSqlSchema(查询SQL)、DbSqlCondition(查询条件)等文本节点信息;第二类(应用日志排查):子元素checkInfo包含logIP(应用日志来源服务器IP)、keyCaptions(关键日志标签)文本节点,其中keyCaptions节点的值中存储关键日志标签信息,支持维护多个标签信息,各个标签信息之间用“|”分隔,如格式“标签信息1|标签信息2|标签信息3”。
根据本公开的实施例,例如可以调用排查关系获取单元来获取待排查通知报文的排查点记录集。排查关系获取单元例如可以访问排查关系定义表,并以该“参数名称”为条件,获取参数名称对应的所有记录,每条记录包含报文参数名称、排查点名称(checkName)、排查点归属应用(appName)、排查点权重。
根据本公开的实施例,“排查关系定义表”可以是一个二维表,包含报文参数名称、排查点名称(checkName)、排查点归属应用(appName)、排查点类型、排查点权重;其中“报文参数名称+排查点名称”为联合主键,多个“排查点名称”可对应同一“排查点归属应用”(即,一个应用下可有多个排查点)。根据排查点对应程序功能对报文参数处理方式的不同,对“排查点类型”字段的值进行定义,包括0(参数生成点)、1(参数处理点)、2(参数存储点)、3(参数透传点),并根据如下规则确定每个排查点对应“排查点权重”字段值:A、参数生成点(0):本排查点对应程序功能负责对报文中该参数及参数值进行生成,权重最高,定义权重为5;B、参数处理点(1):本排查点对应程序功能负责对报文中该参数及参数值进行处理操作,权重次之,定义权重为4;C、参数存储点(2):本排查点对应程序功能负责对报文中该参数及参数值进行存储,但不做任何处理,权重再次之,定义权重为3;D、参数透传点(3):该参数仅经过排查点,排查点对应程序并不对参数及参数值进行任何处理、存储,权重最低,定义权重为2。
在操作S203,确定对所述多个排查点进行排查的最短路径。
在操作S204,根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果。
在操作S205,输出所述测试结果。
根据本公开的实施例,该信息处理方法将问题排查由手工操作转化为自动化操作,且通过确定链路最短路径,可快速得到回调通知在各个链路应用中的处理情况,方便测试人员在回调通知测试过程中,快速、准确的定位异常链路节点,提升相关测试问题排查效率,大幅节省了问题分析的时间成本。
图3A示意性示出了根据本公开实施例的确定对所述多个排查点进行排查的最短路径的方法流程图。
如图3A所示,该方法可以包括操作S213~S243。
在操作S213,基于所述多个排查点构造有向图,并且确定所述有向图的起点和终点。
图3B示意性示出了根据本公开实施例的有向图的示意图。
如图3B所示,有向图G=(V,E,W)例如可以是赋权有向图。其中,W为权重。例如可以默认定义V0为起点,将记录集中“排查点类型”为“0”的排查点(参数生成点)定义为终点Vn;记录集中的其他节点均作为该有向图的顶点,编号格式为Vij(i为排查点所归属应用在记录集中的排序(去重),j为当前排查点在同一应用下所有排查点中的排序),如记录集中出现的第1个应用的第1个排查点定义为V11,第2个排查点定义为V12,以此类推。
定义有向图各顶点连接规则及边长规则如下:V0仅与第一个应用的所有节点连接,第一个应用的所有节点与第二个应用的所有节点连接,以此类推,最后一个应用的所有节点与终点Vn连接;E{Va,Vb}表示两个顶点之间的边长,归属不同应用的两个顶点,边长值为Vb对应的排查点权重值的倒数,归属同一应用的两个相邻顶点,边长值默认例如可以为1。
在操作S223,利用最短路径算法,确定从所述起点到所述终点的最短路径。
根据本公开的实施例,赋权有向图构造完毕后,例如可以根据Dijkstra算法(Dijkstra算法是一种业界通用的最短路径计算算法)进行程序实现,从而获取从起点V0至终点Vn(参数生成点)的最短路径。
在操作S233,根据所述最短路径,确定所述多个排查点中每个排查点的排查点名称和应用名称。
根据本公开的实施例,例如可以将最短路径经过的顶点按顺序映射为“排查点名称(checkName)+应用名称(appName)”记录集。
在操作S243,按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串。
根据本公开的实施例,例如可以获取最短路径对应的“排查点名称(checkName)+应用名称(appName)”记录集,并且根据排查线索、参数名称和XML文件信息,分两层进行轮询解析操作。
根据本公开的实施例,第一层轮询解析操作可以包括:读取“排查点名称(checkName)+应用名称(appName)”记录集,轮询获取每条记录对应的“排查点名称”(chechName)和“应用名称”(appName),并调用“第二层轮询解析”;第一层轮询解析结束后,按“appName#checkName@appName#checkName”格式拼接字符串。其中,单条记录的“排查点名称”和“应用名称”之间按#进行分隔,记录之间用@进行分隔,拼接结果作为“排查任务应用链路串”。
根据本公开的实施例,第二层轮询解析可以包括读取env.xml,首先将第一层轮询解析得到的“应用名称”(appName),作为轮询条件获取根节点appEnvInfos下所有属性名称和appName匹配的子元素appEnvInfo;然后将第一层轮询解析得到的chechName,作为条件再次轮询刚刚得到appEnvInfo子元素,获取appEnvInfo下所有属性名称和chechName匹配的子元素checkInfo,以及子元素checkInfo的checkType属性以及元素下的所有文本节点信息;每次轮询结束后,将获取的参数信息记录到两个HashMap对象中。该两个HashMap对象分别可以记为HashMap1和HashMap3。两个HashMap对象存储的内容例如可以是按格式“appName#checkName”拼接字符串作为HashMap1的key,将轮询得到的子元素checkInfo下的文本节点信息记录到新HashMap中(记为HashMap2,key为文本节点的标签名称,value为文本节点值),HashMap2整体作为HashMap1的value,以及按格式“appName#checkName”拼接字符串作为HashMap3的key,将轮询得到的子元素checkInfo的checkType属性值作为HashMap3的value。
根据本公开的实施例,第一、二层轮询解析结束后,得到“排查任务应用链路串”以及“参数信息记录HashMap1、HashMap3”。
图4示意性示出了根据本公开实施例的按照最短路径对所述多个排查点进行排查的方法流程图。
如图4所示,该方法可以包括操作S214~S244。
在操作S214,根据所述排查任务应用链路串,确定所述多个排查点的排查顺序。
根据本公开的实施例,例如可以对“排查任务应用链路串”按“@”符号进行分隔,分隔结果作为任务链路中各应用排查点的排查顺序。
根据本公开的实施例,例如可以首先随机生成一个不重复的任务号,然后按排查顺序逐个获取应用及排查点信息(appName#checkName),并将该信息作为key键在HashMap1中查询得到对应的value值(即,HashMap2,环境配置信息),在HashMap3中查询得到对应的value值(即,checkType,排查类型)。
在操作S224,按照所述排查顺序,从所述配置信息中确定所述多个排查点中每个排查点的排查类型,所述排查类型包括日志排查和数据库排查。
根据本公开的实施例,例如可以对查询得到的checkType值进行判断每个排查点的排查类型。
在操作S234,如果所述排查类型为日志排查,则向日志管理系统发送所述排查点的排查信息,以由所述日志管理系统根据所述排查信息对所述排查点进行排查。
如果所述排查类型为日志排查,则可以将任务号、排查线索、appName、checkName及HashMap2发送给“DB排查引擎模块”。
在操作S244,如果所述排查类型为数据库排查,则向数据库引擎发送所述排查点的排查信息,以由所述数据库引擎根据所述排查信息对所述排查点进行排查。
如果所述排查类型为数据库排查,则可以将任务号、排查线索、appName、checkName及HashMap2发送给“日志排查引擎模块”。
根据本公开的实施例,该方法可以同时兼容实现数据库排查与日志排查,根据排查点的配置信息,灵活调用相应的排查引擎。
根据本公开的实施例,在向日志管理系统或者数据库引擎发送排查信息成功后,可以将任务号以及各应用的排查信息插入到“排查任务明细表”中。“排查任务明细表”可以是一个数据库二维表,包含任务号、排查线索、应用名称(appName)、排查点名称(checkName)、排查类型(checkType)、排查状态(默认“排查中”)、排查结果(默认为空)等字段。并且可以通过指令页面前台将任务号展示给测试人员,提示测试人员“排查线索已成功提交,任务号为XXXX”。
根据本公开的实施例,数据库引擎根据所述排查信息对所述排查点进行排查包括:所述数据库引擎根据所述配置信息,确定数据库环境信息,所述数据库环境信息至少包括数据库地址和查询条件;所述数据库引擎基于所述查询条件和排查信息,生成排查结构化语句;以及所述数据库引擎根据所述数据库地址和所述排查结构化语句,获取所述排查点的排查结果。
根据本公开的实施例,数据库引擎例如可以对存储有数据库环境信息的哈希表对象HashMap2进行解析,以dbIP(数据库IP)、dbPort(数据库端口)、dbName(数据库名称)、dbSqlSchema(查询SQL)、DbSqlCondition(查询条件)为key键获取对应的value值,即获取本次排查的数据库IP、端口、数据库名称、查询SQL、查询条件;然后可以将查询SQL、查询条件(即字段名称)以及排查线索(即字段值)进行字符串拼接,形成完整的排查SQL语句。接下来可以根据排查数据库的IP/端口、数据库名称连接应用的数据库,并使用拼接完成的“排查SQL语句”完成数据库查询操作,获取查询结果。最后可以将本次排查任务对应的任务号、排查线索、应用名称(appName)、排查点名称(checkName)以及本次查询得到的结果通过接口返回。
根据本公开的实施例,日志管理系统根据所述排查信息对所述排查点进行排查;包括:所述日志管理系统根据所述配置信息,获取应用日志来源服务器地址和关键日志标签信息;基于所述应用日志来源服务器地址和关键日志标签信息,调用查询接口对所述排查点进行排查,以获取目标日志信息。
根据本公开的实施例,例如日志管理系统可以对存储有数据库环境信息的哈希表对象HashMap2进行解析,以logIP(应用日志来源服务器IP)、keyCaptions(关键日志标签)为key键获对应的value值,即获取本次排查的应用日志来源服务器IP、关键日志标签信息;然后对获取的“关键日志标签信息”按“|”进行分隔,获取到所有关键日志标签;然后该模块将应用日志来源服务器IP、排查线索以及每个日志标签分别作为ElasticSearch中“message”的限制条件,各限制条件之间为“与(and)”关系,并通过调用ElasticSearch提供的查询API接口获取目标日志信息。最后可以将本次排查任务对应的任务号、排查线索、应用名称(appName)、排查点名称(checkName)以及本次查询得到的结果通过接口返回。
根据本公开的实施例,该测试问题排查方法还可以包括为所述排查任务应用链路串分配任务号;接收来自前端界面的查询请求,其中,所述查询请求包括任务号;根据所述任务号,确定查询记录集,所述查询记录集包括多个查询记录和所述多个查询记录中每个查询记录的排查信息;在所述查询记录集中每个查询记录的状态为已排查的状态下,根据所述排查信息,获取排查结果。
根据本公开的实施例,例如可以提供一个排查结果的前台查询页面,测试人员可以在前台查询页面上输入任务号及查询线索进行查询。响应于接收到来自前台页面的查询请求后,可将测试人员输入的任务号及查询线索作为检索条件,对“排查任务明细表”进行查询,获取任务号及查询线索对应的所有记录,每条记录都包括应用名称(appName)、排查点名称(checkName)、排查类型(checkType)、排查状态、排查结果。根据本公开的实施例,前台页面可以按照查询记录顺序向用户展示查询记录,其中,查询记录顺序即为最短路径中确定的各应用排查点的顺序,以及每条记录对应的校验结果(“校验通过”或“校验异常”),并支持测试人员对具体排查结果进行查看和下载。
图5示意性示出了根据本公开实施例的用于实现测试问题排查方法的系统500的示意图。
如图5所示,系统500可以包括排查关系定义模块501、排查点信息配置模块502、排查线索接收模块503、排查任务控制模块504、数据库引擎模块505、日志管理系统506以及排查结果展示模块507。
根据本公开的实施例,排查关系定义模块501例如可以对应数据库中的一张二维表“排查关系定义表”。排查关系定义表可以包含报文参数名称、排查点名称(checkName)、排查点归属应用(appName)、排查点类型、排查点权重;其中“报文参数名称+排查点名称”为联合主键,多个“排查点名称”可对应同一“排查点归属应用”(即一个应用下可有多个排查点)。
根据本公开的实施例,根据排查点对应程序功能对报文参数处理方式的不同,对“排查点类型”字段的值进行定义,包括0(参数生成点)、1(参数处理点)、2(参数存储点)、3(参数透传点),并根据如下规则确定每个排查点对应“排查点权重”字段值:A、参数生成点(0):本排查点对应程序功能负责对报文中该参数及参数值进行生成,权重最高,定义权重为5;B、参数处理点(1):本排查点对应程序功能负责对报文中该参数及参数值进行处理操作,权重次之,定义权重为4;C、参数存储点(2):本排查点对应程序功能负责对报文中该参数及参数值进行存储,但不做任何处理,权重再次之,定义权重为3;D、参数透传点(3):该参数仅经过排查点,排查点对应程序并不对参数及参数值进行任何处理、存储,权重最低,定义权重为2。
根据本公开的实施例,排查点信息配置模块502用于存储回调链路上各应用排查点的环境信息,例如可以是一个XML格式的文件(定义为env.xml),测试人员可事先在XML文件中定义和维护回调链路中各应用排查点的环境信息。XML文件根节点定义为appEnvInfos,根节点下有可扩展的XML元素appEnvInfo,每个链路应用对应一个元素appEnvInfo,其属性名称为appName,测试人员可根据具体链路应用情况对XML中的appEnvInfo元素数量进行新增或删除。每个appEnvInfo下有可扩展的XML子元素checkInfo(即一个链路应用可以对应多个排查点),checkInfo的属性有两个,分别为checkName(排查点名称)、checkType(排查点类型,定义值为db(即,数据库排查)或applog(即,应用日志排查));checkInfo下的文本节点根据排查点类型(checkType)的不同分为两类:第一类(数据库排查):子元素checkInfo中包含dbIP(数据库IP)、dbport(数据库端口)、dbName(数据库名称)、dbSqlSchema(查询SQL)、DbSqlCondition(查询条件)等文本节点信息;第二类(应用日志排查):子元素checkInfo包含logIP(应用日志来源服务器IP)、keyCaptions(关键日志标签)文本节点,其中keyCaptions节点的值中存储关键日志标签信息,支持维护多个标签信息,各个标签信息之间用“|”分隔,如格式“标签信息1|标签信息2|标签信息3”。
根据本公开的实施例,排查线索接收模块503用于对外向测试人员提供指令平台页面,负责接收测试人员输入的待排查报文参数名称和排查线索。测试人员支付完成后可以从商户测试系统获取与预期不一致、需要排查的参数名称,从银行端(前台)获取排查线索(文本格式,如订单号),并在指令平台页面完成排查线索和参数名称输入后发起排查指令,该模块自动将用户输入的排查线索和参数名称上送到“排查任务控制模块”。
根据本公开的实施例,排查任务控制模块504例如可以包括参数文件加载单元、排查关系获取单元、排查路径计算单元、参数文件解析单元、排查引擎驱动单元和排查结果处理单元。
根据本公开的实施例,排查任务控制模块504接收到来自“排查线索接收模块”的排查线索、参数名称后,调用参数文件加载单元。该参数文件加载单元会按照事先配置的文件路径,自动加载“排查点信息配置模块”下定义的XML文件,并将得到的XML文件信息(env.xml)以及排查线索、参数名称传送给“参数文件解析单元”。
根据本公开的实施例,排查任务控制模块504接收到来自“排查线索接收模块”的参数名称后,调用该单元;该单元会访问“排查关系定义模块”中的数据库表-“排查关系定义表”,并以该“参数名称”为条件,获取参数名称对应的所有记录,以记录集方式传送给“排查路径计算单元”,每条记录包含报文参数名称、排查点名称(checkName)、排查点归属应用(appName)、排查点权重。
根据本公开的实施例,排查路径计算单元例如可以轮询读取从排查关系获取单元接收的记录集,构造如附图3B所示的一个赋权有向图G=(V,E,W),并默认定义V0为起点,将记录集中“排查点类型”为“0”的排查点(参数生成点)定义为终点Vn;记录集中的其他节点均作为该有向图的顶点,编号格式为Vij(i为排查点所归属应用在记录集中的排序(去重),j为当前排查点在同一应用下所有排查点中的排序),如记录集中出现的第1个应用的第1个排查点定义为V11,第2个排查点定义为V12以此类推。
根据本公开的实施例,定义有向图各顶点连接规则及边长规则例如可以是V0仅与第一个应用的所有节点连接,第一个应用的所有节点与第二个应用的所有节点连接,以此类推,最后一个应用的所有节点与终点Vn连接;E{Va,Vb}表示两个顶点之间的边长,归属不同应用的两个顶点,边长值为Vb对应的排查点权重值的倒数,归属同一应用的两个相邻顶点,边长值默认均为1。
赋权有向图构造完毕后,例如可以根据Dijkstra算法(Dijkstra算法是一种业界通用的最短路径计算算法)进行程序实现,从而获取从起点V0至终点Vn(参数生成点)的最短路径,并将最短路径经过的顶点按顺序映射为“排查点名称(checkName)+应用名称(appName)”记录集,传至“参数文件解析单元”。
根据本公开的实施例,参数文件解析单元从“排查路径计算单元”获取最短路径对应的“排查点名称(checkName)+应用名称(appName)”记录集;从“参数文件加载单元”接收到排查线索、参数名称和XML文件信息,分两层进行轮询解析操作。第一层轮询解析:读取“排查点名称(checkName)+应用名称(appName)”记录集,轮询获取每条记录对应的“排查点名称”(chechName)和“应用名称”(appName),并调用“第二层轮询解析”;第一层轮询解析结束后,按“appName#checkName@appName#checkName”格式拼接字符串(单条记录的“排查点名称”和“应用名称”之间按#进行分隔,记录之间用@进行分隔,拼接结果作为“排查任务应用链路串”)。第二层轮询解析:读取env.xml,首先将第一层轮询解析得到的“应用名称”(appName),作为轮询条件获取根节点appEnvInfos下所有属性名称和appName匹配的子元素appEnvInfo;然后将第一层轮询解析得到的chechName,作为条件再次轮询刚刚得到appEnvInfo子元素,获取appEnvInfo下所有属性名称和chechName匹配的子元素checkInfo,以及子元素checkInfo的checkType属性以及元素下的所有文本节点信息;每次轮询结束后,将获取的参数信息记录到两个HashMap对象中(记为HashMap1、HashMap3),两个HashMap对象存储的内容例如可以符合如下规则:按格式“appName#checkName”拼接字符串作为HashMap1的key,将轮询得到的子元素checkInfo下的文本节点信息记录到新HashMap中(记为HashMap2,key为文本节点的标签名称,value为文本节点值),HashMap2整体作为HashMap1的value,以及按格式“appName#checkName”拼接字符串作为HashMap3的key,将轮询得到的子元素checkInfo的checkType属性值作为HashMap3的value。
根据本公开的实施例,第一、二层轮询解析结束后,得到“排查任务应用链路串”以及“参数信息记录HashMap1、HashMap3”,并将结果传送给“排查引擎驱动单元”。
根据本公开的实施例,排查引擎驱动单元接收来自“排查线索接收模块”的排查线索,接收来自“参数文件解析单元”的“排查任务应用链路串”以及“参数信息记录HashMap1、HashMap3”;接收完成后首先对“排查任务应用链路串”按“@”符号进行分隔,分隔结果作为任务链路中各应用排查点的排查顺序。
首先,排查引擎驱动单元随机生成一个不重复的任务号,然后按排查顺序逐个获取应用及排查点信息(appName#checkName),并将该信息作为key键在HashMap1中查询得到对应的value值(即HashMap2,环境配置信息),在HashMap3中查询得到对应的value值(即checkType,排查类型)。
接下来,排查引擎驱动单元对查询得到的checkType值进行判断,如checkType为“db”,则将任务号、排查线索、appName、checkName及HashMap2发送给“数据库引擎模块”;如checkType为“applog”,则将任务号、排查线索、appName、checkName及HashMap2发送给“日志管理系统”。
接下来,发送成功后该排查引擎驱动单元将任务号以及各应用的排查信息插入到“排查任务明细表”中,“排查任务明细表”可以是一张数据库二维表,包含任务号、排查线索、应用名称(appName)、排查点名称(checkName)、排查类型(checkType)、排查状态(默认“排查中”)、排查结果(默认为空)等字段。
接下来,排查引擎驱动单元将任务号返回给“排查线索接收模块”,“排查线索接收模块”通过指令页面前台将任务号展现给测试人员,提示测试人员“排查线索已成功提交,任务号为XXXX”。
根据本公开的实施例,排查结果处理单元针对两个排查引擎模块(数据库引擎模块和日志管理系统),提供并实现了一个排查结果接收接口,用于接收排查结果,接口参数值包括任务号、排查线索、应用名称(appName)、排查点名称(checkName)、排查结果。
排查结果处理通过“排查结果接收接口”接收到排查引擎模块返回的排查结果后,以“任务号+应用名称(appName)+排查点名称(checkName)”为条件,更新“排查任务明细表”中对应记录的“排查状态”字段,将“排查中”更新为“已排查”,并将实际排查结果更新到“排查结果”字段。
根据本公开的实施例,数据库引擎模块505接收到来自“排查任务控制模块”的排查线索,包括任务号、排查线索、应用名称(appName)、排查点名称(checkName)及HashMap2等信息后,例如可以对存储有数据库环境信息的哈希表对象HashMap2进行解析,以dbIP(数据库IP)、dbPort(数据库端口)、dbName(数据库名称)、dbSqlSchema(查询SQL)、DbSqlCondition(查询条件)为key键获取对应的value值,即获取本次排查的数据库IP、端口、数据库名称、查询SQL、查询条件。接下来,该模块将查询SQL、查询条件(即字段名称)以及排查线索(即字段值)进行字符串拼接,形成完整的排查SQL语句;以上处理完成后,该模块会根据排查数据库的IP/端口、数据库名称连接应用的数据库,并使用拼接完成的“排查SQL语句”完成数据库查询操作,获取查询结果。最后该模块调用“排查任务控制模块-排查结果处理单元”中的“排查结果接收接口”,将本次排查任务对应的任务号、排查线索、应用名称(appName)、排查点名称(checkName)以及本次查询得到的结果通过接口返回“排查任务控制模块”。
根据本公开的实施例,日志管理系统506例如可以通过API接口方式与日志管理系统进行交互。该日志管理系统506的工作处理流程例如可以包括如下步骤:
首先接收来自“排查任务控制模块”的排查线索,包括任务号、排查线索、应用名称(appName)、排查点名称(checkName)及HashMap2等信息。
接下来,对存储有数据库环境信息的哈希表对象HashMap2进行解析,以logIP(应用日志来源服务器IP)、keyCaptions(关键日志标签)为key键获对应的value值,即获取本次排查的应用日志来源服务器IP、关键日志标签信息。
接下来,对获取的“关键日志标签信息”按“|”进行分隔,获取到所有关键日志标签;然后该模块将应用日志来源服务器IP、排查线索以及每个日志标签分别作为ElasticSearch中“message”的限制条件,各限制条件之间为“与(and)”关系,并通过调用ElasticSearch提供的查询API接口获取目标日志信息。
接下来,调用“排查任务控制模块-排查结果处理单元”中的“排查结果接收接口”,将本次排查任务对应的任务号、排查线索、应用名称(appName)、排查点名称(checkName)以及本次查询得到的结果通过接口返回“排查任务控制模块”。
根据本公开的实施例,排查结果展示模块507包含一个XML格式的结果校验文件,XML文件根节点定义为verifications,根节点下有可扩展的XML元素verification,每个链路应用的排查点对应一个元素verification,测试人员可根据具体链路应用情况对XML中的verification元素数量进行新增或删除;元素verification中包含应用名称(appName)、排查点名称(checkName)、排查类型(checkType)三个属性信息,以及校验类型(verifyType)、校验规则(verifyRule)两个文本节点;其中属性“校验类型”定义值为value(即“值校验”)或regex(即正则校验),若为值校验,verifyRule中定义具体值信息,若为正则校验,则verifyRule中根据业务校验规则定义正则表达式。该排查结果展示模块507同时提供一个排查结果的前台查询页面,支持测试人员通过输入任务号及查询线索进行查询;该模块接收到来自前台页面的查询请求后,会将测试人员输入的任务号及查询线索作为检索条件,在“排查任务控制模块”下的“排查任务明细表”进行查询,获取任务号及查询线索对应的所有记录,每条记录都包括应用名称(appName)、排查点名称(checkName)、排查类型(checkType)、排查状态、排查结果;同时,该模块会加载本模块中事先定义的结果校验文件(XML)进行结果预校验。结果预校验的处理流程例如可以包括:判断记录集中是否存在“排查状态”为“排查中”的记录。如存在“排查状态”为“排查中”的记录,则通知前台向用户展示“任务排查中,请稍后再试”提示。若不存在“排查状态”为“排查中”的记录,则轮询查询记录集,每次轮询均得到应用名称(appName)、排查点名称(checkName)、排查类型(checkType)、排查状态、排查结果。接下来可以将应用名称(appName)、排查点名称(checkName)、排查类型(checkType)作为条件匹配得到结果校验文件(XML)中对应的verification元素,并获取其下文本节点“校验类型(verifyType)”、“校验规则(verifyRule)”。如节点“校验类型(verifyType)”为“值校验”,则将排查结果与“校验规则(verifyRule)”节点的值进行对比,若完全一致则返回“校验通过”,否则为“校验异常”。如“校验类型(verifyType)”为“正则校验”,则依据“校验规则(verifyRule)”节点中定义的正则表达式,对排查结果进行正则校验,若校验通过则返回“校验通过”,否则为“校验异常”。最后,前台可以根据查询记录顺利向用户展示查询记录。其中,查询记录顺序可以最短路径中确定的各应用排查点的顺序,以及每条记录对应的校验结果(“校验通过”或“校验异常”),并支持测试人员对具体排查结果进行查看和下载。
图6示意性示出了根据本公开实施例的日志管理系统的系统架构图。
如图6所示,日志管理系统例如可以采用filebeat+logstash+elasticsearch架构实现。
filebeat是本地文件的日志数据采集器,filebeat客户端部署在链路上各应用的服务器中,通过在filebeat客户端配置文件目录实现对日志的监视和采集,并将日志信息转发给服务器上的logstash服务器。
logstash服务器接收来自filebeat客户端的日志,根据链路上各应用的回调通知格式,通过grok插件配置不同的过滤(filter)规则。logstash服务器接收到来自各个filebeat客户端上送的日志后,根据过滤规则对日志信息进行过滤,并将过滤得到的message信息根据事先配置的elasticsearch服务器地址和文件路径转发到elasticsearch服务器,并将信息存储到elasticsearch中。elasticsearch对外提供API,以便“日志排查引擎模块”通过该API接口访问日志,对日志进行查询。
图7示意性示出了根据本公开实施例的测试问题排查装置700的方框图。
如图7所示,测试问题排查装置700可以包括获取模块710、第一确定模块720、第二确定模块730、排查模块740和输出模块750。
获取模块710,例如可以执行上文参考图2描述的操作S201,用于获取待排查通知报文的排查信息。
第一确定模块720,例如可以执行上文参考图2描述的操作S202,用于根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述记录集包括多个排查点。
第二确定模块730,例如可以执行上文参考图2描述的操作S203,用于确定对所述多个排查点进行排查的最短路径。
排查模块740,例如可以执行上文参考图2描述的操作S204,用于根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果。
输出模块750,例如可以执行上文参考图2描述的操作S205,用于输出所述测试结果。
根据本公开的实施例,第二确定模块730可以包括:第一确定子模块,用于基于所述多个排查点构造有向图,并且确定所述有向图的起点和终点;第二确定子模块,用于利用最短路径算法,确定从所述起点到所述终点的最短路径;第三确定子模块,用于根据所述最短路径,确定所述多个排查点中每个排查点的排查点名称和应用名称;以及生成子模块,用于按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串。
根据本公开的实施例,排查模块740可以包括:第四确定子模块,用于根据所述排查任务应用链路串,确定所述多个排查点的排查顺序;第五确定子模块,用于按照所述排查顺序,从所述配置信息中确定所述多个排查点中每个排查点的排查类型,所述排查类型包括日志排查和数据库排查;第一排查子模块,用于如果所述排查类型为日志排查,则向日志管理系统发送所述排查点的排查信息,以由所述日志管理系统根据所述排查信息对所述排查点进行排查;第二排查子模块,用于如果所述排查类型为数据库排查,则向数据库引擎发送所述排查点的排查信息,以由所述数据库引擎根据所述排查信息对所述排查点进行排查。
根据本公开的实施例,数据库引擎根据所述排查信息对所述排查点进行排查包括:所述数据库引擎根据所述配置信息,确定数据库环境信息,所述数据库环境信息至少包括数据库地址和查询条件;所述数据库引擎基于所述查询条件和排查信息,生成排查结构化语句;以及所述数据库引擎根据所述数据库地址和所述排查结构化语句,获取所述排查点的排查结果。
根据本公开的实施例,日志管理系统根据所述排查信息对所述排查点进行排查;包括:所述日志管理系统根据所述配置信息,获取应用日志来源服务器地址和关键日志标签信息;基于所述应用日志来源服务器地址和关键日志标签信息,调用查询接口对所述排查点进行排查,以获取目标日志信息。
根据本公开的实施例,测试问题排查装置700还可以为所述排查任务应用链路串分配任务号;接收来自前端界面的查询请求,其中,所述查询请求包括任务号;根据所述任务号,确定查询记录集,所述查询记录集包括多个查询记录和所述多个查询记录中每个查询记录的排查信息;在所述查询记录集中每个查询记录的状态为已排查的状态下,根据所述排查信息,获取排查结果。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块710、第一确定模块720、第二确定模块730、排查模块740和输出模块750中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块710、第一确定模块720、第二确定模块730、排查模块740和输出模块750中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块710、第一确定模块720、第二确定模块730、排查模块740和输出模块750中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的电子设备的方框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (9)

1.一种由电子设备执行的测试问题排查方法,包括:
获取待排查通知报文的排查信息,所述排查信息包括待排查通知报文参数名称和排查线索;
根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点;
确定对所述多个排查点进行排查的最短路径;
根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果;以及
输出所述测试结果,其中,所述确定对所述多个排查点进行排查的最短路径包括:
基于所述多个排查点构造有向图,并且确定所述有向图的起点和终点,其中,所述有向图为赋权有向图,所述赋权有向图G=(V,E,W),其中V为有向图各顶点,V0为起点,排查点类型为参数生成点的排查点为终点Vn,W为权重,E{Va,Vb}为顶点Va和顶点Vb之间的边长;
利用最短路径算法,确定从所述起点到所述终点的最短路径,所述最短路径算法为迪克斯特拉算法;
根据所述最短路径,确定所述多个排查点中每个排查点的排查点名称和应用名称;以及
按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串,其中,所述按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串包括:
获取最短路径对应的“排查点名称+应用名称”记录集;
根据所述排查线索、所述参数名称和XML文件信息进行轮询解析操作,
其中,所述轮询解析操作包括:读取“排查点名称+应用名称”记录集,轮询获取每条记录对应的“排查点名称”和“应用名称”,在轮询解析结束后,按预设格式拼接字符串;拼接结果作为“排查任务应用链路串”。
2.根据权利要求1所述的方法,其中,所述根据所述配置信息,按照所述最短路径对所述多个排查点进行排查包括:
根据所述排查任务应用链路串,确定所述多个排查点的排查顺序;
按照所述排查顺序,从所述配置信息中确定所述多个排查点中每个排查点的排查类型,所述排查类型包括日志排查和数据库排查;
如果所述排查类型为日志排查,则向日志管理系统发送所述排查点的排查信息,以由所述日志管理系统根据所述排查信息对所述排查点进行排查;
如果所述排查类型为数据库排查,则向数据库引擎发送所述排查点的排查信息,以由所述数据库引擎根据所述排查信息对所述排查点进行排查。
3.根据权利要求2所述的方法,其中,所述数据库引擎根据所述排查信息对所述排查点进行排查包括:
所述数据库引擎根据所述配置信息,确定数据库环境信息,所述数据库环境信息至少包括数据库地址和查询条件;
所述数据库引擎基于所述查询条件和排查信息,生成排查结构化语句;以及
所述数据库引擎根据所述数据库地址和所述排查结构化语句,获取所述排查点的排查结果。
4.根据权利要求2所述的方法,其中,所述日志管理系统根据所述排查信息对所述排查点进行排查;包括:
所述日志管理系统根据所述配置信息,获取应用日志来源服务器地址和关键日志标签信息;
基于所述应用日志来源服务器地址和关键日志标签信息,调用查询接口对所述排查点进行排查,以获取目标日志信息。
5.根据权利要求4所述的方法,还包括:
为所述排查任务应用链路串分配任务号;
接收来自前端界面的查询请求,其中,所述查询请求包括任务号;
根据所述任务号,确定查询记录集,所述查询记录集包括多个查询记录和所述多个查询记录中每个查询记录的排查信息;以及
在所述查询记录集中每个查询记录的状态为已排查的状态下,根据所述排查信息,获取排查结果。
6.一种测试问题排查装置,包括:
获取模块,用于获取待排查通知报文的排查信息,所述排查信息包括待排查通知报文参数名称和排查线索;
第一确定模块,用于根据所述排查信息,确定所述待排查通知报文的排查点记录集和配置信息,所述排查点记录集包括多个排查点;
第二确定模块,用于确定对所述多个排查点进行排查的最短路径;
排查模块,用于根据所述配置信息,按照所述最短路径对所述多个排查点进行排查,以获取所述多个排查点的测试结果;以及
输出模块,用于输出所述测试结果,其中,所述第二确定模块包括:
第一确定子模块,用于基于所述多个排查点构造有向图,并且确定所述有向图的起点和终点,其中,所述有向图为赋权有向图,所述赋权有向图G=(V,E,W),其中V为有向图各顶点,V0为起点,排查点类型为参数生成点的排查点为终点Vn,W为权重,E{Va,Vb}为顶点Va和顶点Vb之间的边长;
第二确定子模块,用于利用最短路径算法,确定从所述起点到所述终点的最短路径,所述最短路径算法为迪克斯特拉算法;
第三确定子模块,用于根据所述最短路径,确定所述多个排查点中每个排查点的排查点名称和应用名称;以及
生成子模块,用于按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串,
其中,所述按照预设规则,对所述排查点名称和所述应用名称进行拼接而生成排查任务应用链路串包括:
获取最短路径对应的“排查点名称+应用名称”记录集;
根据所述排查线索、所述参数名称和XML文件信息进行轮询解析操作,
其中,所述轮询解析操作包括:读取“排查点名称+应用名称”记录集,轮询获取每条记录对应的“排查点名称”和“应用名称”,在轮询解析结束后,按预设格式拼接字符串;拼接结果作为“排查任务应用链路串”。
7.根据权利要求6所述的装置,其中,所述排查模块包括:
第四确定子模块,用于根据所述排查任务应用链路串,确定所述多个排查点的排查顺序;
第五确定子模块,用于按照所述排查顺序,从所述配置信息中确定所述多个排查点中每个排查点的排查类型,所述排查类型包括日志排查和数据库排查;
第一排查子模块,用于如果所述排查类型为日志排查,则向日志管理系统发送所述排查点的排查信息,以由所述日志管理系统根据所述排查信息对所述排查点进行排查;
第二排查子模块,用于如果所述排查类型为数据库排查,则向数据库引擎发送所述排查点的排查信息,以由所述数据库引擎根据所述排查信息对所述排查点进行排查。
8.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1~5任意一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1~5任意一项所述的方法。
CN202010720446.7A 2020-07-23 2020-07-23 测试问题排查方法、装置、电子设备和介质 Active CN111813691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010720446.7A CN111813691B (zh) 2020-07-23 2020-07-23 测试问题排查方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010720446.7A CN111813691B (zh) 2020-07-23 2020-07-23 测试问题排查方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN111813691A CN111813691A (zh) 2020-10-23
CN111813691B true CN111813691B (zh) 2024-03-01

Family

ID=72860940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010720446.7A Active CN111813691B (zh) 2020-07-23 2020-07-23 测试问题排查方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN111813691B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567190A (zh) * 2010-12-14 2012-07-11 苏州工业园区谱芯科技有限公司 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法
CN107885660A (zh) * 2017-10-31 2018-04-06 平安科技(深圳)有限公司 基金系统自动化测试管理方法、装置、设备及存储介质
CN109960871A (zh) * 2019-03-22 2019-07-02 华南理工大学 一种工业机器人精密减速器性能单工位测试建模调度方法
CN110377524A (zh) * 2019-07-25 2019-10-25 中国工商银行股份有限公司 报表系统的测试方法、装置、系统及介质
CN111290957A (zh) * 2020-02-19 2020-06-16 北京航天测控技术有限公司 面向信号的测试路径规划方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9934131B2 (en) * 2014-02-06 2018-04-03 B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University Using model-based diagnosis to improve software testing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567190A (zh) * 2010-12-14 2012-07-11 苏州工业园区谱芯科技有限公司 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法
CN107885660A (zh) * 2017-10-31 2018-04-06 平安科技(深圳)有限公司 基金系统自动化测试管理方法、装置、设备及存储介质
CN109960871A (zh) * 2019-03-22 2019-07-02 华南理工大学 一种工业机器人精密减速器性能单工位测试建模调度方法
CN110377524A (zh) * 2019-07-25 2019-10-25 中国工商银行股份有限公司 报表系统的测试方法、装置、系统及介质
CN111290957A (zh) * 2020-02-19 2020-06-16 北京航天测控技术有限公司 面向信号的测试路径规划方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于遗传算法的UML活动图测试用例优化研究;李浩;陈锋;;《现代电子技术》;第38卷(第19期);第117-120页 *

Also Published As

Publication number Publication date
CN111813691A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
US9558230B2 (en) Data quality assessment
US8930267B1 (en) Automated transactions clearing system and method
CN107578210B (zh) 合同审批流程的自动化测试方法及装置
US20190050579A1 (en) Entry point finder
US20190052602A1 (en) Generating rules to detect security vulnerabilities based on vulnerability primitives with entry point finder
CN113032244A (zh) 接口测试方法、装置、计算机系统和计算机可读存储介质
CN117632710A (zh) 测试代码的生成方法、装置、设备及存储介质
CN113535577B (zh) 基于知识图谱的应用测试方法、装置、电子设备和介质
CN114281803A (zh) 数据迁移方法、装置、设备、介质和程序产品
CN111813691B (zh) 测试问题排查方法、装置、电子设备和介质
CN110188033B (zh) 数据检测装置、方法、计算机设备及计算机可读存储介质
CN116483888A (zh) 程序评估方法及装置、电子设备和计算机可读存储介质
CN113392024B (zh) 存储过程的测试方法、装置、设备及介质
CN116302974A (zh) 数据测试方法、装置、设备、介质和程序产品
CN115098401A (zh) 一种html报告验证方法、装置、电子设备及存储介质
CN114706856A (zh) 故障处理方法及装置、电子设备和计算机可读存储介质
CN113434382A (zh) 数据库性能监控方法、装置、电子设备及计算机可读介质
CN110618943B (zh) 安防服务测试方法、装置、电子设备及可读存储介质
US10719609B2 (en) Automatic impact detection after patch implementation with entry point finder
CN113515401B (zh) 一种异常交易的定位排错方法、系统、电子设备及介质
US11537503B2 (en) Code editor for user interface component testing
CN114817036A (zh) 决策树测试方法、装置、电子设备和存储介质
CN116661857A (zh) 数据提取方法、装置、设备及存储介质
CN116578566A (zh) 数据库脚本的检测方法、装置、设备、介质和程序产品
CN115086407A (zh) 微服务实例的巡检方法及装置

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
GR01 Patent grant
GR01 Patent grant