RIDE屏蔽INFO级别的日志输出

2023-10-27

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官方文档 4.3 Listener interfacehttp://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface

RobotFramework二次开发之--输出Message Loghttps://www.jianshu.com/p/fe4884c0b088

 

3、说明

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RIDE屏蔽INFO级别的日志输出 的相关文章

随机推荐

  • (六十五)基于决策树的信用评级

    决策树的结构与划分选择 20世纪70年代末至20世纪80年代初 Quinlan开发了一系列决策树模型 最开始是ID3算法 后来是C4 5算法 随后又发布了C5 0算法 1984年 多位统计学家在著名的 Classification and
  • QPixmap vs. QImage

    Development Tutorials Graphics Performance lt Development Tutorials Contents 1 QPixmap vs QImage 1 1 QImage 1 2 QPixmap
  • docker入门实践,实战搭建nginx

    查找现成的nginx镜像 可以通过docker search nginx 命令来获取 可以看到有很多 我们一般选取stars最多 即第1个来使用 docker search nginx NAME DESCRIPTION STARS OFFI
  • 牛客网-数列还原

    数列还原 解题思路 稍加分析 根据数据规模 先对模糊的数字全排列吗 然后组成完整的数组 再判断完整的数组是否满足条件 失误 把简单的问题想的有点复杂了 import java util public class Main public st
  • 从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

    输入要求 输入一个字符 输出要求 如果该字符是大写字母 则输出 upper 若是小写字母 则输出 lower 若是数字字符 则输出 digit 若是其他字符 则输出 other 输出不含双引号 输入样例 1 输出样例 digit inclu
  • 设计模式——代理模式

    代理模式 代理模式介绍 代理模式特点 代理模式的结构 动态代理 代理模式介绍 其实在我们生活中各行各业也都会设计到代理 比如租房子 我们可以找中介公司 让中介公司帮我们去找合适的房源 这就是代理模式 再比如 有些同学找男朋友女朋友也会通过中
  • go 判断两个 slice/struct/map 是否相等

    可以通过 reflect DeepEqual 比较两个 slice struct map 是否相等 package main import fmt reflect type A struct s string func main a1 A
  • python_基础算法

    一 二分查找 1 def binary binary para search 2 bi int len binary para 2 3 if search binary para 0 4 print 数存在 并存在在列表第一位 5 elif
  • Kotlin协程的简单用法:1、GlobalScope(不建议使用);2、lifecycleScope、viewModelScope(建议使用);

    1 协程 Coroutine 协程 就像非常轻量级的线程 线程是由系统调度的 线程切换或线程阻塞的开销都比较大 而协程依赖于线程 但是协程挂起时不需要阻塞线程 协程是由开发者控制的 所以协程也像用户态的线程 非常轻量级 一个线程中可以创建任
  • android--调用系统浏览器,Android 调用系统浏览器

    正常调用系统默认浏览器 Intent intent new Intent intent setAction android intent action VIEW Uri content url Uri parse url intent se
  • 2.8 C++ 友元机制 2.9 运算符重载

    书接上回 对类内的 非 静态成员函数 定义了指针 那么 通过这两种指针来调用这两个函数 应该写法如下 include
  • Opencascade 1:在win10上编译Opencascade

    Opencascade 1 在win10上编译Opencascade 提示 超简单的Opencascade安装编译方法 注意 本文是学习了AAA的视频后的总结思考 文章目录 Opencascade 1 在win10上编译Opencascad
  • 【故障解决】Linux机器经常会出现ipv6无法访问自己网关,要重启机器才可以修复问题。-20201119

    1 故障现象 有几台业务虚机 经常会出现ipv6无法访问自己网关 要重启机器才可以修复 2 解决过程 虚拟化层排查下来 虚拟化平台 宿主机 网络负载 没看出什么问题 但查看故障机器系统日志 var log messages里的信息 发现一直
  • 上线这么久的InsCode,你们用过了嘛?(内含源码)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 3
  • vtkImageData算法坐标计算取整处理

    医学影像处理项目中 处理vtkImageData数据时经常涉及到一类问题 给了一个空间坐标或者位置 如何计算对应像素索引或者距离 从原理上 是这样一个公式 pixel num floor postion1 postion0 spacing
  • 大型企业IT运维的特点(18年7月)

    大型企业的IT系统一般都是流程设计复杂 用户会有较多的抱怨 不好用 变更太频繁 这样的现象 主要原因是在大型企业里面 业务以管理和控制为主 控制节点多 必然会让大家感到复杂 首先问一个问题 不要流程 可不可以 当然不可以 公司就是 流程 执
  • 【Qt】QtCreator中『设计』按钮是灰色的怎么办?

    在QtCreator中 对于xxx qml xxx ui qml文件都是可以通过 设计 打开的 只是xxx qml很多时候是没有任何2D或者3D显示效果的 但是如果在新安装QtCreator的时候没有安装对应插件 xxx qml xxx u
  • 青春有你-Java基础篇(2.5)

    Java基础篇 2 5 2 Java基础知识 泛型 泛型与继承 类型擦除 泛型中 KTVE object 等的含义 泛型各种用法 List lt Object gt List
  • 【教程】支持WebDAV的网盘TeraCloud+Zotero同步应用

    目录 0 TeraCloud网盘简介 1 注册操作步骤 2 开启WebDAV 3 WebDAV应用举例 Zotero文献管理软件 4 总结 0 TeraCloud网盘简介 TeraCloud是一个日本品牌的网盘 支持WebDAV 这极大地方
  • RIDE屏蔽INFO级别的日志输出

    RIDE屏蔽INFO级别的日志输出 最近参与自动化测试项目 项目测试内容包括软硬件 内容较复杂 每执行一个测试用例就输出了数万条INFO类型日志 严重影响测试人员查看日志 也影响了用例执行速度 因此需要减少不必要的日志输出 粗略看了一下 修