CN117130810A - 报错信息的收集方法、装置、电子设备及可读存储介质 - Google Patents

报错信息的收集方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117130810A
CN117130810A CN202310945109.1A CN202310945109A CN117130810A CN 117130810 A CN117130810 A CN 117130810A CN 202310945109 A CN202310945109 A CN 202310945109A CN 117130810 A CN117130810 A CN 117130810A
Authority
CN
China
Prior art keywords
error
file
target
code
information
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
Application number
CN202310945109.1A
Other languages
English (en)
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310945109.1A priority Critical patent/CN117130810A/zh
Publication of CN117130810A publication Critical patent/CN117130810A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种报错信息的收集方法、装置、电子设备及可读存储介质,涉及服务器测试技术领域,包括:获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中工作效率低下的问题。

Description

报错信息的收集方法、装置、电子设备及可读存储介质
技术领域
本申请属于服务器测试技术领域,具体涉及一种报错信息的收集方法、装置、电子设备及可读存储介质。
背景技术
为了收集使用测试程序对服务器的功能进行测试而产生的报错信息,需要一种报错信息的收集方法。
在先技术中,工作人员人工对报错信息进行收集。
在实现本申请过程中,发明人发现在先技术中至少存在如下问题:由于需要工作人员人工对报错信息进行收集,导致工作效率低下。
发明内容
本申请旨在提供一种报错信息的收集方法、装置、电子设备及可读存储介质,至少解决在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种报错信息的收集方法,所述方法包括:
获取测试程序的组件所在的目录下所有文件的标识;所述测试程序用于测试服务器的功能;
将所述文件中标识为预设标识的文件确定为目标文件;所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息;
将所述目标文件中的含有预设关键字的整行代码确定为目标代码;所述预设关键字为使用所述报错信息的函数的函数名;
获取所述目标代码中的报错信息。
第二方面,本申请实施例还提供了一种报错信息的收集装置,所述装置包括:
第一获取模块,用于获取测试程序的组件所在的目录下所有文件的标识;所述测试程序用于测试服务器的功能;
第一确定模块,用于将所述文件中标识为预设标识的文件确定为目标文件;所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息;
第二确定模块,用于将所述目标文件中的含有预设关键字的整行代码确定为目标代码;所述预设关键字为使用所述报错信息的函数的函数名;
第二获取模块,用于获取所述目标代码中的报错信息。
第三方面,本申请实施例还提供了一种电子设备,该电子设备包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例还提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
附图说明
图1是本申请实施例提供的一种报错信息的收集方法的步骤流程图;
图2是本申请实施例提供的一种报错信息的收集方法的具体步骤流程图;
图3是本申请实施例提供的另一种报错信息的收集方法的具体步骤流程图;
图4是本申请实施例提供的预设文件中的错误码和错误信息的保存形式示意图;
图5是本申请实施例提供的一种报错信息的收集流程的示意图;
图6是本申请实施例提供的获取shell脚本文件中错误码、错误信息并保存的流程示意图;
图7是本申请实施例提供的获取Python脚本文件中错误码、错误信息并保存的流程示意图;
图8是本申请实施例提供的一种报错信息的收集装置的框图;
图9是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的报错信息的收集方法进行详细地说明。
图1是本申请实施例提供的一种报错信息的收集方法的步骤流程图,如图1所示,该方法可以包括:
步骤101、获取测试程序的组件所在的目录下所有文件的标识。
其中,所述测试程序用于测试服务器的功能。
在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,以便将每个文件的标识分别与预设标识进行比对,将标识为预设标识的文件确定为目标文件。
需要说明的是,测试程序的组件包括测试程序运行时需要的脚本文件,以及一些脚本文件需要搭配的工具的文件夹,测试程序的组件存储于测试机(用于承载测试程序的服务器)的预设的目录下,测试机与待测试的服务器处于同一网络中,测试机与待测试的服务器通过有线或无线通信相连。
测试程序的组件所在的目录下所有文件包括文件类型为脚本文件的文件以及文件类型为文件夹的文件,测试程序的组件所在的目录下所有文件的标识包括测试程序的组件中所有测试程序运行时需要的脚本文件的标识,以及测试程序的组件中所有脚本文件需要搭配的工具的文件夹的标识,具体的,文件的标识为文件的文件扩展名(即文件的后缀名),则测试程序的组件中测试程序运行时需要的脚本文件的标识为测试程序的组件中测试程序运行时需要的脚本文件的文件扩展名(即文件的后缀名),测试程序的组件中脚本文件需要搭配的工具的文件夹的标识为测试程序的组件中脚本文件需要搭配的工具的文件夹的文件扩展名(即文件的后缀名)。
步骤102、将所述文件中标识为预设标识的文件确定为目标文件。
其中,所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息。
在本申请实施例中,通过将文件中标识为预设标识的文件确定为目标文件,进而将目标文件中的含有预设关键字的整行代码确定为目标代码。
具体的,预设标识为含有报错信息的脚本文件的文件扩展名(即文件的后缀名)。
步骤103、将所述目标文件中的含有预设关键字的整行代码确定为目标代码。
其中,所述预设关键字为使用所述报错信息的函数的函数名。
在本申请实施例中,通过将目标文件中的含有预设关键字的整行代码确定为目标代码,进而可以从目标代码中获取报错信息。
步骤104、获取所述目标代码中的报错信息。
在本申请实施例中,通过获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息。
在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
图2是本申请实施例提供的一种报错信息的收集方法的具体步骤流程图,如图2示,该方法可以包括:
步骤201、获取测试程序的组件所在的目录下所有文件的标识。
其中,所述测试程序用于测试服务器的功能。
本步骤的实现方式与上述“步骤101”实现过程类似,此处不再赘述。
步骤202、将所述文件中标识为预设标识的文件确定为目标文件。
其中,所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息。
本步骤的实现方式与上述“步骤102”实现过程类似,此处不再赘述。
可选地,在一些实施例中,所述预设标识包括shell脚本文件的标识和python脚本文件的标识。
在本申请实施例中,通过将文件中标识为shell脚本文件的标识和python脚本文件的标识的文件确定为目标文件,进而将目标文件中的含有预设关键字的整行代码确定为目标代码。
需要说明的是,脚本(Script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。shell脚本文件是一种计算机程序文件,旨在由Unixshell(一种命令行解释器)运行,shell脚本执行的典型操作包括文件操作、程序执行和打印文本等。shell脚本文件的文件扩展名为“.sh”。python脚本文件是使用python语言编写的一整段python程序的文件,python脚本文件的文件扩展名为“.py”。
具体地,在一些实施例中,shell脚本文件的标识为“.sh”,python脚本文件的标识为“.py”。
可选地,在一些实施例中,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应。
需要说明的是,错误码为一组由八个大写字母或数字组成的错误代码,例如“PTBMC001”,错误码可以对应多个错误信息,但错误信息只能对应一个错误码。
步骤203、在所述目标文件为shell脚本文件的情况下,将所述目标文件中的含有LOGFailure函数的函数名的整行代码,确定为所述目标代码。
在本申请实施例中,通过在目标文件为shell脚本文件的情况下,将目标文件中的含有LOGFailure函数的函数名的整行代码,确定为目标代码,以从含有LOGFailure函数的函数名的目标代码中,获取报错信息。
需要说明的是,LOGFailure函数为shell脚本中的函数,LOGFailure函数的作用是将错误信息和错误码打印至log文件(文件扩展名为“.log”的文件)中。
例如,目标文件为shell脚本文件,将在目标文件中的整行代码“LOGFailure"Donot found BMC rule in database"PTBMC001”确定为目标代码,其中,“LOGFailure”为LOGFailure函数的函数名,“Do not found BMC rule in database”为错误信息,“PTBMC001”为错误码,“Do not found BMC rule in database”表示“在数据库中找不到BMC规则”。
步骤204、在所述目标文件为python脚本文件的情况下,将所述目标文件中的含有process_failure函数的函数名的整行代码,确定为所述目标代码。
在本申请实施例中,通过在目标文件为python脚本文件的情况下,将目标文件中的含有process_failure函数的函数名的整行代码,确定为目标代码,以从含有process_failure函数的函数名的目标代码中,获取报错信息。
需要说明的是,process_failure函数为python脚本文件中的函数,process_failure函数的作用是将错误信息和错误码打印至log文件(文件扩展名为“.log”的文件)中。
例如,目标文件为python脚本文件,将在目标文件中的整行代码“process_failure("Do not found BMC rule in database"'PTBMC001')”确定为目标代码,其中,“process_failure”为process_failure函数的函数名,“Do not found BMC rule indatabase”为错误信息,“PTBMC001”为错误码,“Do not found BMC rule in database”表示“在数据库中找不到BMC规则”。
步骤205、在所述目标代码为所述含有LOGFailure函数的函数名的整行代码的情况下,将所述目标代码作为第一字符串,并将所述第一字符串中的第一位置的字段确定为所述错误信息,以及将所述第一字符串中的第二位置的字段确定为所述错误码。
在本申请实施例中,通过在目标代码为含有LOGFailure函数的函数名的整行代码的情况下,将目标代码作为第一字符串,即将目标代码从目标文件中截取出来作为字符串进行处理,并将第一字符串中的第一位置的字段确定为错误信息,以及将第一字符串中的第二位置的字段确定为错误码,以实现获取目标代码中的报错信息。
具体地,在一些实施例中,使用命令awk–F“{print$2}”获取第一字符串中的第一位置的字段,即第一字符串中的第二个字段,使用命令awk–F“{print$3}”获取第一字符串中的第二位置的字段,即第一字符串中的第三个字段。其中,awk是一种处理文本的语言,能够对文本进行复杂的格式处理,“-F”指定分割符,默认分割符为空格,“print”为打印指定内容的命令,“$2”表示按照分割符分割之后第二列数据,即第2个字段,“$3”表示按照分割符分割之后第三列数据,即第3个字段。
例如,目标代码为“LOGFailure"Do not found BMC rule in database"PTBMC001”,则第一字符串为“LOGFailure"Do not found BMC rule in database"PTBMC001”,其中,第一个字段为“LOGFailure”,第二个字段为“Do not found BMC rule indatabase”,第三个字段为“PTBMC001”,使用命令awk–F“{print$2}”获取第一字符串中的第一位置的字段,即第一字符串中的第二个字段“Do not found BMC rule in database”,并将第一字符串中的第二个字段“Do not found BMC rule in database”确定为错误信息,以及使用命令awk–F“{print$3}”获取第一字符串中的第二位置的字段,即第一字符串中的第三个字段“PTBMC001”,并将第一字符串中的第三个字段“PTBMC001”确定为错误码。
步骤206、在所述目标代码为所述含有process_failure函数的函数名的整行代码的情况下,将所述目标代码中的括号中的代码作为第二字符串,并将所述第二字符串中的第一位置的字段确定为所述错误信息,以及将所述所述第二字符串中的第二位置的字段确定为所述错误码。
在本申请实施例中,通过在目标代码为含有process_failure函数的函数名的整行代码的情况下,将目标代码中的括号中的代码作为第二字符串,并将第二字符串中的第一位置的字段作为错误信息,以及将第二字符串中的第二位置的字段作为错误码,以实现获取目标代码中的报错信息。
具体地,在一些实施例中,使用命令awk'BEGIN{FS="(";RS=")"}NF>1{print$NF}'将目标代码中的括号中的代码截取出来,作为第二字符串,然后使用命令awk–F“{print$1}”获取第二字符串中的第一位置的字段,即第二字符串中的第一个字段,使用命令awk–F“{print$2}”获取第二字符串中的第二位置的字段,即第二字符串中的第二个字段,其中,BEGIN表示在读取数据之前执行,FS表示字段分隔符,“FS="("”表示以“(”作为字段分隔符,“RS”表示输入文件的行分隔符,“RS=")"”表示将“)”作为输入文件的行分隔符,NF为每行被分割之后的字段数量,“NF>1”表示每行被分割之后的字段数量大于1,“$NF”表示按照分割符分割之后第NF列数据,“print”为打印指定内容的命令,“$1”表示按照分割符分割之后第一列数据,即第二字符串中的第一个字段,“$2”按照分割符分割之后第二列数据,即第二字符串中的第二个字段。
例如,目标代码为“process_failure("Do not found BMC rule in database"'PTBMC001')”,目标代码中的括号中的代码为“"Do not found BMC rule in database"'PTBMC001'”,使用命令awk'BEGIN{FS="(";RS=")"}NF>1{print$NF}'将目标代码中的括号中的代码截取出来,作为第二字符串,则第二字符串为“"Do not found BMC rule indatabase"'PTBMC001'”,其中,第一个字段为“Do not found BMC rule in database”,第二个字段为“PTBMC001”,使用命令awk–F“{print$1}”获取第二字符串中的第一位置的字段,即第二字符串中的第一个字段“Do not found BMC rule in database”,并将第二字符串中的第一个字段“Do not found BMC rule in database”作为错误信息,以及使用命令awk–F“{print$2}”获取第二字符串中的第二位置的字段,即第二字符串中的第二个字段“PTBMC001”,并将第二字符串中的第二个字段“PTBMC001”作为错误码,以实现获取目标代码中的报错信息。
可选地,在一些实施例中,在步骤206之后,所述方法还包括如下步骤(步骤207):
步骤207、将所述报错信息保存至预设文件中。
在本申请实施例中,通过将报错信息保存至预设文件中,以供工作人员通过查看预设文件获取报错信息。
具体地,在一些实施例中,预设文件为txt(textfile,文本文档格式)文件。
可选地,在一些实施例中,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;步骤207具体包括如下子步骤(子步骤2071至子步骤2072):
子步骤2071、在当前获取到的错误码,与所述预设文件中已保存的所有错误码均不相同的情况下,将所述当前获取到的错误码,以及与所述当前获取到的错误码对应的当前获取到的错误信息保存至所述预设文件中。
在本申请实施例中,在当前获取到的错误码,与预设文件中已保存的所有错误码均不相同的情况下,说明预设文件中没有保存过与当前获取到的错误码相同的错误码,当前获取到的错误码为新的错误码,那么当前获取到的错误码对应的当前获取到的错误信息也为预设文件中没有保存过的错误信息,则将当前获取到的错误码,以及与当前获取到的错误码对应的当前获取到的错误信息保存至预设文件中,以供工作人员通过查看预设文件获取报错信息。
具体地,在一些实施例中,在当前获取到的错误码,与预设文件中已保存的所有错误码均不相同的情况下,将当前获取到的错误码,以及与当前获取到的错误码对应的当前获取到的错误信息保存至预设文件中的同一行,并在该行的下一行插入一个空白行。
子步骤2072、在所述预设文件中已保存的错误码中,存在与所述当前获取到的错误码相同的目标错误码的情况下,将所述当前获取到的错误信息与所述预设文件中,所述目标错误码对应的所有的目标错误信息进行比对,获取比对结果,并在所述比对结果为所述当前获取到的错误信息,与所有的所述目标错误信息均不相同的情况下,将所述当前获取到的错误信息保存至所述预设文件中。
在本申请实施例中,在预设文件中已保存的错误码中,存在与当前获取到的错误码相同的目标错误码的情况下,此时无需在预设文件中保存预设文件中已经存在的错误码,则将当前获取到的错误信息与预设文件中,目标错误码对应的所有的目标错误信息进行比对,获取比对结果,在比对结果为当前获取到的错误信息,与所有的目标错误信息均不相同的情况下,说明预设文件中没有保存过与当前获取到的错误信息相同的错误信息,则将当前获取到的错误信息保存至预设文件中。此外,在比对结果为当前获取到的错误信息,与所有的目标错误信息中的一个目标错误信息相同的情况下,在预设文件中不保存当前获取到的错误码和当前获取到的错误信息,以供工作人员通过查看预设文件获取报错信息。
具体地,在一些实施例中,在比对结果为当前获取到的错误信息,与所有的目标错误信息均不相同的情况下,使用sed命令将当前获取到的错误信息保存至预设文件中的目标错误码所在行的下一行。例如,使用命令sed‘/PTBMC001/a\Do not found BMC rule inthe database’collect_errorinfo.txt命令,将当前获取到的错误信息“Do not foundBMC rule in the database”保存至预设文件“collect_errorinfo.txt”中的目标错误码“PTBMC001”所在行的下一行。
图4为txt文件格式的预设文件中的错误码和错误信息的保存形式示意图,“XPTFRU03”为错误码,位于第一行;“can not find txpn in Command others”为与错误码“XPTFRU03”对应的错误信息,表示“在Command others列表中找不到txpn”,位于第一行;“can not find txpn in list ztencpn”为与错误码“XPTFRU03”对应的错误信息,表示“在ztencpn列表中找不到txpn”,位于第二行;“XPΤΒMC00”为错误码,位于第四行;“Flashfirst BMC Failed.”为与错误码“XPΤΒMC00”对应的错误信息,表示“第一次刷新BMC失败”,位于第四行;“Flash second BMC Failed.”为与错误码“XPΤΒMC00”对应的错误信息,表示“第二次刷新BMC失败”,位于第五行;“Flash main BMC Failed.”为与错误码“XPΤΒMC00”对应的错误信息,表示“刷新主BMC失败”,位于第六行;“Flash standby BMCFailed.”为与错误码“XPΤΒMC00”对应的错误信息,表示“刷新备用BMC失败”,位于第七行;“Flash BMC,Failed.”为与错误码“XPΤΒMC00”对应的错误信息,表示“刷新BMC,失败”,位于第八行。
其中,BMC(Baseboard Management Controller,基板管理控制器)是一个专门的服务处理机,它利用传感器来监视计算机、网络服务器或者是其他硬件驱动设备的状态。
通过执行子步骤2071至子步骤2072可以实现,将报错信息保存至预设文件中,以供工作人员通过查看预设文件获取报错信息。
可选地,在一些实施例中,在步骤202之前,所述方法还包括如下步骤(步骤208至步骤209):
步骤208、获取所述测试程序的组件中所有文件的第一总数量。
在本申请实施例中,通过获取测试程序的组件中所有文件的第一总数量,进而可以根据第一总数量,判断测试程序的组件中所有文件是否均已经被处理(判断是否为目标文件)。
步骤209、获取所述测试程序的组件中,当前已经获得比对结果的第一文件的数量。
其中,所述比对结果为所述文件的标识与所述预设标识进行比对获得的结果。
需要说明的是,第一文件的比对结果有两种,第一文件的第一种比对结果为第一文件的标识与预设标识相同,说明第一文件为目标文件,当前第一文件已经被确定为目标文件,并已经使用前述的方法获取了第一文件中的报错信息;第一文件的第二种比对结果为第一文件的标识与预设标识不相同,说明第一文件不是目标文件。
在本申请实施例中,通过获取测试程序的组件中,当前已经获得比对结果的第一文件的数量,进而可以根据第一文件的数量,判断测试程序的组件中所有文件是否均已经被处理(判断是否为目标文件)。
可选地,在一些实施例中,步骤202包括如下子步骤(子步骤2021至子步骤2022)
子步骤2021、在所述第一文件的数量小于所述第一总数量的情况下,将所述测试程序的组件中,当前未获得所述比对结果的第二文件的标识与所述预设标识进行比对,获取所述第二文件的比对结果。
在本申请实施例中,通过在第一文件的数量小于第一总数量的情况下,说明所述测试程序的组件中还有没有被处理(判断是否为目标文件)过的文件,将测试程序的组件中,当前未获得比对结果的第二文件的标识与预设标识进行比对,获取第二文件的比对结果,进而完成对第二文件是否为目标文件的判断。此外,在第一文件的数量等于第一总数量的情况下,说明所述测试程序的组件中所有文件均已被处理(判断是否为目标文件)过,即完成对测试程序的组件中所有文件的处理。
子步骤2022、在所述第二文件的比对结果为所述第二文件的标识与所述预设标识相同的情况下,将所述第二文件确定为所述目标文件。
在本申请实施例中,通过在第二文件的比对结果为第二文件的标识与预设标识相同的情况下,将第二文件确定为目标文件,以获取作为目标文件的第二文件中的目标代码。
通过执行步骤208、步骤209、子步骤2021、子步骤2022可以实现,将测试程序的组件中所有的标识为预设标识的文件确定为目标文件。
综上所述,在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
图3是本申请实施例提供的另一种报错信息的收集方法的具体步骤流程图,如图3示,该方法可以包括:
步骤301、获取测试程序的组件所在的目录下所有文件的标识。
其中,所述测试程序用于测试服务器的功能。
本步骤的实现方式与上述“步骤101”实现过程类似,此处不再赘述。
步骤302、将所述文件中标识为预设标识的文件确定为目标文件。
其中,所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息。
本步骤的实现方式与上述“步骤102”实现过程类似,此处不再赘述。
可选地,在一些实施例中,所述预设标识包括shell脚本文件的标识和python脚本文件的标识。
在本申请实施例中,通过将文件中标识为shell脚本文件的标识和python脚本文件的标识的文件确定为目标文件,进而将目标文件中的含有预设关键字的整行代码确定为目标代码。
需要说明的是,脚本(Script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。shell脚本文件是一种计算机程序文件,旨在由Unixshell(一种命令行解释器)运行,shell脚本执行的典型操作包括文件操作、程序执行和打印文本等。shell脚本文件的文件扩展名为“.sh”。python脚本文件是使用python语言编写的一整段python程序的文件,python脚本文件的文件扩展名为“.py”。
具体地,在一些实施例中,shell脚本文件的标识为“.sh”,python脚本文件的标识为“.py”。
步骤303、将所述目标文件中的含有预设关键字的整行代码确定为目标代码。
其中,所述预设关键字为使用所述报错信息的函数的函数名。
本步骤的实现方式与上述“步骤103”实现过程类似,此处不再赘述。
步骤304、获取所述目标文件中目标代码的第二总数量。
在本申请实施例中,通过获取目标文件中目标代码的第二总数量,进而根据第二总数量判断目标文件中的所有目标代码是否均已被处理(获取目标代码中的报错信息)。
具体地,在一些实施例中,在目标代码为含有LOGFailure函数的函数名的整行代码的情况下,由于LOGFailure函数的函数名的数量等于目标文件中目标代码的第二总数量,则通过获取LOGFailure函数的函数名的数量来获取目标文件中目标代码的第二总数量,即使用命令grep–c“LOGFailure”统计出目标文件中LOGFailure函数的函数名的数量;同理,在目标代码为含有process_failure函数的函数名的整行代码的情况下,由于process_failure函数的函数名的数量等于目标文件中目标代码的第二总数量,则通过获取process_failure函数的函数名的数量来获取目标文件中目标代码的第二总数量,即使用命令grep–c“process_failure”统计出目标文件中process_failure函数的函数名的数量。
其中,grep(Globally search a Regular Expression and Print,全局搜索正则表达式并打印)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;“grep–c”为在文件中查找关键字的数量的命令。
步骤305、获取所述目标文件的所有目标代码中,当前已经被获取过所述报错信息的第一目标代码的数量。
在本申请实施例中,通过获取目标文件的所有目标代码中,当前已经被获取过报错信息的第一目标代码的数量,进而根据第一目标代码的数量,判断目标文件中的所有目标代码是否均已被处理(获取目标代码中的报错信息)。
需要说明的是,第一目标代码中的报错信息已经通过使用前述的方法获取。
步骤306、在所述第一目标代码的数量小于所述第二总数量的情况下,获取所述目标文件的所有目标代码中,当前未被获取过所述报错信息的第二目标代码。
在本申请实施例中,通过在第一目标代码的数量小于第二总数量的情况下,获取目标文件的所有目标代码中,当前未被获取过报错信息的第二目标代码,进而获取第二目标代码中的报错信息。
步骤307、获取所述第二目标代码中的报错信息。
在本申请实施例中,通过获取第二目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息。
可选地,在一些实施例中,在步骤307之后,所述方法还包括如下步骤(步骤308):
步骤308、将所述报错信息保存至预设文件中。
本步骤的实现方式与上述“步骤207”实现过程类似,此处不再赘述。
可选地,在一些实施例中,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;步骤308具体包括如下子步骤(子步骤3081至子步骤3082):
子步骤3081、在当前获取到的错误码,与所述预设文件中已保存的所有错误码均不相同的情况下,将所述当前获取到的错误码,以及与所述当前获取到的错误码对应的当前获取到的错误信息保存至所述预设文件中。
本步骤的实现方式与上述“子步骤2071”实现过程类似,此处不再赘述。
子步骤3082、在所述预设文件中已保存的错误码中,存在与所述当前获取到的错误码相同的目标错误码的情况下,将所述当前获取到的错误信息与所述预设文件中,所述目标错误码对应的所有的目标错误信息进行比对,获取比对结果,并在所述比对结果为所述当前获取到的错误信息,与所有的所述目标错误信息均不相同的情况下,将所述当前获取到的错误信息保存至所述预设文件中。
本步骤的实现方式与上述“子步骤2072”实现过程类似,此处不再赘述。
可选地,在一些实施例中,在步骤302之前,所述方法还包括如下步骤(步骤309至步骤310):
步骤309、获取所述测试程序的组件中所有文件的第一总数量。
本步骤的实现方式与上述“步骤208”实现过程类似,此处不再赘述。
步骤310、获取所述测试程序的组件中,当前已经获得比对结果的第一文件的数量。
其中,所述比对结果为所述文件的标识与所述预设标识进行比对获得的结果。
本步骤的实现方式与上述“步骤209”实现过程类似,此处不再赘述。
可选地,在一些实施例中,步骤302包括如下子步骤(子步骤3021至子步骤3022)
子步骤3021、在所述第一文件的数量小于所述第一总数量的情况下,将所述测试程序的组件中,当前未获得所述比对结果的第二文件的标识与所述预设标识进行比对,获取所述第二文件的比对结果。
本步骤的实现方式与上述“子步骤2021”实现过程类似,此处不再赘述。
子步骤3022、在所述第二文件的比对结果为所述第二文件的标识与所述预设标识相同的情况下,将所述第二文件确定为所述目标文件。
本步骤的实现方式与上述“子步骤2022”实现过程类似,此处不再赘述。
综上所述,在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
可选地,参照图5,在一些实施例中,本申请实施例提供的报错信息的收集方法对应的报错信息的流程包括:X1、顺序获取测试程序的组件中一个文件,即获取测试程序的组件所在的目录下一个文件的标识;X2、组件中文件是否已全部处理,即判断测试程序的组件中所有文件是否均已经被处理(判断是否为目标文件);X3、结束,即在测试程序的组件中所有文件均已经被处理(判断是否为目标文件)的情况下,结束本次流程;X4、是否脚本文件,即在测试程序的组件中所有文件不是全部已经被处理(判断是否为目标文件)的情况下,判断该文件是否为脚本文件;X5、是否shell脚本,即在该文件为脚本文件的情况下,判断该文件是否为shell脚本文件;X6、获取Python脚本中错误码、错误信息并保存,即在该文件不是shell脚本文件的情况下,获取该文件(Python脚本文件)中的错误码、错误信息并保存至预设文件,然后处理下一个文件;X7、获取shell脚本中错误码、错误信息并保存,即在该文件是shell脚本文件的情况下,获取该文件中的错误码、错误信息并保存至预设文件,然后处理下一个文件。
可选地,参照图6,在一些实施例中,获取shell脚本文件中错误码、错误信息并保存的流程包括:Y1、顺序抓取LOGFailure关键字,并获取当前行,即将目标文件中的含有LOGFailure函数的函数名的整行代码,确定为目标代码;Y2、是否已处理过全部LOGFailure关键字,即判断目标文件中的所有目标代码是否均已被处理(获取目标代码中的报错信息);Y3、结束,即在目标文件中的所有目标代码均已被处理(获取目标代码中的报错信息)的情况下,结束本次流程;Y4、解析LOGFailure第一个参数为错误信息,第二个参数为错误码,即在目标文件中的所有目标代码不是全部已经被处理(获取目标代码中的报错信息)的情况下,获取目标文件的所有目标代码中,当前未被获取过所述报错信息的第二目标代码,并获取第二目标代码中的报错信息;Y5、错误码是否已保存过,即判断当前获取到的错误码,与预设文件中已保存的所有错误码是否相同;Y6、保存错误信息和错误码,即在当前获取到的错误码,与预设文件中已保存的所有错误码均不相同的情况下,将当前获取到的错误码,以及与当前获取到的错误码对应的当前获取到的错误信息保存至预设文件中,然后处理下一个目标代码;Y7、错误信息是否已保存过,即在预设文件中已保存的错误码中,存在与当前获取到的错误码相同的目标错误码的情况下,判断当前获取到的错误信息,与所有的目标错误信息是否相同;Y8、仅保存错误信息,即在当前获取到的错误信息,与所有的目标错误信息均不相同的情况下,将当前获取到的错误信息保存至预设文件中,然后处理下一个目标代码。
可选地,参照图7,在一些实施例中,获取Python脚本文件中错误码、错误信息并保存的流程包括:Z1、顺序抓取process_failure关键字,并获取当前行,即将目标文件中的含有process_failure函数的函数名的整行代码,确定为目标代码;Z2、是否已处理过全部process_failure关键字,即判断目标文件中的所有目标代码是否均已被处理(获取目标代码中的报错信息);Z3、结束,即在目标文件中的所有目标代码均已被处理(获取目标代码中的报错信息)的情况下,结束本次流程;Z4、解析process_failure第一个参数为错误信息,第二个参数为错误码,即在目标文件中的所有目标代码不是全部已经被处理(获取目标代码中的报错信息)的情况下,获取目标文件的所有目标代码中,当前未被获取过所述报错信息的第二目标代码,并获取第二目标代码中的报错信息;Z5、错误码是否已保存过,即判断当前获取到的错误码,与预设文件中已保存的所有错误码是否相同;Z6、保存错误信息和错误码,即在当前获取到的错误码,与预设文件中已保存的所有错误码均不相同的情况下,将当前获取到的错误码,以及与当前获取到的错误码对应的当前获取到的错误信息保存至预设文件中,然后处理下一个目标代码;Z7、错误信息是否已保存过,即在预设文件中已保存的错误码中,存在与当前获取到的错误码相同的目标错误码的情况下,判断当前获取到的错误信息,与所有的目标错误信息是否相同;Z8、仅保存错误信息,即在当前获取到的错误信息,与所有的目标错误信息均不相同的情况下,将当前获取到的错误信息保存至预设文件中,然后处理下一个目标代码。
综上所述,在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
图8是本申请实施例提供的一种报错信息的收集装置的框图,如图8所示,该装置400包括:
第一获取模块401,用于获取测试程序的组件所在的目录下所有文件的标识;所述测试程序用于测试服务器的功能;
第一确定模块402,用于将所述文件中标识为预设标识的文件确定为目标文件;所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息;
第二确定模块403,用于将所述目标文件中的含有预设关键字的整行代码确定为目标代码;所述预设关键字为使用所述报错信息的函数的函数名;
第二获取模块404,用于获取所述目标代码中的报错信息。
可选地,第二确定模块403,具体包括:
第一确定子模块,用于在所述目标文件为shell脚本文件的情况下,将所述目标文件中的含有LOGFailure函数的函数名的整行代码,确定为所述目标代码;
第二确定子模块,用于在所述目标文件为python脚本文件的情况下,将所述目标文件中的含有process_failure函数的函数名的整行代码,确定为所述目标代码。
可选地,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;第二获取模块404,具体包括:
第三确定子模块,用于在所述目标代码为所述含有LOGFailure函数的函数名的整行代码的情况下,将所述目标代码作为第一字符串,并将所述第一字符串中的第一位置的字段确定为所述错误信息,以及将所述第一字符串中的第二位置的字段确定为所述错误码;
第四确定子模块,用于在所述目标代码为所述含有process_failure函数的函数名的整行代码的情况下,将所述目标代码中的括号中的代码作为第二字符串,并将所述第二字符串中的第一位置的字段确定为所述错误信息,以及将所述所述第二字符串中的第二位置的字段确定为所述错误码。
可选地,所述预设标识包括shell脚本文件的标识和python脚本文件的标识。
可选地,该装置400还包括:
保存模块,用于将所述报错信息保存至预设文件中。
可选地,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;保存模块,具体包括:
第一保存子模块,用于在当前获取到的错误码,与所述预设文件中已保存的所有错误码均不相同的情况下,将所述当前获取到的错误码,以及与所述当前获取到的错误码对应的当前获取到的错误信息保存至所述预设文件中;
第二保存子模块,用于在所述预设文件中已保存的错误码中,存在与所述当前获取到的错误码相同的目标错误码的情况下,将所述当前获取到的错误信息与所述预设文件中,所述目标错误码对应的所有的目标错误信息进行比对,获取比对结果,并在所述比对结果为所述当前获取到的错误信息,与所有的所述目标错误信息均不相同的情况下,将所述当前获取到的错误信息保存至所述预设文件中。
可选地,该装置400还包括:
第三获取模块,用于获取所述测试程序的组件中所有文件的第一总数量;
第四获取模块,用于获取所述测试程序的组件中,当前已经获得比对结果的第一文件的数量;所述比对结果为所述文件的标识与所述预设标识进行比对获得的结果;
可选地,第一确定模块,具体包括:
第一获取子模块,用于在所述第一文件的数量小于所述第一总数量的情况下,将所述测试程序的组件中,当前未获得所述比对结果的第二文件的标识与所述预设标识进行比对,获取所述第二文件的比对结果;
第五确定子模块,用于在所述第二文件的比对结果为所述第二文件的标识与所述预设标识相同的情况下,将所述第二文件确定为所述目标文件。
可选地,该装置400还包括:
第五获取模块,用于获取所述目标文件中目标代码的第二总数量;
第六获取模块,用于获取所述目标文件的所有目标代码中,当前已经被获取过所述报错信息的第一目标代码的数量;
可选地,第二获取模块,具体包括:
第二获取子模块,用于在所述第一目标代码的数量小于所述第二总数量的情况下,获取所述目标文件的所有目标代码中,当前未被获取过所述报错信息的第二目标代码;
第三获取子模块,用于获取所述第二目标代码中的报错信息。
本申请实施例中的报错信息的收集装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的报错信息的收集装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的报错信息的收集装置能够实现图1的方法实施例中报错信息的收集装置实现的各个过程,为避免重复,这里不再赘述。
通过本申请实施例可以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
可选地,本申请实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述报错信息的收集方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图9为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、以及处理器510等部件。
本领域技术人员可以理解,电子设备500还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图9中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器510,用于获取测试程序的组件所在的目录下所有文件的标识;所述测试程序用于测试服务器的功能;
将所述文件中标识为预设标识的文件确定为目标文件;所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息;
将所述目标文件中的含有预设关键字的整行代码确定为目标代码;所述预设关键字为使用所述报错信息的函数的函数名;
获取所述目标代码中的报错信息。
在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
可选地,处理器510,还用于在所述目标文件为shell脚本文件的情况下,将所述目标文件中的含有LOGFailure函数的函数名的整行代码,确定为所述目标代码;在所述目标文件为python脚本文件的情况下,将所述目标文件中的含有process_failure函数的函数名的整行代码,确定为所述目标代码。
可选地,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;处理器510,还用于在所述目标代码为所述含有LOGFailure函数的函数名的整行代码的情况下,将所述目标代码作为第一字符串,并将所述第一字符串中的第一位置的字段确定为所述错误信息,以及将所述第一字符串中的第二位置的字段确定为所述错误码;在所述目标代码为所述含有process_failure函数的函数名的整行代码的情况下,将所述目标代码中的括号中的代码作为第二字符串,并将所述第二字符串中的第一位置的字段确定为所述错误信息,以及将所述所述第二字符串中的第二位置的字段确定为所述错误码。
可选地,所述预设标识包括shell脚本文件的标识和python脚本文件的标识。
可选地,处理器510,还用于将所述报错信息保存至预设文件中。
可选地,所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;处理器510,还用于在当前获取到的错误码,与所述预设文件中已保存的所有错误码均不相同的情况下,将所述当前获取到的错误码,以及与所述当前获取到的错误码对应的当前获取到的错误信息保存至所述预设文件中;在所述预设文件中已保存的错误码中,存在与所述当前获取到的错误码相同的目标错误码的情况下,将所述当前获取到的错误信息与所述预设文件中,所述目标错误码对应的所有的目标错误信息进行比对,获取比对结果,并在所述比对结果为所述当前获取到的错误信息,与所有的所述目标错误信息均不相同的情况下,将所述当前获取到的错误信息保存至所述预设文件中。
可选地,处理器510,还用于获取所述测试程序的组件中所有文件的第一总数量;获取所述测试程序的组件中,当前已经获得比对结果的第一文件的数量;所述比对结果为所述文件的标识与所述预设标识进行比对获得的结果;
可选地,处理器510,还用于在所述第一文件的数量小于所述第一总数量的情况下,将所述测试程序的组件中,当前未获得所述比对结果的第二文件的标识与所述预设标识进行比对,获取所述第二文件的比对结果;在所述第二文件的比对结果为所述第二文件的标识与所述预设标识相同的情况下,将所述第二文件确定为所述目标文件。
可选地,处理器510,还用于获取所述目标文件中目标代码的第二总数量;获取所述目标文件的所有目标代码中,当前已经被获取过所述报错信息的第一目标代码的数量;
可选地,处理器510,还用于在所述第一目标代码的数量小于所述第二总数量的情况下,获取所述目标文件的所有目标代码中,当前未被获取过所述报错信息的第二目标代码;获取所述第二目标代码中的报错信息。
在本申请实施例中,通过获取测试程序的组件所在的目录下所有文件的标识,测试程序用于测试服务器的功能;将文件中标识为预设标识的文件确定为目标文件,预设标识为含有报错信息的脚本文件的标识,报错信息表征服务器的功能异常,报错信息为测试程序测试服务器的功能产生的报错信息;将目标文件中的含有预设关键字的整行代码确定为目标代码,预设关键字为使用报错信息的函数的函数名;获取目标代码中的报错信息,以实现收集使用测试程序对服务器的功能进行测试而产生的报错信息,且无需人工进行收集,提高了工作效率,解决了在先技术中由于需要工作人员人工对报错信息进行收集,导致工作效率低下的问题。
应理解的是,本申请实施例中,输入单元504可以包括图形处理器(GraphicsProcessing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元506可包括显示面板5061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板5061。用户输入单元507包括触控面板5071以及其他输入设备5072中的至少一种。触控面板5071,也称为触摸屏。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器509可以包括易失性存储器或非易失性存储器,或者,存储器509可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器509包括但不限于这些和任意其它适合类型的存储器。
处理器510可包括一个或多个处理单元;可选的,处理器510集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述报错信息的收集方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述报错信息的收集方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (11)

1.一种报错信息的收集方法,其特征在于,所述方法包括:
获取测试程序的组件所在的目录下所有文件的标识;所述测试程序用于测试服务器的功能;
将所述文件中标识为预设标识的文件确定为目标文件;所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息;
将所述目标文件中的含有预设关键字的整行代码确定为目标代码;所述预设关键字为使用所述报错信息的函数的函数名;
获取所述目标代码中的报错信息。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标文件中的含有预设关键字的整行代码确定为目标代码,包括:
在所述目标文件为shell脚本文件的情况下,将所述目标文件中的含有LOGFailure函数的函数名的整行代码,确定为所述目标代码;
在所述目标文件为python脚本文件的情况下,将所述目标文件中的含有process_failure函数的函数名的整行代码,确定为所述目标代码。
3.根据权利要求2所述的方法,其特征在于,
所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;
所述获取所述目标代码中的报错信息,包括:
在所述目标代码为所述含有LOGFailure函数的函数名的整行代码的情况下,将所述目标代码作为第一字符串,并将所述第一字符串中的第一位置的字段确定为所述错误信息,以及将所述第一字符串中的第二位置的字段确定为所述错误码;
在所述目标代码为所述含有process_failure函数的函数名的整行代码的情况下,将所述目标代码中的括号中的代码作为第二字符串,并将所述第二字符串中的第一位置的字段确定为所述错误信息,以及将所述所述第二字符串中的第二位置的字段确定为所述错误码。
4.根据权利要求1所述的方法,其特征在于,所述预设标识包括shell脚本文件的标识和python脚本文件的标识。
5.根据权利要求1所述的方法,其特征在于,在所述获取所述目标代码中的报错信息之后,所述方法还包括:
将所述报错信息保存至预设文件中。
6.根据权利要求2所述的方法,其特征在于,
所述报错信息包括错误码和错误信息,所述错误信息为所述服务器的故障的描述信息,所述错误码为所述服务器的故障的类型信息;所述错误码与至少一个所述错误信息对应;
所述将所述报错信息保存至预设文件中,包括:
在当前获取到的错误码,与所述预设文件中已保存的所有错误码均不相同的情况下,将所述当前获取到的错误码,以及与所述当前获取到的错误码对应的当前获取到的错误信息保存至所述预设文件中;
在所述预设文件中已保存的错误码中,存在与所述当前获取到的错误码相同的目标错误码的情况下,将所述当前获取到的错误信息与所述预设文件中,所述目标错误码对应的所有的目标错误信息进行比对,获取比对结果,并在所述比对结果为所述当前获取到的错误信息,与所有的所述目标错误信息均不相同的情况下,将所述当前获取到的错误信息保存至所述预设文件中。
7.根据权利要求1所述的方法,其特征在于,在所述将所述文件中标识为预设标识的文件确定为目标文件之前,所述方法还包括:
获取所述测试程序的组件中所有文件的第一总数量;
获取所述测试程序的组件中,当前已经获得比对结果的第一文件的数量;所述比对结果为所述文件的标识与所述预设标识进行比对获得的结果;
所述将所述文件中标识为预设标识的文件确定为目标文件,包括:
在所述第一文件的数量小于所述第一总数量的情况下,将所述测试程序的组件中,当前未获得所述比对结果的第二文件的标识与所述预设标识进行比对,获取所述第二文件的比对结果;
在所述第二文件的比对结果为所述第二文件的标识与所述预设标识相同的情况下,将所述第二文件确定为所述目标文件。
8.根据权利要求1所述的方法,其特征在于,在所述获取所述目标代码中的报错信息之前,所述方法还包括:
获取所述目标文件中目标代码的第二总数量;
获取所述目标文件的所有目标代码中,当前已经被获取过所述报错信息的第一目标代码的数量;
所述获取所述目标代码中的报错信息,包括:
在所述第一目标代码的数量小于所述第二总数量的情况下,获取所述目标文件的所有目标代码中,当前未被获取过所述报错信息的第二目标代码;
获取所述第二目标代码中的报错信息。
9.一种报错信息的收集装置,其特征在于,所述装置包括:
第一获取模块,用于获取测试程序的组件所在的目录下所有文件的标识;所述测试程序用于测试服务器的功能;
第一确定模块,用于将所述文件中标识为预设标识的文件确定为目标文件;所述预设标识为含有报错信息的脚本文件的标识;所述报错信息表征所述服务器的功能异常;所述报错信息为所述测试程序测试所述服务器的功能产生的报错信息;
第二确定模块,用于将所述目标文件中的含有预设关键字的整行代码确定为目标代码;所述预设关键字为使用所述报错信息的函数的函数名;
第二获取模块,用于获取所述目标代码中的报错信息。
10.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至8中任一项所述的报错信息的收集方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至8中任一项所述的报错信息的收集方法的步骤。
CN202310945109.1A 2023-07-28 2023-07-28 报错信息的收集方法、装置、电子设备及可读存储介质 Pending CN117130810A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310945109.1A CN117130810A (zh) 2023-07-28 2023-07-28 报错信息的收集方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310945109.1A CN117130810A (zh) 2023-07-28 2023-07-28 报错信息的收集方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN117130810A true CN117130810A (zh) 2023-11-28

Family

ID=88861850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310945109.1A Pending CN117130810A (zh) 2023-07-28 2023-07-28 报错信息的收集方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117130810A (zh)

Similar Documents

Publication Publication Date Title
US20080065928A1 (en) Technique for supporting finding of location of cause of failure occurrence
CN110377481B (zh) 日志管理方法、装置、设备及存储介质
CN112631913A (zh) 应用程序的运行故障监控方法、装置、设备和存储介质
CN109491819A (zh) 一种诊断服务器故障的方法和系统
CN111767173A (zh) 网络设备数据处理方法、装置、计算机设备和存储介质
US7921199B1 (en) Method and system for event notification
US20100042571A1 (en) Methods, Systems, and Computer-Readable Media for Facility Integrity Testing
CN112328631A (zh) 一种生产故障分析方法、装置、电子设备及存储介质
CN115357450A (zh) 基于人工智能的节点维护方法、装置、计算机设备及介质
CN107908525B (zh) 告警处理方法、设备及可读存储介质
CN110515792B (zh) 基于web版任务管理平台的监控方法、装置以及计算机设备
CN112463883A (zh) 基于大数据同步平台的可靠性监控方法、装置、设备
CN112488325A (zh) 运维工单处理方法、装置、计算机设备和存储介质
CN117130810A (zh) 报错信息的收集方法、装置、电子设备及可读存储介质
CN113282435B (zh) 应用异常的处理方法和电子设备
CN112818204B (zh) 一种业务的处理方法、装置、设备及存储介质
JP5088738B2 (ja) 障害監視装置及び障害監視方法並びにそのためのプログラム
CN113918384A (zh) 数据保存方法、装置、设备及存储介质
CN113127029A (zh) 固件更新方法、装置、电子设备及存储介质
CN112527343A (zh) 固件更新方法、装置、计算机设备和存储介质
JP4918669B2 (ja) リモートメンテナンスシステムと方法およびプログラム
JP2010055305A (ja) 診断項目登録システム、方法及びプログラム
CN111953544B (zh) 一种服务器的故障检测方法、装置、设备及存储介质
CN108388442A (zh) 一种安卓系统中固件的补丁管理方法及系统
CN112711608B (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