RobotFramework:日志输出及控制台中文乱码问题解决

发表于:2022-11-22 09:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:喵说测试    来源:知乎

  RobotFramewok使用过程中,遇到中文乱码问题还是很普遍的,下面就说下如何解决日志输出乱码与控制台乱码问题:
  一、日志输出乱码
  CASE如下:创建一个list,值1和值2分别是中文“测试”和“中国”。
  运行后,日志输出如下:中文部分全部乱码展示:
  Python2.7环境
  步骤1:
  Lib\site-packages\robot\utils目录下,unic.py文件
  增加:import json,增加以下代码:
  if isinstance(item, (list, dict, tuple)):
  try:
  item = json.dumps(item, ensure_ascii=False, encoding='cp936')
  except UnicodeDecodeError:
  try:
  item = json.dumps(item, ensure_ascii=False, encoding='cp936')
  except:
  pass
  except:
  pass
  位置如图所示,cp936也可用utf-8或gbk编码格式替换。
  重启RIDE后看下是否还乱码》如果还有问题继续往下进行。
  步骤2:
  检查Python的默认编码格式:
  Python命令窗口:
  >>>import sys 
  >>>sys.getdefaultencoding()
  如果是Ascii,在Python的Lib\site-packages文件夹下,新建一个sitecustomize.py文件,内容如下:
  #coding=utf8 
  import sys 
  reload(sys) 
  sys.setdefaultencoding('utf8')
  重启RIDE后看下是否还乱码。
  Python3.7环境
  乱码还是那个乱码,按照上述方法尝试解决,竟然无效。
  参照上述步骤1:配置没用,用Python2.7下的unic.py文件替换,启动ride报错
  参照上述步骤2:新增文件后,ride启动无反应。
  最后经过各种搜索尝试,终于找到了这个方法:
  将Lib\site-packages\robotide\contrib\testrunner下testrunnerplugin.py中565行
  将SYSTEM修改为OUTPUT,位置如图所示:
  修改后重启RIDE,重新执行解决了。
  二、控制台乱码解决方法
  一般python安装路径存在中文文件夹的情况会出现:
  Lib\site-packages\robotide\contrib\testrunner目录下testrunner.py中将latinl修改为mbcs。
  (mbcs为多字节字符集,会根据系统自动显示为对应的语言字符集,中文系统中展示GB2312)
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号