Python3 引用HTMLTestRunner生成测试报告
程序员文章站
2024-01-16 22:55:46
...
Appium环境搭建以及运行测试用例的工具都在前两篇文章中介绍过了链接如下,今天就简单学习一下如何在跑完测试用例之后生成一张简单的测试报告。
Appium环境搭建: https://blog.csdn.net/CCstar1/article/details/101543977
Appium+VSCode环境搭建:https://blog.csdn.net/CCstar1/article/details/102498604
一.下载HTMLTestRunner.py
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载下来记得一定要放在lib/python3.7 路径下,参考我的完整路径是:
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/HTMLTestRunner.py
二.修改HTMLTestRunner.py文件满足python3
由于我们下载到的这个HTMLTestRunner.py文件是基于python2写的,并不能在python3使用。我们需要手动更改文件使之可以在python3中使用。下面详细介绍需要更改的几个地方。这里我使用VSCode打开修改。
1、第94行
import StringIO
更改为:
import io
2、第539行
self.outputBuffer = StringIO.StringIO()
更改为:
self.outputBuffer = io.StringIO()
3、第631行
print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)
更改为:
sys.stderr.write('\nTime Elapsed: %s\n' % (self.stopTime - self.startTime))
4、第642行
if not rmap.has_key(cls):
更改为:
if cls not in rmap:
5、第687行
self.stream.write(output.encode('utf8'))
更改为:
self.stream.write(output)
6、第766行
uo = o.decode('latin-1')
更改为:
uo = o
7、第772行
ue = e.decode('latin-1')
更改为:
ue = e
8、第778行
output = saxutils.escape(uo+ue),
更改为:
output = saxutils.escape(str(uo)+ue),
这里由于我存储和多次复制粘贴导致HTMLTestRunner乱码浪费了很多时间,和我一样对Python算小白如果引用遇到问题可以向这个方面考虑。
三.编写代码生成测试报告
新建TestRunner.py,如下
import time
import os
import unittest
from HTMLTestRunner import HTMLTestRunner
test_dir = '/Users/xxx/Downloads/VSCodeAutoTest'
discover = unittest.defaultTestLoader.discover(test_dir, pattern="Test1*.py")
if __name__ == "__main__":
report_dir = './TestReport'
os.makedirs(report_dir, exist_ok=True)
now = time.strftime("%Y-%m-%d %H-%M-%S")
report_name = '{0}/{1}.html'.format(report_dir, now)
with open(report_name, 'w')as f:
runner = HTMLTestRunner(stream=f, title="测试报告", description="本测试报告内容包含登录简单测试")
runner.run(discover)
在VSCode终端输入:
python3 TestRunner.py
之后就会在TestReport目录下生成2019-10-12 14-46-48.html测试报告,用浏览器打开如下图所示:
简单的测试报告就生成了,欢迎大家提问一起学习。
下一篇: 3次握手协议4次挥手协议和tcp状态跃迁
推荐阅读
-
Python3 引用HTMLTestRunner生成测试报告
-
解决python3 HTMLTestRunner测试报告中文乱码的问题
-
基于python语言的自动化测试中生成html的测试报告时HtmlTestRunner模块常见问题
-
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
-
Mac上实现Python用HTMLTestRunner生成html测试报告
-
python+pytest/unittest+yaml+ddt+allure/HTMLTestRunner生成测试报告
-
unittest_生成测试报告(HTMLTestRunner)
-
python使用 HTMLTestRunner.py生成测试报告
-
python3+HTMLTestRunner生成测试报告
-
Python 中 使用 HTMLTestRunner 模块生成测试报告