博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RIDE屏蔽INFO级别的日志输出
阅读量:4289 次
发布时间:2019-05-27

本文共 1750 字,大约阅读时间需要 5 分钟。

RIDE屏蔽INFO级别的日志输出

 

最近参与自动化测试项目,项目测试内容包括软硬件,内容较复杂,每执行一个测试用例就输出了数万条INFO类型日志,严重影响测试人员查看日志、也影响了用例执行速度,因此需要减少不必要的日志输出。粗略看了一下,修改了一下RIDE的源码基本可以选择性输出日志级别,提高效率。

 

1、用例

笔者此处编写了一个简单的用例,包括变量赋值,log输出,也包括错误日志,如下图所示:

 

2、更改日志输出级别

正常情况下输出如下:

如图,Log函数的输出一般是测试人员便于调试而输出的,其类型为INFO,而第二行却为默认输出的,在一个大型测试项目中,会包括大量变量和关键字调用,若不必要的INFO输出过多就会影响执行和查找效率,因此可以根据需要将其给屏蔽掉。笔者根据第一行 command: pybot.bat --argumentfile c:\users\xg\appdata\local\temp\RIDEl3aebz.d\argfile.txt --listener E:\Software\Python\python2.7.13\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py 发现日志输出相关的文件包括TestRunnerAgent.py和对应的库testrunner,因此在其下面看了下相关源码,发现 python2.7.13\Lib\site-packages\robotide\contrib\testrunner\testrunner.py中有一个get_message_log_level函数,该函数获取并设置了一个最小的log_level,默认level即为INFO,根据其import发现在python2.7.13\Lib\site-packages\robotide\lib\robot\output\loghelper.py中定义了LEVELS的种类,LEVELS = {

  'NONE'  : 6,
  'FAIL'  : 5,
  'ERROR' : 4,
  'WARN'  : 3,
  'INFO'  : 2,
  'DEBUG' : 1,
  'TRACE' : 0,
} ,因此猜想将get_message_log_level中min_log_level_number 设置为WARN即可屏蔽掉INFO输出,经过测试发现果然可以屏蔽掉INFO输出,屏蔽后之输出了FAIL类型的log,如下图所示:

def get_message_log_level(command):        min_log_level_number = LOG_LEVELS['INFO'] #INFO WARN        if '-L' in command:            switch = '-L'        elif '--loglevel' in command:            switch = '--loglevel'        else:            return min_log_level_number        i = command.index(switch)        if len(command) == i:            return        level = command[i+1].upper().split(':')[0]        return LOG_LEVELS.get(level, min_log_level_number)

但是,此时我们的log也失效了,这是因为log默认为INFO级别,我们需要在log中设置其级别为WARN即可正常输出log了,其更改和对应输出如下图所示:

即:我们可以根据需要设置最小的log级别,一旦设置后log 函数的级别必须不低于该级别,否则log函数将无法输出。

如果需要定制自己的log输出,可以更改TestRunnerAgent.py文件,也可以自定义日志输出类。

参考文献:

RF官方文档 :

 

3、说明

测试系统为:python2.7.13, RIDE1.5.2.1

转载地址:http://sflgi.baihongyu.com/

你可能感兴趣的文章
python异常处理
查看>>
python sys.exc_info()详解
查看>>
python中os模块作用
查看>>
ubuntu python subprocess模块执行python脚本
查看>>
python xticks()函数设置X轴方法--刻度、标签
查看>>
HTTP协议原理
查看>>
python正则表达式模块re
查看>>
python爬虫总结
查看>>
python网络编程基础--http
查看>>
python 构造http请求对象-Request对象
查看>>
解决Ubuntu16.04更新源时显示“暂时不能解析域名”问题
查看>>
Ubuntu16.04运行清空文件命令时提示权限不够解决方法
查看>>
shell脚本编写笔记
查看>>
Ubuntu16.04实现定时免密远程拷贝脚本
查看>>
Ubuntu 16.04安装Docker
查看>>
Docker报错:Temporary failure in name resolution&Proxy Authentication Required
查看>>
mySQL常用操作及基础知识
查看>>
Ubuntu16.04安装python3.6
查看>>
linux安装Anaconda
查看>>
Ubunu16.04安装CPU版本Tensorflow
查看>>