HTMLTestRunner测试报告中文乱码问题解决

时间:2023-03-09 03:24:06
HTMLTestRunner测试报告中文乱码问题解决

在学习python selenium自动化测试学习中遇到HTMLTestRunner测试报告出现乱码的问题

HTMLTestRunner测试报告中文乱码问题解决

Test Group/Test case Count Pass Fail Error View
baidu.Baidu 1 1 0 0 Detail
test_baidu_search: 百度搜索
pass
pt1.1: [Error 32] : 'c:\\users\\zhengb~1\\appdata\\local\\temp\\tmpmoado1\\AddonInstaller\\log.txt'

login_Verification.OA 2 2 0 0 Detail
test_login: 登录验证
pass
pt2.1: 君玲思登录成功!
[Error 32] : 'c:\\users\\zhengb~1\\appdata\\local\\temp\\tmpbcuhbi\\AddonInstaller\\log.txt'

网上查找到HTMLTestRunner测试报告中文乱码的解决方案:

(1)打开HTMLTestRunner.py源文件,找到如下行

# o and e should be byte string because they are collected from stdout and stderr?
if isinstance(o,str):
# TODO: some problem with 'string_escape': it escape \n and mess up formating
# uo = unicode(o.encode('string_escape'))
uo = o.decode('latin-1')
else:
uo = o
if isinstance(e,str):
# TODO: some problem with 'string_escape': it escape \n and mess up formating
# ue = unicode(e.encode('string_escape'))
ue = e.decode('latin-1')
else:
ue = e

(2)添加utf-8的解码

# o and e should be byte string because they are collected from stdout and stderr?
if isinstance(o,str):
# TODO: some problem with 'string_escape': it escape \n and mess up formating
# uo = unicode(o.encode('string_escape'))
#uo = o.decode('latin-1')
uo = o.decode('utf-8')
else:
uo = o
if isinstance(e,str):
# TODO: some problem with 'string_escape': it escape \n and mess up formating
# ue = unicode(e.encode('string_escape'))
#ue = e.decode('latin-1')
ue = e.decode('utf-8')
else:
ue = e