Pytest-html 报告内中文方法标题乱码

Pytest-html 报告中文标题乱码

公司有个自己搭建的UI自动化测试项目,使用python3.7 + pytest + selenium + Chrome搭建而成的。
为了方便Case的标识,我个人把Case的文件起名为“def test_你好”这种格式,在调试时中文显示正常,但是在pytest-html生成的 report.html 报告中,HTML报告中对应test一栏中文显示成乱码了,如“test_公开å”这种形式的,但整个报告除了此处,其他位置中文均显示正常,研究了很多方法,网上各种方法都尝试了,包括代码调试,指定utf-8编码,对字符串各种编解码,均无效。

后来有幸看到了https://blog.csdn.net/wang785994599/article/details/97653329 这篇博文,而后对比pytest-html中的源码,终于找到了问题的所在

在pytest-html 插件下的plugin.py中(路径:/lib/python3.7/site-packages/pytest_html/plugin.py),对于test_id转换出现了问题,按照上述博文的描述中显示的那样,当content=‘你好’(中文或中英文混杂时)
content = content.encode(“utf-8”).decode(“unicode-escape”)
==> /哈哈 中文被转码导致乱码
根据博主给出的解决方法,修改plugin.py中对于test_id的编码赋值
self.test_id = re.sub(r’(\\u[\s\S]{4})', lambda x: x.group(1).encode(“utf-8”).decode(“unicode-escape”), report.nodeid)
最终生成的报告中显示正确了。
里里外外折腾了将近两个多月的时间才搞定,期间从来没有敢否定过插件源码的问题,都是在自己的身上和服务器环境中找问题,不难看出自己的水平还是不高。

在此写一篇,如果有遇到类似的问题,可以避免再次掉到坑里

--------------------------------------------------------分割线-------------------------------------
新版pytest_html(3.2.0) 将原来plugin.py中的类都拆分出来了,如果直接用pip安装默认安装最新版本,如果还有人遇到上述问题,可以修改对应路径下的result.py(/lib/python3.7/site-packages/pytest_html/result.py),3.2.0前所有版本均按原方式修改即可

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值