巧用UltraEdit分析测试日志文件

    工作中经常会处理一些测试日志,几十M的文件里散落着各种各样的错误或者警告信息,把整个日志处理一遍需要耗费很多的时间,研究了一下 UltraEdit的语法高亮功能,发现可以利用UE加快日志文件分析速度。

    先说一下我的日志格式

xxx_1 start 日志内容 xxx_1 pass yyy_3 start 日志内容 yyy_3 fail zzz_6 start 日志内容 zzz_6 exception

如上,日志按段组织,每段日志对应一个测试项,以"测试项名称+start"开始,以"测试项名称+结果"结束,其中“结果”可能是"pass"、"fail"或者"exception"。通常情况下我只关心"fail"或者"exception"的那些段落。

    思路就是为自己的日志文件配置一个uew文件,也就是UE的语法高亮文件,然后:

1. 使用UE的函数功能(F8键)过滤出日志中的fail或者exception项(在UE右侧列出所有项目,双击后跳转到日志文件中的对应位置)。

    使用这个功能可以快速列出所有失败或者异常的测试项,双击后快速跳转到对应位置。而之前一般是通过查找"fail"或者"exception"字符串的方法,效率很低。

2. 使用代码折叠或者匹配段的功能定位到日志内容里产生错误的位置。

    上面的方法1可以快速找到出错的测试项,但是每一项日志可能有很多行,一行行查找出错位置的话还是很麻烦。利用代码折叠或者匹配段的功能可以快速定位到出错位置。

3. 使用语法高亮功能标识出一些敏感词汇。

    对于一些标识为pass的测试项,日志里可能有些字符串比较重要,比如说发生了某些异常,把这些字符串高亮出来有助于发现问题

 

接下来了解一下UltraEdit的配置文件wordfile的格式。

挖井的和尚大侠的两篇文章已经把wordfile的用法讲的很明白了,再次感谢一下。

UltraEdit的语法着色功能使用方法及心得(原创)Round One^_^

UltraEdit的语法着色功能使用方法及心得(原创)Round Two^_^

唯一需要补充的就是这两篇文章里没有多讲中文字符相关的问题,其实配置文件的关键字组里不支持中文字符,并且也不支持正则表达式。

 

最后来一项项实现这些功能。

1. 列出fail或者exception项

    UE的列出函数功能是通过wordfile里的正则表达式来完成的,注意:UE默认使用的是自己的正则表达式,和我们常见的正则表达式不同,正则表达的格式可以在UE帮助文件里找到。如果习惯于Perl风格的正则表达式,可以在wordfile里使用/Regexp Type = Perl 来启用Perl风格正则表达式。

    要匹配"xxx_num fail"或者"xxx_num exception"项,使用的正则表达式是:

[a-zA-Z_0-9]+ fail 和 [a-zA-Z_0-9]+ exception

    对应wordfile的配置是:

/Function String = "[a-zA-Z_0-9]+ fail"
/Function String 1 = "[a-zA-Z_0-9]+ exception"

 

2. 代码折叠或者匹配段功能。

    使用下面的配置,如果日志里有"cannot open"或者"cannot read"字样,就可以进行折叠。按快捷键ctrl+减号进行折叠。

/Open Fold Strings = "cannot open" "cannot read"
/Close Fold Strings = "cannot open" "cannot read"

匹配段的配置名称是/Open Brace Strings和/Close Brace Strings。具体功能见上面的那个链接。

    结合上面功能,我们点击右侧函数列表(在这里是我们的fail或者exception测试项),跳转到对应的测试项,然后按一下ctrl+减号定位到产生fail的位置。

 

3. 关键字高亮功能。

    把测试过程中一些敏感词进行高亮有助于发现问题,如 reject/failed/timeout等这些词可能暗示程序发生异常。

 

最终实现的效果:

论坛原因暂时无法上图,后续会把图片发上来。

 

你可能感兴趣的:(exception,正则表达式,String,测试,perl,fold)