Robot Framework技术问询:如何为每个Keyword添加执行时序并查看执行时间
Robot Framework 所有Keyword展示执行时序信息的解决方案
调整日志级别强制记录细节
- 执行测试时,用命令行参数
--loglevel DEBUG,或者在测试套件里设置Log Level: DEBUG,强制记录所有Keyword的执行细节,包括时序信息,展开按钮就能正常响应。 - 要是觉得DEBUG日志太冗余,换成
INFO级别也可以,但得确保Robot Framework的日志配置里开启了Keyword级别的时序记录。
写个通用时序包装Keyword
自己封装一个带计时的包装Keyword,把所有需要监控的Keyword套进去,手动记录时序信息:
*** Keywords *** 带计时的Keyword [Arguments] ${原Keyword名} @{参数} ${开始时间}= Get Current Time format=%Y-%m-%d %H:%M:%S.%f Log 开始执行Keyword:${原Keyword名},时间:${开始时间} INFO ${执行结果}= Run Keyword ${原Keyword名} @{参数} ${结束时间}= Get Current Time format=%Y-%m-%d %H:%M:%S.%f ${耗时}= Subtract Time ${结束时间} ${开始时间} Log 完成Keyword:${原Keyword名},时间:${结束时间},耗时:${耗时} INFO [Return] ${执行结果}
用的时候直接把原Keyword调用换成带计时的Keyword 原Keyword名 参数1 参数2,不管是什么类型的Keyword,都会生成明确的时序日志。
修改日志配置模板
找到Robot Framework的logger.conf配置文件(一般在Python安装目录的Lib/site-packages/robot/libraries/logger.conf),调整日志格式,强制加入时序字段:
- 找到
[handler_fileHandler]下的formatter对应的格式字符串,添加%(starttime)s、%(endtime)s、%(duration)s字段(注意部分版本可能需要扩展支持,先确认版本兼容性)。
检查Keyword定义方式
如果是直接调用内置Keyword没做封装,或者定义得太极简,可能不会生成可展开的日志节点。把这类Keyword简单封装成自定义Keyword,哪怕只是一层空包装,也能触发日志的时序记录逻辑。
内容的提问来源于stack exchange,提问作者saif jarboui
相关产品推荐
相关产品推荐

