使用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)
|