html报告乱码

使用HTMLTestRunner进行测试报告输出时,错误说明,中午乱码,版本:

1
2
python3.6
HTMLTestRunner 1.1.1

网上搜了一堆,全是用python2.x的,心痛,2.X到2020年不就不支持了嘛,为啥一个个的都在2.X上面,没办法,自己去捣鼓源码。

报告输出的html文件,使用类似于notepad的编辑器打开,编码格式改为UTF-8,重新在浏览器中打开,错误描述的中文显示就是正常文字。所以,只要在输出时,设置编码为“utf-8”应该就可以。

找到本地的HTMLTestRunner安装路径,一般都是在G:\skills\python36\Lib\site-packages\HtmlTestRunner类似这样的路径下,毕竟扩展包。下面有三个文件,和一个文件夹,文件夹里是报告的模板,不考虑,三个文件,一个是HtmlTestRunner的介绍,一个是runner.py,一个是result.py,输出报告,应该就在result.py文件中。

编辑器打开result.py,找到第350行

1
with open(path_file, 'w') as report_file:

只要修改成

1
with open(path_file, 'w',encoding='utf-8') as report_file:

即可。

附上百度搜索自动化测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import unittest
import time
from selenium import webdriver
from HtmlTestRunner import HTMLTestRunner

class GloryRoad(unittest.TestCase):
def setUp(self):
#启动chrome浏览器
self.brower = webdriver.Chrome()

def test_baidu(self):
#访问百度首页
self.brower.get("https://www.baidu.com")
#清空输入框内容
self.brower.find_element_by_id('kw').clear()
#搜索框输入“selenium3”
self.brower.find_element_by_id('kw').send_keys('selenium3')
#点击“百度一下”按键
self.brower.find_element_by_id('su').click()
#休眠3s
time.sleep(3)
assert "google" in self.brower.page_source, "页面中不存在要寻找的关键字!"

def tearDown(self):
#退出浏览器
self.brower.quit()

if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(GloryRoad)
runner = HTMLTestRunner(output='G:/workstation/report', report_title='Test Result')
runner.run(suite)
文章目录
|